KubernetesのPostgreSQL向けOperator比較
PostgreSQL向けOperator概要
- オープンソースのRDBSであるPostgreSQLをKubernetes cluster上で、自動的に管理させるためのプラットフォーム・仕組み
- (概要の詳細は別途まとめて追記するかも)
Open sourceのPostgres Operator比較
※下記の表は、表作成時(2023/1/25)時点の情報
Operator name | PGO | CloudNativePG | Postgres Operator | StackGres | Percona Operator for PostgreSQL | Stolon | KubeDB Operator |
Github repository | CrunchyData/postgres-operator | cloudnative-pg/cloudnative-pg | zalando/postgres-operator | ongres/stackgres | percona/percona-postgresql-operator | sorintlab/stolon | ( kubedb/docs) |
開発元 | Crunchy data | EDB | Zalando | OnGress | Percona | Sorint.lab | AppsCode Inc. |
Liscense | Apache 2.0 (注:コンテナイメージはDeveloper Program) | Apache 2.0 | MIT | AGPL 3 | Apache 2.0 | Apache 2.0 | Apache 2.0 |
Latest version | 5.3.0 | 1.18.1 (Dec 21, 2022) | Gracious Iguanidae 1.8.2 (Jun 20, 2022) | 1.4.0 (Nov 25, 2022) | 2.0.0 (Dec 29, 2022) | 0.17.0 (Sep 3, 2021) | v2022.12.28 |
対応PostgreSQL versions | 10~15 [参考] | 11~15.1 (11未満は未確認) | 10~15 | 12.1~15.1 | 12~14 | 9.6~15 | 9.6~14(?)) [参考] |
対応Kubernetes versions | 1.22~1.25 | 1.21~1.25 | 1.21~1.23 [参考] | 1.25 (1.25未満は未確認) | 1.22~1.25 (GKEのみテスト済)[参考] | 1.8以上 | 1.25 (1.25未満は未確認)[参考] |
CRD support | 〇 | 〇 | 〇 | 〇 | 〇 | × | 〇 |
補足
- PGO
- KubernetesでのPostgres 管理の自動化におけるCrunchy data社の長年の運用経験に基づいて開発されている
- カスタム性など、機能上で問題となる点は特にない(2022年8月にPostgreSQLのメジャーバージョンアップグレードに対応した)
- ただし、PGOがデプロイするPostgreSQLクラスタに使われるコンテナイメージがオープンソースとはいえないらしいので注意(結局商用利用はできないらしい)
参考:Crunchy DataのPostgreSQL Operator (PGO)はOSSじゃない、https://news.ycombinator.com/item?id=31882256 - 関連リンク
- CloudNativePG
- 2022年4月にCNCFプロジェクトのSandboxステージにリクエストを提出
- CloudNativePGをforkして機能強化したEnterprise版のEDB Postgres for Kubernetes(以前はCloud Native PostgreSQLという名前だった)というOperatorもある
- 関連リンク
- Postgres Operator by Zalando
- 機能はPGOとほぼ同様で、必要な機能は一通りそろっている
- Crunchy dataのPGOの方が、操作が標準化されていて簡単、ZalandoのOperatorはKuberentesの操作への慣れが必要
- ただし、細かい変更の履歴などを残したい場合やブラウザのGUIで操作したい場合はZalandoの方が向く
- 関連リンク
- 機能はPGOとほぼ同様で、必要な機能は一通りそろっている
- StackGres
- 単純な構成でわかりやすいが、Crunchy dataのPGOや、ZalandoのOperatorと比べるとカスタマイズ性が低い
- データベース サーバーのカスタムイメージビルド、マルチサイドカーコンテナーをサポートしていない
- メインはGithubではなくGitLabのリポジトリのため、次節のGithubリポジトリ比較のとらえ方が難しい
- 関連リンク
- 単純な構成でわかりやすいが、Crunchy dataのPGOや、ZalandoのOperatorと比べるとカスタマイズ性が低い
- Percona Operator for PostgreSQL
- Crynchy DataのPGOをforkして作成されたOperator
- 関連リンク
- Stolon
- Custom Resourceをサポートしていないため、仕様に柔軟に対応できるが、システムが複雑になる
- CRD(Custom Resource Definition)を使っていないので正確にはOperatorではないらしい
- 関連リンク
- Custom Resourceをサポートしていないため、仕様に柔軟に対応できるが、システムが複雑になる
- KubeDB Operator
- PostgreSQLだけでなく他のDB(MySQL、Redisなど)も扱える
- KubeDBはKubernetesのstatefulなサービスに対するプラットフォームであり、Operatorよりも広い範囲を対象とするプロジェクト
- Crunchy dataのPGOや、ZalandoのOperatorと比べるとカスタマイズ性が低い
- 関連リンク
- PostgreSQLだけでなく他のDB(MySQL、Redisなど)も扱える
Githubリポジトリ比較
Github Compare
Github star history
所感
- 商用も見据えて手軽に試すなら、機能面でPGOと同じはずのPercona Operator for PostgreSQLがよさそう
- CloudNativePGが後発だが勢いがあり、CNCFプロジェクトにリクエストされているため将来的にもよさそう
- 上記2つを別途テストした
参考
- https://proopensource.it/blog/postgresql-on-k8s-experiences
- https://news.ycombinator.com/item?id=31882256
- https://www.youtube.com/watch?v=WBdNVrffOSo
- https://docs.percona.com/percona-operator-for-postgresql/2.0/compare.html
- https://blog.palark.com/comparing-kubernetes-operators-for-postgresql/
- https://blog.palark.com/cloudnativepg-and-other-kubernetes-operators-for-postgresql/
ディスカッション
コメント一覧
まだ、コメントがありません