{"id":15955,"date":"2021-03-13T14:23:54","date_gmt":"2021-03-13T13:23:54","guid":{"rendered":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/"},"modified":"2021-03-13T14:23:54","modified_gmt":"2021-03-13T13:23:54","slug":"getting-started-with-the-zalando-operator-for-postgresql","status":"publish","type":"post","link":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/","title":{"rendered":"Getting started with the Zalando Operator for PostgreSQL"},"content":{"rendered":"<p>In the previous posts (<a href=\"https:\/\/www.dbi-services.com\/blog\/rancher-up-and-running-on-ec2-1-one-node\/\" target=\"_blank\" rel=\"noopener\">Rancher, up and running, on EC2 \u2013 1 \u2013 One node<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/rancher-up-and-running-on-ec2-2-three-nodes\/\" target=\"_blank\" rel=\"noopener\">Rancher, up and running, on EC2 \u2013 2 \u2013 Three nodes<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/rancher-up-and-running-on-ec2-3-rancher-setup\/\" target=\"_blank\" rel=\"noopener\">Rancher, up and running, on EC2 \u2013 3 \u2013 Rancher setup<\/a>, <a href=\"https:\/\/www.dbi-services.com\/blog\/rancher-on-sles-15-as-a-demo-environment\/\" target=\"_blank\" rel=\"noopener\">Rancher on SLES 15 as a demo environment<\/a>, and <a href=\"https:\/\/www.dbi-services.com\/blog\/deploying-a-kubernetes-cluster-on-ec-with-rancher\/\" target=\"_blank\" rel=\"noopener\">Deploying a Kubernetes cluster on EC2 with Rancher<\/a>) it was all about deploying a Kubernetes cluster and getting Rancher up and running. In this post we&#8217;ll use one of those systems to deploy a PostgreSQL cluster. I&#8217;ll be using my one node Rancher demo environment for this, but you can of course also use a cluster as described in the posts above. Zalando does not only provide <a href=\"https:\/\/github.com\/zalando\/patroni\" target=\"_blank\" rel=\"noopener\">Patroni<\/a> but also provides a <a href=\"https:\/\/github.com\/zalando\/postgres-operator\" target=\"_blank\" rel=\"noopener\">PostgreSQL operator for Kubernetes<\/a>, and we&#8217;ll be using this one for this demo.<\/p>\n<p><!--more--><\/p>\n<p>Before we start with the PostgreSQL operator we need to prepare the system. PostgreSQL needs to safely store it&#8217;s data somewhere, and for being able to do that we need persistent storage. We could do all the following steps using the command line, but we&#8217;ll use the Rancher UI for this. The easiest way to do this is by using the &#8220;Cluster Explorer&#8221;<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg\" alt=\"\" width=\"1200\" height=\"264\" class=\"aligncenter size-full wp-image-48338\" \/><\/a><\/p>\n<p>On the left side you&#8217;ll find the Persistent Volumes:<\/p>\n<p><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop2.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop2.jpg\" alt=\"\" width=\"1200\" height=\"520\" class=\"aligncenter size-full wp-image-48339\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop3.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop3.jpg\" alt=\"\" width=\"1200\" height=\"387\" class=\"aligncenter size-full wp-image-48340\" \/><\/a><\/p>\n<p>As there is no storage system attached to the demo environment, we&#8217;ll be using the &#8220;Host Path&#8221; plugin for my persistent volumes, and I&#8217;ll be creating two of them:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop4.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop4.jpg\" alt=\"\" width=\"1200\" height=\"422\" class=\"aligncenter size-full wp-image-48341\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop5.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop5.jpg\" alt=\"\" width=\"1200\" height=\"232\" class=\"aligncenter size-full wp-image-48342\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop6.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop6.jpg\" alt=\"\" width=\"1200\" height=\"367\" class=\"aligncenter size-full wp-image-48343\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop7.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop7.jpg\" alt=\"\" width=\"1200\" height=\"230\" class=\"aligncenter size-full wp-image-48344\" \/><\/a><\/p>\n<p>We can also use the command line for checking the persistent volumes we&#8217;ve just created:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~$ kubectl get pv\nNAME              CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS      CLAIM   STORAGECLASS   REASON   AGE\npv-postgresql-1   10Gi       RWO            Retain           Available                                   8m50s\npv-postgresql-2   10Gi       RWO            Retain           Available                                   7m32s\n<\/pre>\n<p>That&#8217;s it for the preparation and we are ready to clone the PostgreSQL operator repository:<\/p>\n<pre class=\"brush: sql; gutter: true; first-line: 1; highlight: [1,9]\">\nrancher@debian10ranger:~$ git clone https:\/\/github.com\/zalando\/postgres-operator.git\nCloning into 'postgres-operator'...\nremote: Enumerating objects: 273, done.\nremote: Counting objects: 100% (273\/273), done.\nremote: Compressing objects: 100% (178\/178), done.\nremote: Total 20089 (delta 176), reused 173 (delta 93), pack-reused 19816\nReceiving objects: 100% (20089\/20089), 7.75 MiB | 13.29 MiB\/s, done.\nResolving deltas: 100% (14256\/14256), done.\nrancher@debian10ranger:~$ cd postgres-operator\/\n<\/pre>\n<p>The first step is to create the <a href=\"https:\/\/kubernetes.io\/docs\/concepts\/configuration\/configmap\/\" target=\"_blank\" rel=\"noopener\">config map<\/a> (have a look at it to get an idea of all the parameters and values):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~\/postgres-operator$ kubectl create -f manifests\/configmap.yaml \nconfigmap\/postgres-operator created\n<\/pre>\n<p>This was the way to do it on the command line, the same is possible with the Rancher UI as well:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop8.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop8.jpg\" alt=\"\" width=\"1200\" height=\"424\" class=\"aligncenter size-full wp-image-48348\" \/><\/a><\/p>\n<p>Next is the RBAC (role based access control) stuff (I&#8217;ve done that already before and did not do a proper cleanup, that&#8217;s why the postgres-operator service account already exists):<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~\/postgres-operator$ kubectl create -f manifests\/operator-service-account-rbac.yaml\nclusterrole.rbac.authorization.k8s.io\/postgres-operator created\nclusterrolebinding.rbac.authorization.k8s.io\/postgres-operator created\nclusterrole.rbac.authorization.k8s.io\/postgres-pod created\nError from server (AlreadyExists): error when creating \"manifests\/operator-service-account-rbac.yaml\": serviceaccounts \"postgres-operator\" already exists\n<\/pre>\n<p>The PostgreSQL operator itself:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~\/postgres-operator$ kubectl create -f manifests\/postgres-operator.yaml\ndeployment.apps\/postgres-operator created\n<\/pre>\n<p>&#8230; and finally the service:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~\/postgres-operator$ kubectl create -f manifests\/api-service.yaml\nservice\/postgres-operator created\n<\/pre>\n<p>A few seconds later the operator pod should be running:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~\/postgres-operator$ cd ..\nrancher@debian10ranger:~$ kubectl get pod -l name=postgres-operator\nNAME                                 READY   STATUS    RESTARTS   AGE\npostgres-operator-6775b6dcf9-cpp86   1\/1     Running   0          2m42s\n<\/pre>\n<p>For getting the graphical user interface for the PostgreSQL operator install the UI components:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~$ kubectl apply -f postgres-operator\/ui\/manifests\/\ndeployment.apps\/postgres-operator-ui created\ningress.networking.k8s.io\/postgres-operator-ui created\nservice\/postgres-operator-ui created\nserviceaccount\/postgres-operator-ui unchanged\nclusterrole.rbac.authorization.k8s.io\/postgres-operator-ui created\nclusterrolebinding.rbac.authorization.k8s.io\/postgres-operator-ui created\nerror: unable to recognize \"postgres-operator\/ui\/manifests\/kustomization.yaml\": no matches for kind \"Kustomization\" in version \"kustomize.config.k8s.io\/v1beta1\"\n<\/pre>\n<p>Same procedure as before, check if the pod is running:<\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~$ kubectl get pod -l name=postgres-operator-ui\nNAME                                    READY   STATUS    RESTARTS   AGE\npostgres-operator-ui-5478dcfd7b-r2rzr   1\/1     Running   0          74s\n<\/pre>\n<p>Check the Rancher UI for the service that got created (or use the command line to get that information):<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop9.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop9.jpg\" alt=\"\" width=\"1200\" height=\"450\" class=\"aligncenter size-full wp-image-48349\" \/><\/a><\/p>\n<p>&#8230; and access the Operator user interface with your browser:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop10.jpg\" alt=\"\" width=\"1200\" height=\"642\" class=\"aligncenter size-full wp-image-48351\" \/><\/a><\/p>\n<p>Using this interface, a two node PostgreSQL cluster can easily be created:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop11-1.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop11-1.jpg\" alt=\"\" width=\"900\" height=\"505\" class=\"aligncenter size-full wp-image-48355\" \/><\/a><br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop12.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop12.jpg\" alt=\"\" width=\"900\" height=\"567\" class=\"aligncenter size-full wp-image-48356\" \/><br \/>\n<\/a><a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop13.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop13.jpg\" alt=\"\" width=\"900\" height=\"598\" class=\"aligncenter size-full wp-image-48357\" \/><\/a><\/p>\n<p>The new cluster is ready:<br \/>\n<a href=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop14.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop14.jpg\" alt=\"\" width=\"1200\" height=\"512\" class=\"aligncenter size-full wp-image-48358\" \/><\/a><\/p>\n<pre class=\"brush: bash; gutter: true; first-line: 1\">\nrancher@debian10ranger:~$ kubectl get pods \nNAME                                    READY   STATUS    RESTARTS   AGE\nacid-my-demo-cluster-0                  1\/1     Running   0          4m58s\nacid-my-demo-cluster-1                  1\/1     Running   0          4m54s\npostgres-operator-6775b6dcf9-cpp86      1\/1     Running   0          24m\npostgres-operator-ui-5478dcfd7b-r2rzr   1\/1     Running   0          19m\n<\/pre>\n<p>Quite easy to get that up and running in a demo environment.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the previous posts (Rancher, up and running, on EC2 \u2013 1 \u2013 One node, Rancher, up and running, on EC2 \u2013 2 \u2013 Three nodes, Rancher, up and running, on EC2 \u2013 3 \u2013 Rancher setup, Rancher on SLES 15 as a demo environment, and Deploying a Kubernetes cluster on EC2 with Rancher) it [&hellip;]<\/p>\n","protected":false},"author":29,"featured_media":15956,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[229],"tags":[89,77,2276,2291],"type_dbi":[],"class_list":["post-15955","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-database-administration-monitoring","tag-kubernetes","tag-postgresql","tag-rancher","tag-zalando"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Getting started with the Zalando Operator for PostgreSQL - dbi Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Getting started with the Zalando Operator for PostgreSQL\" \/>\n<meta property=\"og:description\" content=\"In the previous posts (Rancher, up and running, on EC2 \u2013 1 \u2013 One node, Rancher, up and running, on EC2 \u2013 2 \u2013 Three nodes, Rancher, up and running, on EC2 \u2013 3 \u2013 Rancher setup, Rancher on SLES 15 as a demo environment, and Deploying a Kubernetes cluster on EC2 with Rancher) it [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/\" \/>\n<meta property=\"og:site_name\" content=\"dbi Blog\" \/>\n<meta property=\"article:published_time\" content=\"2021-03-13T13:23:54+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"264\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Daniel Westermann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@westermanndanie\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Daniel Westermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/\"},\"author\":{\"name\":\"Daniel Westermann\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"headline\":\"Getting started with the Zalando Operator for PostgreSQL\",\"datePublished\":\"2021-03-13T13:23:54+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/\"},\"wordCount\":445,\"commentCount\":1,\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/zop1.jpg\",\"keywords\":[\"kubernetes\",\"PostgreSQL\",\"Rancher\",\"Zalando\"],\"articleSection\":[\"Database Administration &amp; Monitoring\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/\",\"name\":\"Getting started with the Zalando Operator for PostgreSQL - dbi Blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/zop1.jpg\",\"datePublished\":\"2021-03-13T13:23:54+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/zop1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/wp-content\\\/uploads\\\/sites\\\/2\\\/2022\\\/04\\\/zop1.jpg\",\"width\":1200,\"height\":264},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/getting-started-with-the-zalando-operator-for-postgresql\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Getting started with the Zalando Operator for PostgreSQL\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/\",\"name\":\"dbi Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/8d08e9bd996a89bd75c0286cbabf3c66\",\"name\":\"Daniel Westermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g\",\"caption\":\"Daniel Westermann\"},\"description\":\"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\\\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.\",\"sameAs\":[\"https:\\\/\\\/x.com\\\/westermanndanie\"],\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/daniel-westermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Getting started with the Zalando Operator for PostgreSQL - dbi Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/","og_locale":"en_US","og_type":"article","og_title":"Getting started with the Zalando Operator for PostgreSQL","og_description":"In the previous posts (Rancher, up and running, on EC2 \u2013 1 \u2013 One node, Rancher, up and running, on EC2 \u2013 2 \u2013 Three nodes, Rancher, up and running, on EC2 \u2013 3 \u2013 Rancher setup, Rancher on SLES 15 as a demo environment, and Deploying a Kubernetes cluster on EC2 with Rancher) it [&hellip;]","og_url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/","og_site_name":"dbi Blog","article_published_time":"2021-03-13T13:23:54+00:00","og_image":[{"width":1200,"height":264,"url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg","type":"image\/jpeg"}],"author":"Daniel Westermann","twitter_card":"summary_large_image","twitter_creator":"@westermanndanie","twitter_misc":{"Written by":"Daniel Westermann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#article","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/"},"author":{"name":"Daniel Westermann","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"headline":"Getting started with the Zalando Operator for PostgreSQL","datePublished":"2021-03-13T13:23:54+00:00","mainEntityOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/"},"wordCount":445,"commentCount":1,"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg","keywords":["kubernetes","PostgreSQL","Rancher","Zalando"],"articleSection":["Database Administration &amp; Monitoring"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/","url":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/","name":"Getting started with the Zalando Operator for PostgreSQL - dbi Blog","isPartOf":{"@id":"https:\/\/www.dbi-services.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#primaryimage"},"image":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#primaryimage"},"thumbnailUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg","datePublished":"2021-03-13T13:23:54+00:00","author":{"@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66"},"breadcrumb":{"@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#primaryimage","url":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg","contentUrl":"https:\/\/www.dbi-services.com\/blog\/wp-content\/uploads\/sites\/2\/2022\/04\/zop1.jpg","width":1200,"height":264},{"@type":"BreadcrumbList","@id":"https:\/\/www.dbi-services.com\/blog\/getting-started-with-the-zalando-operator-for-postgresql\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/www.dbi-services.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Getting started with the Zalando Operator for PostgreSQL"}]},{"@type":"WebSite","@id":"https:\/\/www.dbi-services.com\/blog\/#website","url":"https:\/\/www.dbi-services.com\/blog\/","name":"dbi Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.dbi-services.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/8d08e9bd996a89bd75c0286cbabf3c66","name":"Daniel Westermann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/31350ceeecb1dd8986339a29bf040d4cd3cd087d410deccd8f55234466d6c317?s=96&d=mm&r=g","caption":"Daniel Westermann"},"description":"Daniel Westermann is Principal Consultant and Technology Leader Open Infrastructure at dbi services. He has more than 15 years of experience in management, engineering and optimization of databases and infrastructures, especially on Oracle and PostgreSQL. Since the beginning of his career, he has specialized in Oracle Technologies and is Oracle Certified Professional 12c and Oracle Certified Expert RAC\/GridInfra. Over time, Daniel has become increasingly interested in open source technologies, becoming \u201cTechnology Leader Open Infrastructure\u201d and PostgreSQL expert. \u00a0Based on community or EnterpriseDB tools, he develops and installs complex high available solutions with PostgreSQL. He is also a certified PostgreSQL Plus 9.0 Professional and a Postgres Advanced Server 9.4 Professional. He is a regular speaker at PostgreSQL conferences in Switzerland and Europe. Today Daniel is also supporting our customers on AWS services such as AWS RDS, database migrations into the cloud, EC2 and automated infrastructure management with AWS SSM (System Manager). He is a certified AWS Solutions Architect Professional. Prior to dbi services, Daniel was Management System Engineer at LC SYSTEMS-Engineering AG in Basel. Before that, he worked as Oracle Developper &amp;\u00a0Project Manager at Delta Energy Solutions AG in Basel (today Powel AG). Daniel holds a diploma in Business Informatics (DHBW, Germany). His branch-related experience mainly covers the pharma industry, the financial sector, energy, lottery and telecommunications.","sameAs":["https:\/\/x.com\/westermanndanie"],"url":"https:\/\/www.dbi-services.com\/blog\/author\/daniel-westermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15955","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/users\/29"}],"replies":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/comments?post=15955"}],"version-history":[{"count":0,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/posts\/15955\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media\/15956"}],"wp:attachment":[{"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/media?parent=15955"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/categories?post=15955"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/tags?post=15955"},{"taxonomy":"type","embeddable":true,"href":"https:\/\/www.dbi-services.com\/blog\/wp-json\/wp\/v2\/type_dbi?post=15955"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}