# PostgresOperator **Repository Path**: demin520/PostgresOperator ## Basic Information - **Project Name**: PostgresOperator - **Description**: Postgres Operator通过充分发挥Patroni的能力来提供给大家一种在K8s上构建高可用PostgreSQL集群的方式 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: https://www.oschina.net/p/postgres-operator - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-02-15 - **Last Updated**: 2022-02-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Postgres Operator ![Tests](https://github.com/zalando/postgres-operator/workflows/operator-tests/badge.svg) ![E2E Tests](https://github.com/zalando/postgres-operator/workflows/operator-e2e-tests/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/zalando/postgres-operator/badge.svg?branch=master)](https://coveralls.io/github/zalando/postgres-operator?branch=master) The Postgres Operator delivers an easy to run highly-available [PostgreSQL](https://www.postgresql.org/) clusters on Kubernetes (K8s) powered by [Patroni](https://github.com/zalando/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 to PG13. Supports global upgrade of all clusters. * 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 * Support for custom TLS certificates * UI to create and edit Postgres cluster manifests * Works well on Amazon AWS, Google Cloud, OpenShift and locally on Kind * Support for AWS EBS gp2 to gp3 migration, supporting iops and throughput configuration ### PostgreSQL features * Supports PostgreSQL 14, starting from 9.6+ * Streaming replication cluster via Patroni * Point-In-Time-Recovery with [pg_basebackup](https://www.postgresql.org/docs/11/app-pgbasebackup.html) / [WAL-E](https://github.com/wal-e/wal-e) via [Spilo](https://github.com/zalando/spilo) * Preload libraries: [bg_mon](https://github.com/CyberDem0n/bg_mon), [pg_stat_statements](https://www.postgresql.org/docs/14/pgstatstatements.html), [pgextwlist](https://github.com/dimitri/pgextwlist), [pg_auth_mon](https://github.com/RafiaSabih/pg_auth_mon) * Incl. popular Postgres extensions such as [decoderbufs](https://github.com/debezium/postgres-decoderbufs), [hypopg](https://github.com/HypoPG/hypopg), [pg_cron](https://github.com/citusdata/pg_cron), [pg_partman](https://github.com/pgpartman/pg_partman), [pg_stat_kcache](https://github.com/powa-team/pg_stat_kcache), [pgq](https://github.com/pgq/pgq), [plpgsql_check](https://github.com/okbob/plpgsql_check), [postgis](https://postgis.net/), [set_user](https://github.com/pgaudit/set_user) and [timescaledb](https://github.com/timescale/timescaledb) The Postgres Operator has been developed at Zalando and is being used in production for over three years. ## Using Spilo 12 images or lower If you are already using the Postgres operator in older version with a Spilo 12 Docker image you need to be aware of the changes for the backup path. We introduce the major version into the backup path to smoothen the [major version upgrade](docs/administrator.md#minor-and-major-version-upgrade) that is now supported. The new operator configuration can set a compatibility flag *enable_spilo_wal_path_compat* to make Spilo look for wal segments in the current path but also old format paths. This comes at potential performance costs and should be disabled after a few days. The newest Spilo image is: `registry.opensource.zalan.do/acid/spilo-14:2.1-p3` The last Spilo 12 image is: `registry.opensource.zalan.do/acid/spilo-12:1.6-p5` ## Getting started For a quick first impression follow the instructions of this [tutorial](docs/quickstart.md). ## Supported setups of Postgres and Applications ![Features](docs/diagrams/neutral_operator.png) ## Documentation There is a browser-friendly version of this documentation at [postgres-operator.readthedocs.io](https://postgres-operator.readthedocs.io) * [How it works](docs/index.md) * [Installation](docs/quickstart.md#deployment-options) * [The Postgres experience on K8s](docs/user.md) * [The Postgres Operator UI](docs/operator-ui.md) * [DBA options - from RBAC to backup](docs/administrator.md) * [Build, debug and extend the operator](docs/developer.md) * [Configuration options](docs/reference/operator_parameters.md) * [Postgres manifest reference](docs/reference/cluster_manifest.md) * [Command-line options and environment variables](docs/reference/command_line_and_environment.md) ## Community There are two places to get in touch with the community: 1. The [GitHub issue tracker](https://github.com/zalando/postgres-operator/issues) 2. The **#postgres-operator** [slack channel](https://postgres-slack.herokuapp.com)