2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PostgreSQLのOperatorにCloudNativePGを選択した経緯

Last updated at Posted at 2023-02-02

スクリーンショット 2023-02-02 163645.png

発端

  • 新しく作るK8sベースのWebアプリのDBに、数年前使っていたPostgreSQLのKubernetes OperatorであるCrunchy DataのPGOを使おうと思った
  • しかし、Crunchy DataのPGOを改めて調べてみると、ソース自体はオープンソースだが、使っているコンテナイメージがオープンソースではなく実質商用利用できないらしいことがわかった参考1参考2
  • そこでオープンソースのPostgreSQL向けOperatorを調査して使うべきものを選定した
  • ざっくりした選定基準は、Cloud Providerにバックアップできるか、カスタマイズ項目が多いか、カスタマイズしやすいか、将来的に使い続けられそうか等

俯瞰調査

  • 下記のオープンソースのPostgreSQL向けOperatorについて調査
    • CrunchyData/postgres-operator
    • cloudnative-pg/cloudnative-pg
    • zalando/postgres-operator
    • ongres/stackgres
    • percona/percona-postgresql-operator
    • sorintlab/stolon
    • (kubedb/docs)
  • 上記のプロジェクトの概要(カスタマイズ性やプロジェクトの盛り上がり等)を調査したところ、機能面で優れるCrunchyDataのPGOをforkして作られたPerconaのPostgres Operatorと、CNCFプロジェクト(Sandbox)にリクエストしたCloudNativePGが良さそうに思えた
  • 比較調査の詳細はこちら:KubernetesのPostgreSQL向けOperator比較
  • CNCFについて

percona-postgresql-operatorとcloudnative-pgをローカルで試す

  • WSL2のkind上にそれぞれのOperatorをデプロイしてみた

percona-postgresql-operator

  • v2.0.0が最新バージョンとの記載があったが、Helmでもソースからでもエラーが出てデプロイできなかった(デフォルト設定でデプロイできるかのみを試した)ので、v1.3.0でテスト(v1.3.0はCrunchy Data PGOの4.7相当)
  • アプリから使うときはpgBounderというServiceにアクセスすることでDBを利用する
  • 手順と上記の話の詳細:Percona Operator for PostgreSQLを動かしてみる

cloudnative-pg

  • 通常は、Cluster名の後に-r、-ro、-rwがsuffixとしてついたServiceにアクセスすることで、DBを利用する(読み書きしたければ、-rwのServiceを使う)
  • 手順と上記の話の詳細:CloudNativePGを動かしてみる

ここまで調べての所感+議論したこと

  • Crunchy DataのPostgreSQL Operatorの知見を利用できるCrunchy DataのPGOをforkしたPerconaのOperatorは機能的に非常に魅力的
  • ただし、Crunchy Dataの後追いになる
  • CloudNativePGは、CNCFにリクエストしたのもあり、将来性にも強力なオープンソースコミュニティになりそう(注目度が高いのか、GithubのStar数の伸びがPerconaを上回る)
  • PerconaのOperatorが将来的にオープンソースでなくなることはないと思うが、なんともいえないところ
  • CLoudNativePGのfull-exampleのyamlと、PerconaのOperatorのOptionページを見ると、PerconaのOperatorの方が圧倒的に設定項目数が多いため、PerconaのOperatorの方がカスタマイズ性は高そう
  • ドキュメントはCloudNativePGの方がわかりやすいのでアーキテクチャをイメージしやすい(PerconaのOperatorのドキュメントはところどころCrunchy Dataへのリンクになっているところがある)
    (追記する可能性あり)

結論

  • CNCFの認定ステージを注視しつつ、CloudNativePGで進める
2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?