Skip to content

Postgres operator creates and manages PostgreSQL clusters running in Kubernetes

License

NotificationsYou must be signed in to change notification settings

zalando/postgres-operator

Repository files navigation

Postgres Operator

TestsE2E TestsCoverage Status

The Postgres Operator delivers an easy to run highly-available PostgreSQL clusters on Kubernetes (K8s) powered by Patroni. It is configured only through Postgres manifests (CRDs) to ease integration into automated CI/CD pipelines with no access to Kubernetes API directly, promoting infrastructure as code vs manual operations.

Operator features

  • Rolling updates on Postgres cluster changes, incl. quick minor version updates
  • Live volume resize without pod restarts (AWS EBS, PVC)
  • Database connection pooling with PGBouncer
  • Support fast in place major version upgrade. Supports global upgrade of all clusters.
  • Restore and cloning Postgres clusters on AWS, GCS and Azure
  • Additionally logical backups to S3 or GCS bucket can be configured
  • Standby cluster from S3 or GCS WAL archive
  • Configurable for non-cloud environments
  • Basic credential and user management on K8s, eases application deployments
  • Support for custom TLS certificates
  • UI to create and edit Postgres cluster manifests
  • Compatible with OpenShift

PostgreSQL features

The Postgres Operator has been developed at Zalando and is being used in production for over five years.

Supported Postgres & K8s versions

ReleasePostgres versionsK8s versionsGolang
v1.14.013 → 171.27+1.23.4
v1.13.012 → 161.27+1.22.5
v1.12.011 → 161.27+1.22.3
v1.11.011 → 161.27+1.21.7
v1.10.110 → 151.21+1.19.8
v1.9.010 → 151.21+1.18.9

Getting started

For a quick first impression follow the instructions of this tutorial.

Supported setups of Postgres and Applications

FeaturesFeatures

Documentation

There is a browser-friendly version of this documentation at postgres-operator.readthedocs.io