Postgres Operator
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, others pending)
Database connection pooler with PGBouncer
Restore and cloning Postgres clusters (incl. major version upgrade)
Additionally logical backups to S3 bucket can be configured
Standby cluster from S3 WAL archive
Configurable for non-cloud environments
Basic credential and user management on K8s, eases application deployments
UI to create and edit Postgres cluster manifests
Works well on Amazon AWS, Google Cloud, OpenShift and locally on Kind
PostgreSQL features
Supports PostgreSQL 12, starting from 9.6+
Streaming replication cluster via Patroni
Point-In-Time-Recovery with
pg_basebackup /
WAL-E via Spilo
Preload libraries: bg_mon ,
pg_stat_statements ,
pgextwlist ,
pg_auth_mon
Incl. popular Postgres extensions such as
decoderbufs ,
hypopg ,
pg_cron ,
pg_partman ,
pg_stat_kcache ,
pgq ,
plpgsql_check ,
postgis ,
set_user and
timescaledb
The Postgres Operator has been developed at Zalando and is being used in
production for over two years.
Getting started
For a quick first impression follow the instructions of this
tutorial .
Supported setups of Postgres and Applications
Documentation
There is a browser-friendly version of this documentation at
postgres-operator.readthedocs.io
Google Summer of Code
The Postgres Operator made it to the Google Summer of Code 2019 !
Check our ideas
and start discussions in the issue tracker .
There are two places to get in touch with the community:
The GitHub issue tracker
The #postgres-operator slack channel