{"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":28,"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 v28.8 (Yoast SEO v28.8) - 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=\"Open source Team\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Open source Team\" \/>\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\":\"Open source Team\",\"@id\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/#\\\/schema\\\/person\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"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\\\/4bae5e5dd8c7d48edbd948772b49b202\"},\"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\\\/4bae5e5dd8c7d48edbd948772b49b202\",\"name\":\"Open source Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g\",\"caption\":\"Open source Team\"},\"url\":\"https:\\\/\\\/www.dbi-services.com\\\/blog\\\/author\\\/open-source-team\\\/\"}]}<\/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":"Open source Team","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Open source Team","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":"Open source Team","@id":"https:\/\/www.dbi-services.com\/blog\/#\/schema\/person\/4bae5e5dd8c7d48edbd948772b49b202"},"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\/4bae5e5dd8c7d48edbd948772b49b202"},"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\/4bae5e5dd8c7d48edbd948772b49b202","name":"Open source Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/eb4fb12e386e8c41fdef0733e8114594cf2653e4f55e9fa2161442b8eaf3f657?s=96&d=mm&r=g","caption":"Open source Team"},"url":"https:\/\/www.dbi-services.com\/blog\/author\/open-source-team\/"}]}},"_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\/28"}],"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}]}}