{"id":6737,"date":"2019-04-15T09:26:54","date_gmt":"2019-04-15T07:26:54","guid":{"rendered":"https:\/\/www.credativ.de\/blog\/credativ-inside\/postgresql-anywhere-via-kubernetes-with-some-help-from-openebs\/"},"modified":"2022-03-30T15:27:55","modified_gmt":"2022-03-30T13:27:55","slug":"postgresql-anywhere-via-kubernetes-with-some-help-from-openebs","status":"publish","type":"post","link":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/","title":{"rendered":"PostgreSQL<sup>\u00ae<\/sup> anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS"},"content":{"rendered":"<div>\n<div>\n<div>\n<p>In this article we will look at the highly available operation of PostgreSQL<sup>\u00ae<\/sup> in a Kubernetes environment. A topic that is certainly of particular interest to many of our PostgreSQL<sup>\u00ae<\/sup> users.<\/p>\n<p>Together with our partner company <a href=\"https:\/\/mayadata.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">MayaData<\/a>, we will demonstrate below the application possibilities and advantages of the extremely powerful open source project &#8211; <a href=\"https:\/\/openebs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">OpenEBS<\/a>.<\/p>\n<p>OpenEBS is a freely available storage management system, whose development is supported and backed by MayaData.<\/p>\n<p>We would like to thank Murat-Karslioglu from MayaData and our colleague Adrian Vondendriesch for this interesting and helpful article. This article simultaneously also appeared on <a href=\"https:\/\/openebs.io\/blog\/postgresql-anywhere%E2%80%8A%E2%80%94%E2%80%8Avia-kubernetes-with-some-help-from-openebs-and-credativ-engineering\" target=\"_blank\" rel=\"noopener noreferrer\">OpenEBS.io<\/a>.<\/p>\n<h1>PostgreSQL<sup>\u00ae<\/sup> anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS and credativ engineering<\/h1>\n<p>by <a href=\"https:\/\/twitter.com\/muratkarslioglu\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/twitter.com\/muratkarslioglu\">Murat Karslioglu<\/a>, <a href=\"https:\/\/openebs.io\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/openebs.io\/\">OpenEBS<\/a> and <a href=\"https:\/\/twitter.com\/__discostu__\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/twitter.com\/__discostu__\">Adrian Vondendriesch<\/a>, <a href=\"https:\/\/www.credativ.com\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/www.credativ.com\">credativ<\/a><\/p>\n<h3>Introduction<\/h3>\n<p>If you are already running Kubernetes on some form of cloud whether on-premises or as a service, you understand the ease-of-use, scalability and monitoring benefits of Kubernetes\u200a\u2014\u200aand you may well be looking at how to apply those benefits to the operation of your databases.<\/p>\n<p>PostgreSQL<sup>\u00ae<\/sup> remains a preferred relational database, and although setting up a highly available Postgres cluster from scratch might be challenging at first, we are seeing patterns emerging that allow PostgreSQL<sup>\u00ae<\/sup> to run as a first class citizen within Kubernetes, improving availability, reducing management time and overhead, and limiting cloud or data center lock-in.<\/p>\n<p>There are many ways to run high availability with PostgreSQL<sup>\u00ae<\/sup>; for a list, see the <a href=\"https:\/\/wiki.postgresql.org\/wiki\/Replication,_Clustering,_and_Connection_Pooling\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/wiki.postgresql.org\/wiki\/Replication,_Clustering,_and_Connection_Pooling\">PostgreSQL<sup>\u00ae<\/sup> Documentation<\/a>. Some common cloud-native Postgres cluster deployment projects include <a href=\"https:\/\/www.crunchydata.com\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/www.crunchydata.com\/\">Crunchy Data<\/a>\u2019s, <a href=\"https:\/\/www.sorint.it\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/www.sorint.it\/\">Sorint.lab<\/a>\u2019s <a href=\"https:\/\/github.com\/sorintlab\/stolon\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/github.com\/sorintlab\/stolon\">Stolon<\/a> and <a href=\"https:\/\/jobs.zalando.com\/tech\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/jobs.zalando.com\/tech\/\">Zalando<\/a>\u2019s <a href=\"https:\/\/github.com\/zalando\/patroni\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/github.com\/zalando\/patroni\">Patroni<\/a>\/<a href=\"https:\/\/github.com\/zalando\/spilo\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/github.com\/zalando\/spilo\">Spilo<\/a>. Thus far we are seeing Zalando\u2019s operator as a preferred solution in part because it seems to be simpler to understand and we\u2019ve seen it operate well.<\/p>\n<p>Some quick background on your authors:<\/p>\n<ul>\n<li>OpenEBS is a broadly deployed OpenSource storage and storage management project sponsored by MayaData.<\/li>\n<li><a href=\"https:\/\/www.credativ.com\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/www.credativ.com\">credativ<\/a> is a leading open source support and engineering company with particular depth in PostgreSQL<sup>\u00ae<\/sup>.<\/li>\n<\/ul>\n<p>In this blog, we\u2019d like to briefly cover how using cloud-native or \u201ccontainer attached\u201d storage can help in the deployment and ongoing operations of PostgreSQL<sup>\u00ae<\/sup> on Kubernetes. This is the first of a series of blogs we are considering\u200a\u2014\u200athis one focuses more on why users are adopting this pattern and future ones will dive more into the specifics of how they are doing so.<\/p>\n<p>At the end you can see how to use a Storage Class and a preferred operator to deploy PostgreSQL<sup>\u00ae<\/sup> with OpenEBS underlying<\/p>\n<p>If you are curious about what container attached storage of CAS is you can read more from the Cloud Native Computing Foundation (CNCF) <a href=\"https:\/\/www.cncf.io\/blog\/2018\/04\/19\/container-attached-storage-a-primer\/\">here<\/a>.<\/p>\n<p>Conceptually you can think of CAS as being the decomposition of previously monolithic storage software into containerized microservices that themselves run on Kubernetes. This gives all the advantages of running Kubernetes that already led you to run Kubernetes\u200a\u2014\u200anow applied to the storage and data management layer as well. Of special note is that like Kubernetes, OpenEBS runs anywhere so the same advantages below apply whether on on-premises or on any of the many hosted Kubernetes services.<\/p>\n<h3>PostgreSQL<sup>\u00ae<\/sup> plus OpenEBS<\/h3>\n<p><a href=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/06\/PostgreSQL<sup>\u00ae<\/sup>-plus-OpenEBS.png&#8221;><img decoding=\"async\" class=\"aligncenter wp-image-1158\" src=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/06\/PostgreSQL<sup>\u00ae<\/sup>-plus-OpenEBS-300&#215;289.png&#8221; alt=&#8221;PostgreSQL<sup>\u00ae<\/sup> plus OpenEBS&#8221; width=&#8221;500&#8243; height=&#8221;482&#8243; \/><\/a><br \/>\nWe have seen joint users adopting OpenEBS as a substrate to PostgreSQL<sup>\u00ae<\/sup> for a variety of reasons. A few that jump out include:<\/p>\n<h3>Consistency in underlying disk or cloud volume management:<\/h3>\n<p>One of the most annoying things about setting up a system to run PostgreSQL<sup>\u00ae<\/sup>\u200a\u2014\u200aeven if it is on Kubernetes\u200a\u2014\u200ais configuring the underlying disks and storage systems as needed. With a solution like OpenEBS, you specify via storage classes how you want the underlying systems configured and OpenEBS with the help of Kubernetes ensures that the system delivers the storage capacity that is needed and that it is configured as you need it. An example of such a storage class is shared below. This automation can remove a source of human error and definitely removes a source of human annoyance.<\/p>\n<h3>Thin provisioning and on-demand expansion:<\/h3>\n<p>Now that you have turned over to OpenEBS the provisioning and management of the underlying storage hardware and services, you just have to tell it the amount of storage you need for your PostgreSQL<sup>\u00ae<\/sup> and then everything will work out well, right? Well actually knowing how much data your PostgreSQL<sup>\u00ae<\/sup> instance or instances will consume is pretty tricky\u200a\u2014\u200aand arguably somewhat impossible as it is beyond your control.<\/p>\n<p>Here OpenEBS can also help because it supports both thin provisioning and on the fly pool expansion. The thin provisioning allows you to claim more space than you actually can provisioning\u200a\u2014\u200athis then allows your PostgreSQL<sup>\u00ae<\/sup> to scale in the usage of space without interruption by allowing for adding more storage to the running system without the need to stop the database.<\/p>\n<p>Thin provisioning though is not a good idea if there is not also on the fly expansion of the underlying capacity for perhaps obvious reasons\u200a\u2014\u200aas the PostgreSQL<sup>\u00ae<\/sup> expands you want to make sure it can claim space as needed otherwise at some point you\u2019ll have to interrupt operations and again perform manual tasks. OpenEBS helps here as well\u200a\u2014\u200aif configured to do so it can expand its underlying pools, whether these are of physical disks, underlying storage systems, or storage services from a cloud. The capacity of the pool can be expanded on demand simply by adding more disks to the cStor pool.<\/p>\n<p>The cStor architecture also supports the resizing of a provisioned volume on the fly and this will be fully automated as of OpenEBS 0.9. Via these enhancements, volumes, as well as underlying pools, will be able to scale automatically on any cloud providing K8s support.<\/p>\n<p>In addition to reducing the risk and hassle of manual operations, the combination of thin provisioning and on-demand scaling can reduce costs because you don\u2019t over-provision capacity to achieve performance for example, which reduces unnecessary cloud service spending and can increase average utilization of usage of your hardware as well.<\/p>\n<h3>Disaster recovery and migration:<\/h3>\n<p>With a solution like OpenEBS, your storage classes can also include back-up schedules\u200a\u2014\u200aand these can be easily managed either via Kubectl or via the free to use MayaOnline. Again these storage classes can be applied on a per container basis which is quite a bit of granularity and control by each team running their PostgreSQL<sup>\u00ae<\/sup>.<\/p>\n<p>Additionally, we are working together to add tighter integration with PostgreSQL<sup>\u00ae<\/sup> to this per snapshot based workload, per container back-up capability, which is called DMaaS by MayaData and OpenEBS. With this additional integration, an option will be added to the storage classes and to OpenEBS to flush active transactions before taking the snapshot. The additional integration of storage snapshots in conjunction with Write Ahead Log (WAL) archiving will provide additional PITR functionality. DMaaS leverages the open source Velero from Heptio and marries it to the COW based capabilities of the cStor OpenEBS engine to deliver extremely efficient backups and migrations.<\/p>\n<p>With DMaaS backups taken to one location can be recovered from another. This can prove useful for a variety of use cases including the use of relatively ephemeral clusters as a part of a rolling upgrade for example of an environment. Additionally, the same capability can be used to move workloads from one Kubernetes environment to another thereby reducing lock-in.<\/p>\n<h3>Snapshots and clones for development and troubleshooting:<\/h3>\n<p>DBAs have been using snapshots and clones for a long time to assist in troubleshooting and to enable teams to develop and test against a read-only copy of production data. For example, via OpenEBS you can easily use Kubernetes to invoke a snapshot and then promote that snapshot to a clone and then spawn a container from that clone. You now can do anything you want with that container and the data set contained within it, and of course, destroy it when you are done.<\/p>\n<p>One use case that clones can support is improved reporting. For example, let\u2019s say you do computationally expensive analytical queries and build roll-up queries for monthly reports. It is simple with OpenEBS to clone the underlying OLTP system, allowing you to work on a static copy of your database, thereby removing load from your production DBs and ensuring you have a verifiable source of information for those reports.<\/p>\n<h3>Closing the loop with per workload visibility and optimization:<\/h3>\n<p>In addition to the benefits of using OpenEBS, there are additional benefits from using MayaOnline for the management of stateful workloads. We may address these in future blogs examining common day 2 operations and optimization of your PostgreSQL<sup>\u00ae<\/sup> on Kubernetes.<\/p>\n<h3>Running Postgres-Operator on OpenEBS<\/h3>\n<p><a href=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/06\/PostgreSQL<sup>\u00ae<\/sup>-with-OpenEBS-persistent-volumes.png&#8221;><img decoding=\"async\" class=\"aligncenter wp-image-1155\" src=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/06\/PostgreSQL<sup>\u00ae<\/sup>-with-OpenEBS-persistent-volumes-300&#215;152.png&#8221; alt=&#8221;PostgreSQL<sup>\u00ae<\/sup> with OpenEBS persistent volumes&#8221; width=&#8221;501&#8243; height=&#8221;254&#8243; \/><\/a><\/p>\n<h3>Software Prerequisites<\/h3>\n<ul>\n<li><a href=\"https:\/\/github.com\/zalando\/postgres-operator\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/github.com\/zalando\/postgres-operator\">Postgres-Operator<\/a> (for cluster deployment)<\/li>\n<li><a href=\"https:\/\/docs.docker.com\/engine\/installation\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/docs.docker.com\/engine\/installation\/\">Docker<\/a> installed<\/li>\n<li>Kubernetes 1.9+ cluster installed<\/li>\n<li><a href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/kubernetes.io\/docs\/tasks\/tools\/install-kubectl\/\">kubectl<\/a> installed<\/li>\n<li id=\"f13b\"><a href=\"https:\/\/github.com\/openebs\/openebs\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/github.com\/openebs\/openebs\">OpenEBS<\/a> installed<\/li>\n<\/ul>\n<h3>Install OpenEBS<\/h3>\n<ol>\n<li>If OpenEBS is not installed in your K8s cluster, this can be done from <a href=\"https:\/\/docs.openebs.io\/docs\/next\/installation.html\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/docs.openebs.io\/docs\/next\/installation.html\">here<\/a>. If OpenEBS is already installed, go to the next step.<\/li>\n<li>Connect to MayaOnline (Optional): Connecting the Kubernetes cluster to <a href=\"https:\/\/docs.openebs.io\/docs\/next\/app.mayaonline.io\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/docs.openebs.io\/docs\/next\/app.mayaonline.io\">MayaOnline<\/a> provides good visibility of storage resources. MayaOnline has various support options for enterprise customers.<\/li>\n<\/ol>\n<h3>Configure cStor Pool<\/h3>\n<ol>\n<li>If cStor Pool is not configured in your OpenEBS cluster, this can be done from <a href=\"https:\/\/docs.openebs.io\/docs\/next\/configurepools.html\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/docs.openebs.io\/docs\/next\/configurepools.html\">here<\/a>. As PostgreSQL<sup>\u00ae<\/sup> is a StatefulSet application, it requires a single storage replication factor. If you prefer additional redundancy you can always increase the replica count to 3.<br \/>\nDuring cStor Pool creation, make sure that the maxPools parameter is set to &gt;=3. If a cStor pool is already configured, go to the next step. Sample YAML named openebs-config.yaml for configuring cStor Pool is provided in the Configuration details below.<\/li>\n<\/ol>\n<p>openebs-config.yaml<\/p>\n<div>\n<pre>#Use the following YAMLs to create a cStor Storage Pool.\r\n# and associated storage class.\r\napiVersion: openebs.io\/v1alpha1\r\nkind: StoragePoolClaim\r\nmetadata:\r\n name: cstor-disk\r\nspec:\r\n name: cstor-disk\r\n type: disk\r\n poolSpec:\r\n poolType: striped\r\n # NOTE \u2014 Appropriate disks need to be fetched using `kubectl get disks`\r\n #\r\n # `Disk` is a custom resource supported by OpenEBS with `node-disk-manager`\r\n # as the disk operator\r\n# Replace the following with actual disk CRs from your cluster `kubectl get disks`\r\n# Uncomment the below lines after updating the actual disk names.\r\n disks:\r\n diskList:\r\n# Replace the following with actual disk CRs from your cluster from `kubectl get disks`\r\n# \u2014 disk-184d99015253054c48c4aa3f17d137b1\r\n# \u2014 disk-2f6bced7ba9b2be230ca5138fd0b07f1\r\n# \u2014 disk-806d3e77dd2e38f188fdaf9c46020bdc\r\n# \u2014 disk-8b6fb58d0c4e0ff3ed74a5183556424d\r\n# \u2014 disk-bad1863742ce905e67978d082a721d61\r\n# \u2014 disk-d172a48ad8b0fb536b9984609b7ee653\r\n \u2014 -<\/pre>\n<\/div>\n<h3>Create Storage Class<\/h3>\n<ol>\n<li>You must configure a StorageClass to provision cStor volume on a cStor pool. In this solution, we are using a StorageClass to consume the cStor Pool which is created using external disks attached on the Nodes. The storage pool is created using the steps provided in the <a href=\"https:\/\/docs.openebs.io\/docs\/next\/configurepools.html\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/docs.openebs.io\/docs\/next\/configurepools.html\">Configure StoragePool<\/a> section. In this solution, PostgreSQL<sup>\u00ae<\/sup> is a deployment. Since it requires replication at the storage level the cStor volume replicaCount is 3. Sample YAML named openebs-sc-pg.yaml to consume cStor pool with cStorVolume Replica count as 3 is provided in the configuration details below.<\/li>\n<\/ol>\n<p>openebs-sc-pg.yaml<\/p>\n<div>\n<pre>apiVersion: storage.k8s.io\/v1\r\nkind: StorageClass\r\nmetadata:\r\n  name: openebs-postgres\r\n  annotations:\r\n    openebs.io\/cas-type: cstor\r\n    cas.openebs.io\/config: |\r\n      - name: StoragePoolClaim\r\n        value: \"cstor-disk\"\r\n      - name: ReplicaCount\r\n        value: \"3\"       \r\nprovisioner: openebs.io\/provisioner-iscsi\r\nreclaimPolicy: Delete\r\n---<\/pre>\n<\/div>\n<h3>Launch and test Postgres Operator<\/h3>\n<ol>\n<li>Clone Zalando\u2019s Postgres Operator.<\/li>\n<\/ol>\n<div>\n<pre>git clone https:\/\/github.com\/zalando\/postgres-operator.git\r\ncd postgres-operator<\/pre>\n<\/div>\n<h3>Use the OpenEBS storage class<\/h3>\n<ol>\n<li>Edit manifest file and add openebs-postgres as the storage class.<\/li>\n<\/ol>\n<div>\n<pre>nano manifests\/minimal-postgres-manifest.yaml<\/pre>\n<\/div>\n<p>After adding the storage class, it should look like the example below:<\/p>\n<div>\n<pre>apiVersion: \"acid.zalan.do\/v1\"\r\nkind: postgresql\r\nmetadata:\r\n  name: acid-minimal-cluster\r\n  namespace: default\r\nspec:\r\n  teamId: \"ACID\"\r\n  volume:\r\n    size: 1Gi\r\n    storageClass: openebs-postgres\r\n  numberOfInstances: 2\r\n  users:\r\n    # database owner\r\n    zalando:\r\n    - superuser\r\n    - createdb\r\n\u00a0\r\n# role for application foo\r\n    foo_user: []\r\n\u00a0\r\n#databases: name-&gt;owner\r\n  databases:\r\n    foo: zalando\r\n  postgresql:\r\n    version: \"10\"\r\n    parameters:\r\n      shared_buffers: \"32MB\"\r\n      max_connections: \"10\"\r\n      log_statement: \"all\"<\/pre>\n<\/div>\n<h3>Start the Operator<\/h3>\n<ol>\n<li>Run the command below to start the operator<\/li>\n<\/ol>\n<div>\n<pre>kubectl create -f manifests\/configmap.yaml # configuration\r\nkubectl create -f manifests\/operator-service-account-rbac.yaml # identity and permissions\r\nkubectl create -f manifests\/postgres-operator.yaml # deployment<\/pre>\n<\/div>\n<h3>Create a Postgres cluster on OpenEBS<\/h3>\n<p>Optional: The operator can run in a namespace other than default. For example, to use the test namespace, run the following before deploying the operator\u2019s manifests:<\/p>\n<div>\n<pre>kubectl create namespace test\r\nkubectl config set-context $(kubectl config current-context) \u2014 namespace=test<\/pre>\n<\/div>\n<ol>\n<li>Run the command below to deploy from the example manifest:<\/li>\n<\/ol>\n<div>\n<pre>kubectl create -f manifests\/minimal-postgres-manifest.yaml<\/pre>\n<\/div>\n<p>2. It only takes a few seconds to get the persistent volume (PV) for the pgdata-acid-minimal-cluster-0 up. Check PVs created by the operator using the kubectl get pv command:<\/p>\n<div>\n<pre>$ kubectl get pv\r\nNAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE\r\npvc-8852ceef-48fe-11e9\u20139897\u201306b524f7f6ea 1Gi RWO Delete Bound default\/pgdata-acid-minimal-cluster-0 openebs-postgres 8m44s\r\npvc-bfdf7ebe-48fe-11e9\u20139897\u201306b524f7f6ea 1Gi RWO Delete Bound default\/pgdata-acid-minimal-cluster-1 openebs-postgres 7m14s<\/pre>\n<\/div>\n<h3>Connect to the Postgres master and test<\/h3>\n<ol>\n<li>If it is not installed previously, install psql client:<\/li>\n<\/ol>\n<div>\n<pre>sudo apt-get install postgresql-client<\/pre>\n<\/div>\n<p>2. Run the command below and note the hostname and host port.<\/p>\n<div>\n<pre>kubectl get service \u2014 namespace default |grep acid-minimal-cluster<\/pre>\n<\/div>\n<p>3. Run the commands below to connect to your PostgreSQL<sup>\u00ae<\/sup> DB and test. Replace the [HostPort] below with the port number from the output of the above command:<\/p>\n<div>\n<pre>export PGHOST=$(kubectl get svc -n default -l application=spilo,spilo-role=master -o jsonpath=\"{.items[0].spec.clusterIP}\")\r\nexport PGPORT=[HostPort]\r\nexport PGPASSWORD=$(kubectl get secret -n default postgres.acid-minimal-cluster.credentials -o \u2018jsonpath={.data.password}\u2019 | base64 -d)\r\npsql -U postgres -c \u2018create table foo (id int)\u2019<\/pre>\n<\/div>\n<p>Congrats you now have the Postgres-Operator and your first test database up and running with the help of cloud-native OpenEBS storage.<\/p>\n<h3>Partnership and future direction<\/h3>\n<p>As this blog indicates, the teams at MayaData \/ OpenEBS and credativ are increasingly working together to help organizations running PostgreSQL<sup>\u00ae<\/sup> and other stateful workloads. In future blogs, we\u2019ll provide more hands-on tips.<\/p>\n<p>We are looking for feedback and suggestions on where to take this collaboration. Please provide feedback below or find us on <a href=\"https:\/\/twitter.com\/openebs\" target=\"_blank\" rel=\"noopener noreferrer\" data-href=\"https:\/\/twitter.com\/openebs\">Twitter<\/a> or on the <a href=\"http:\/\/slack.openebs.io\">OpenEBS slack community<\/a>.<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>In this article we will look at the highly available operation of PostgreSQL\u00ae in a Kubernetes environment. A topic that is certainly of particular interest to many of our PostgreSQL\u00ae users. Together with our partner company MayaData, we will demonstrate below the application possibilities and advantages of the extremely powerful open source project &#8211; OpenEBS. [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":6208,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_improvement_type_select":"improve_an_existing","_thumb_yes_seoaic":false,"_frame_yes_seoaic":false,"seoaic_generate_description":"","seoaic_improve_instructions_prompt":"","seoaic_rollback_content_improvement":"","seoaic_idea_thumbnail_generator":"","thumbnail_generated":false,"thumbnail_generate_prompt":"","seoaic_article_description":"","seoaic_article_subtitles":[],"footnotes":""},"categories":[1885,1708],"tags":[1838,1757,1801],"class_list":["post-6737","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-howtos-en","category-postgresql-en","tag-kubernetes-en","tag-openebs-en","tag-postgresql-en"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.4 (Yoast SEO v27.4) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS - credativ\u00ae<\/title>\n<meta name=\"description\" content=\"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!\" \/>\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.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS\" \/>\n<meta property=\"og:description\" content=\"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/\" \/>\n<meta property=\"og:site_name\" content=\"credativ\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/credativDE\/\" \/>\n<meta property=\"article:published_time\" content=\"2019-04-15T07:26:54+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-03-30T13:27:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"2500\" \/>\n\t<meta property=\"og:image:height\" content=\"300\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Adrian Vondendriesch\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@credativde\" \/>\n<meta name=\"twitter:site\" content=\"@credativde\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adrian Vondendriesch\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/\"},\"author\":{\"name\":\"Adrian Vondendriesch\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#\\\/schema\\\/person\\\/a34b146f598af43f8845ea7e1f0b8ac4\"},\"headline\":\"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS\",\"datePublished\":\"2019-04-15T07:26:54+00:00\",\"dateModified\":\"2022-03-30T13:27:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/\"},\"wordCount\":1931,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg\",\"keywords\":[\"Kubernetes\",\"OpenEBS\",\"PostgreSQL\u00ae\"],\"articleSection\":[\"HowTos\",\"PostgreSQL\u00ae\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#respond\"]}],\"copyrightYear\":\"2019\",\"copyrightHolder\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/\",\"name\":\"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS - credativ\u00ae\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg\",\"datePublished\":\"2019-04-15T07:26:54+00:00\",\"dateModified\":\"2022-03-30T13:27:55+00:00\",\"description\":\"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg\",\"contentUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2019\\\/04\\\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg\",\"width\":2500,\"height\":300},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#website\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\",\"name\":\"credativ GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Organization\",\"Place\"],\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#organization\",\"name\":\"credativ\u00ae\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/\",\"logo\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#local-main-organization-logo\"},\"image\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#local-main-organization-logo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/credativDE\\\/\",\"https:\\\/\\\/x.com\\\/credativde\",\"https:\\\/\\\/mastodon.social\\\/@credativde\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/credativ-gmbh\",\"https:\\\/\\\/www.instagram.com\\\/credativ\\\/\"],\"description\":\"Die credativ GmbH ist ein f\u00fchrendes, auf Open Source Software spezialisiertes IT-Dienstleistungs- und Beratungsunternehmen. Wir bieten umfassende und professionelle Services, von Beratung und Infrastruktur-Betrieb \u00fcber 24\\\/7 Support bis hin zu individuellen L\u00f6sungen und Schulungen. Unser Fokus liegt auf dem ganzheitlichen Management von gesch\u00e4ftskritischen Open-Source-Systemen, darunter Betriebssysteme (z.B. Linux), Datenbanken (z.B. PostgreSQL), Konfigurationsmanagement (z.B. Ansible, Puppet) und Virtualisierung. Als engagierter Teil der Open-Source-Community unterst\u00fctzen wir unsere Kunden dabei, die Vorteile freier Software sicher, stabil und effizient in ihrer IT-Umgebung zu nutzen.\",\"legalName\":\"credativ GmbH\",\"foundingDate\":\"2025-03-01\",\"duns\":\"316387060\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"},\"address\":{\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#local-main-place-address\"},\"geo\":{\"@type\":\"GeoCoordinates\",\"latitude\":\"51.1732374\",\"longitude\":\"6.392010099999999\"},\"telephone\":[\"+4921619174200\",\"08002733284\"],\"contactPoint\":{\"@type\":\"ContactPoint\",\"telephone\":\"08002733284\",\"email\":\"vertrieb@credativ.de\"},\"openingHoursSpecification\":[{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\"],\"opens\":\"09:00\",\"closes\":\"17:00\"},{\"@type\":\"OpeningHoursSpecification\",\"dayOfWeek\":[\"Saturday\",\"Sunday\"],\"opens\":\"00:00\",\"closes\":\"00:00\"}],\"email\":\"info@credativ.de\",\"areaServed\":\"D-A-CH\",\"vatID\":\"DE452151696\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/#\\\/schema\\\/person\\\/a34b146f598af43f8845ea7e1f0b8ac4\",\"name\":\"Adrian Vondendriesch\",\"description\":\"Adrian ist seit 2013 Mitarbeiter der credativ GmbH. Als technischer Leiter des Cloud Infrastructure Teams besch\u00e4ftigt er sich haupts\u00e4chlich mit der Planung, Realisierung und Betreuung verteilter Infrastrukturen wie zum Beispiel Kubernetes und Ceph sowie mit der Erarbeitung von Deployment-Strategien. Zuvor war er Teil des Datenbank-Teams bei credativ und war dort unter anderem mit dem Aufbau und der Verwaltung von hochverf\u00fcgbaren Datenbank-Systemen betreut. Seit 2015 beteiligt er sich aktiv am Debian-Projekt.\"},{\"@type\":\"PostalAddress\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#local-main-place-address\",\"streetAddress\":\"Hennes-Weisweiler-Allee 23\",\"addressLocality\":\"M\u00f6nchengladbach\",\"postalCode\":\"41179\",\"addressRegion\":\"Deutschland\",\"addressCountry\":\"DE\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.credativ.de\\\/en\\\/blog\\\/howtos\\\/postgresql-on-kubernetes-with-help-from-openebs\\\/#local-main-organization-logo\",\"url\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/credativ-logo-right.svg\",\"contentUrl\":\"https:\\\/\\\/www.credativ.de\\\/wp-content\\\/uploads\\\/2025\\\/04\\\/credativ-logo-right.svg\",\"caption\":\"credativ\u00ae\"}]}<\/script>\n<meta name=\"geo.placename\" content=\"M\u00f6nchengladbach\" \/>\n<meta name=\"geo.position\" content=\"51.1732374;6.392010099999999\" \/>\n<meta name=\"geo.region\" content=\"Germany\" \/>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS - credativ\u00ae","description":"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!","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.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/","og_locale":"en_US","og_type":"article","og_title":"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS","og_description":"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!","og_url":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/","og_site_name":"credativ\u00ae","article_publisher":"https:\/\/www.facebook.com\/credativDE\/","article_published_time":"2019-04-15T07:26:54+00:00","article_modified_time":"2022-03-30T13:27:55+00:00","og_image":[{"width":2500,"height":300,"url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg","type":"image\/jpeg"}],"author":"Adrian Vondendriesch","twitter_card":"summary_large_image","twitter_creator":"@credativde","twitter_site":"@credativde","twitter_misc":{"Written by":"Adrian Vondendriesch","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#article","isPartOf":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/"},"author":{"name":"Adrian Vondendriesch","@id":"https:\/\/www.credativ.de\/en\/#\/schema\/person\/a34b146f598af43f8845ea7e1f0b8ac4"},"headline":"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS","datePublished":"2019-04-15T07:26:54+00:00","dateModified":"2022-03-30T13:27:55+00:00","mainEntityOfPage":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/"},"wordCount":1931,"commentCount":0,"publisher":{"@id":"https:\/\/www.credativ.de\/en\/#organization"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg","keywords":["Kubernetes","OpenEBS","PostgreSQL\u00ae"],"articleSection":["HowTos","PostgreSQL\u00ae"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#respond"]}],"copyrightYear":"2019","copyrightHolder":{"@id":"https:\/\/www.credativ.de\/#organization"}},{"@type":"WebPage","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/","url":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/","name":"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS - credativ\u00ae","isPartOf":{"@id":"https:\/\/www.credativ.de\/en\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#primaryimage"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#primaryimage"},"thumbnailUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg","datePublished":"2019-04-15T07:26:54+00:00","dateModified":"2022-03-30T13:27:55+00:00","description":"What are the uses and benefits of running PostgreSQL\u00ae in a Kubernetes environment? Read the full article here!","breadcrumb":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#primaryimage","url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg","contentUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2019\/04\/PostgreSQL-auf-Kubernetes-mit-Hilfe-von-OpenEBS-Header-1.jpg","width":2500,"height":300},{"@type":"BreadcrumbList","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.credativ.de\/en\/"},{"@type":"ListItem","position":2,"name":"PostgreSQL\u00ae anywhere\u200a\u2014\u200avia Kubernetes with some help from OpenEBS"}]},{"@type":"WebSite","@id":"https:\/\/www.credativ.de\/en\/#website","url":"https:\/\/www.credativ.de\/en\/","name":"credativ GmbH","description":"","publisher":{"@id":"https:\/\/www.credativ.de\/en\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.credativ.de\/en\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Organization","Place"],"@id":"https:\/\/www.credativ.de\/en\/#organization","name":"credativ\u00ae","url":"https:\/\/www.credativ.de\/en\/","logo":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#local-main-organization-logo"},"image":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#local-main-organization-logo"},"sameAs":["https:\/\/www.facebook.com\/credativDE\/","https:\/\/x.com\/credativde","https:\/\/mastodon.social\/@credativde","https:\/\/www.linkedin.com\/company\/credativ-gmbh","https:\/\/www.instagram.com\/credativ\/"],"description":"Die credativ GmbH ist ein f\u00fchrendes, auf Open Source Software spezialisiertes IT-Dienstleistungs- und Beratungsunternehmen. Wir bieten umfassende und professionelle Services, von Beratung und Infrastruktur-Betrieb \u00fcber 24\/7 Support bis hin zu individuellen L\u00f6sungen und Schulungen. Unser Fokus liegt auf dem ganzheitlichen Management von gesch\u00e4ftskritischen Open-Source-Systemen, darunter Betriebssysteme (z.B. Linux), Datenbanken (z.B. PostgreSQL), Konfigurationsmanagement (z.B. Ansible, Puppet) und Virtualisierung. Als engagierter Teil der Open-Source-Community unterst\u00fctzen wir unsere Kunden dabei, die Vorteile freier Software sicher, stabil und effizient in ihrer IT-Umgebung zu nutzen.","legalName":"credativ GmbH","foundingDate":"2025-03-01","duns":"316387060","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"},"address":{"@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#local-main-place-address"},"geo":{"@type":"GeoCoordinates","latitude":"51.1732374","longitude":"6.392010099999999"},"telephone":["+4921619174200","08002733284"],"contactPoint":{"@type":"ContactPoint","telephone":"08002733284","email":"vertrieb@credativ.de"},"openingHoursSpecification":[{"@type":"OpeningHoursSpecification","dayOfWeek":["Monday","Tuesday","Wednesday","Thursday","Friday"],"opens":"09:00","closes":"17:00"},{"@type":"OpeningHoursSpecification","dayOfWeek":["Saturday","Sunday"],"opens":"00:00","closes":"00:00"}],"email":"info@credativ.de","areaServed":"D-A-CH","vatID":"DE452151696"},{"@type":"Person","@id":"https:\/\/www.credativ.de\/en\/#\/schema\/person\/a34b146f598af43f8845ea7e1f0b8ac4","name":"Adrian Vondendriesch","description":"Adrian ist seit 2013 Mitarbeiter der credativ GmbH. Als technischer Leiter des Cloud Infrastructure Teams besch\u00e4ftigt er sich haupts\u00e4chlich mit der Planung, Realisierung und Betreuung verteilter Infrastrukturen wie zum Beispiel Kubernetes und Ceph sowie mit der Erarbeitung von Deployment-Strategien. Zuvor war er Teil des Datenbank-Teams bei credativ und war dort unter anderem mit dem Aufbau und der Verwaltung von hochverf\u00fcgbaren Datenbank-Systemen betreut. Seit 2015 beteiligt er sich aktiv am Debian-Projekt."},{"@type":"PostalAddress","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#local-main-place-address","streetAddress":"Hennes-Weisweiler-Allee 23","addressLocality":"M\u00f6nchengladbach","postalCode":"41179","addressRegion":"Deutschland","addressCountry":"DE"},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.credativ.de\/en\/blog\/howtos\/postgresql-on-kubernetes-with-help-from-openebs\/#local-main-organization-logo","url":"https:\/\/www.credativ.de\/wp-content\/uploads\/2025\/04\/credativ-logo-right.svg","contentUrl":"https:\/\/www.credativ.de\/wp-content\/uploads\/2025\/04\/credativ-logo-right.svg","caption":"credativ\u00ae"}]},"geo.placename":"M\u00f6nchengladbach","geo.position":{"lat":"51.1732374","long":"6.392010099999999"},"geo.region":"Germany"},"_links":{"self":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts\/6737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/comments?post=6737"}],"version-history":[{"count":0,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/posts\/6737\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/media\/6208"}],"wp:attachment":[{"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/media?parent=6737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/categories?post=6737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.credativ.de\/en\/wp-json\/wp\/v2\/tags?post=6737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}