CloudNativePG 1.24のリリースノート
CloudNativePGの1.24マイナーリリースのユーザーに表示される変更の履歴。
変更の完全なリストについては、 commits を参照してください。
GitHubのリリースブランチで。
バージョン1.24.0
GA date 2024年8月22日
重要な変更
cnpg.io/instanceRoleを優先して、ServiceおよびPodDisruptionBudgetリソースのセレクターのroleラベルを非推奨にします。#4897PostgreSQLポッドのデフォルトのPodAntiAffinity構成を修正し、アンチアフィニティ構成が
required#5156に設定されている場合に、PostgreSQLとプーラーインスタンスを同じノードで共存できます。
警告
PodAntiAffinityの変更は、オンラインアップグレードが有効になっている場合でも、オペレーターがアップグレードされるときにすべてのインスタンスのロールアウトをトリガーします。
機能
分散PostgreSQLトポロジ レプリカクラスター機能を強化して、マルチプルのKubernetesクラスターにまたがるPostgreSQLの分散データベーストポロジを作成し、ハイブリッドおよびマルチクラウドの展開を有効にします。この機能は以下をサポートします。
宣言的プライマリ制御 分散セットアップ#4388でプライマリとして機能するPostgreSQLクラスターを簡単に指定します。
シームレスなスイッチオーバー 現在のプライマリを簡単に降格し、選択したレプリカクラスターをプロモートします、通常は別のリージョンにあり、元のプライマリを再構築する必要はありません。これにより、多様な環境での高可用性と復元力が保証されます #4411
管理サービス
managed.servicesスタンザ#4769および#4952を介して管理サービスを導入し、次のことができます。configuration.
を介して読み取り専用および読み取りサービスを無効にする サービステンプレート機能を活用してカスタムサービスリソースを作成する、ロードバランサーを含む、Kubernetesの外部のPostgreSQLにアクセスするためのDBaaS目的に特に役立ちます。
同期レプリケーションの拡張API 同期レプリケーションの明示的な構成のための改良されたAPIを導入し、クォーラムベースと優先リスト戦略の両方をサポートします。この更新では、
synchronous_standby_namesオプションの完全なカスタマイズが可能になり、より優れた制御と柔軟性を提供します #5148WALディスク領域の枯渇 PostgreSQLがWALファイルを保存するディスク領域を使い果たしたときにクラスターを安全に停止し、関連ボリュームのサイズを増やすことにより復旧を簡単にします #4404
機能強化
PostgreSQLの
recovery_min_apply_delay機能 #5181 を活用して、.spec.replica.minApplyDelayオプションを導入することにより、遅延レプリカのサポートを追加します。postInitSQLRefsおよびpostInitTemplateSQLRefsを導入して、ユーザーがpostInitおよびpostInitTemplate指示を1つ以上の構成マップまたはシークレットとして定義できるようにします#5074PostgreSQL 17の
allow_alter_systemパラメーターの透過的なサポートを追加し、.spec.postgresql.enableAlterSystemオプションを介してALTER SYSTEMコマンドを有効または無効にします #4921nameキー/値ペアを使用して、クエリメトリック名と列の名前をオーバーライドできます。これは、親キーから自動的に継承された名前を置き換えることができます #4779同じトランザクション内で実行され、
predicate_queryフィールドで定義されたカスタムクエリによって返される値の対象とすることにより、エクスポートされたメトリックの制御が強化されました。#4503追加の引数を
barman-cloud-wal-archiveおよびbarman-cloud-wal-restoreに渡せるようにしました#5099ClusterおよびPoolerリソースにreconcilePodSpecアノテーションを導入して、ポッド仕様の変更に続いてポッドのリスタートを制御します #5069準備状況プローブは、プライマリインスタンスに接続されたことのないストリーミングレプリカに対して失敗するようになったため、一貫性のないレプリカを迅速に検出できます#5206。
Poolerメトリックコレクター#5044でPgBouncer 1.23で導入された新しいメトリックをサポートします。cnpgプラグインの更新--control-planeオプションを追加してinstall generateコマンドを強化し、ノードアフィニティと許容範囲を設定することによりコントロールプレーンノードにオペレーターの展開を許可します。destroyコマンドを強化して、に関連するジョブも削除しますターゲットインスタンス#5298.利用可能な場合は
demotionTokenおよびpromotionTokenを表示するようにstatusコマンドを強化し、分散トポロジ#5149でのより詳細な操作の洞察を提供します。publicationおよびsubscriptionサブコマンドでのリモートデータベース名のカスタマイズのサポートを追加しました。この機能強化により、外部クラスターから複数のデータベース#5113とデータを同期する際の柔軟性が向上します。
セキュリティ
オペレーターとインスタンスマネージャー間のTLS通信を追加します #4442
インスタンスメトリックエクスポーター#4927のオプションのTLS通信を追加します。
修正
終了されたが、エビクションプロセス中に削除されなかったポッドを検出するメカニズムを強化し、メンテナンスウィンドウ中にクリーンアッププロセスを拡張して、
reusePVCフラグがfalseに設定されている場合にスケジュール不可のポッドを含めます#2056WALファイルに新しいシャットダウンチェックポイントエントリが導入されるのを回避するために、ブートストラップ中に VolumeSnapshotを使用する新しく作成されたレプリカの
pg_rewind実行を無効にします。これにより、レプリカは問題なくプライマリに再接続できます。それ以外の場合、追加のチェックポイントエントリ#5081によって妨げられます。新しいインスタンスの初期化中の障害を正常に処理します。失敗した初期化からの残りのデータは、削除されるか、有効なPostgreSQLデータディレクトリである場合は、バックアップの場所に移動して、データ損失の可能性を回避します。 #5112
初期バックアップ失敗#4982時の再試行ロジックを実装することにより、即時バックアップリコンサイラーの堅牢性を強化します。
postmasterを再度起動する前に、postmasterがシャットダウンするのを待ってください #4938Poolerサービステンプレートがデフォルトサービス#4846をオーバーライドできることを確認します。pg_databaseメトリックモニタリングとアラートプロセスから不変データベースを除外します#4980オペレーターサービスアカウント#4911から不要な権限を削除しました。
ClusterImageCatalogs#5034のクラスターロール権限を修正します。オペレーターイメージがアップグレードされたときに、オペレーターが
Poolerインスタンスのロールアウトを開始するように保証 #5006postmasterにアクセスできた場合でも、PostgreSQLの再起動後にreadness probeが誤って「notready」を表示する原因となる競合状態を修正しました #4920Pooler#4967 によって所有されていないリソースのリコンシリエーションを防止します。DNSサブジェクト代替名SANが更新されたときに、オペレーターが管理する証明書を更新します#3269、#3319。
未指定の場合にのみテンプレートにPVCデフォルト
AccessModesを設定します #4845満足できないバックアップスケジュール#5109を正常に処理します。
同期レプリケーション自己修復チェックは、終了したポッドを除外し、アクティブで機能的なポッドにのみ焦点を当てます#5210。
インスタンスマネージャーは、レプリカクラスター#5209のロールの変更に続いて、既存のすべてのオペレーター関連のレプリケーション接続を終了するようになりました。
smartShutdownTimeoutをゼロに設定して、即時高速シャットダウンを有効にし、必要に応じてスマートシャットダウンプロセスをバイパスできるようにします #5347cnpgプラグインstatusコマンドの実行中にエラーを適切に処理します。statusコマンドでTLSをサポート#4915
サポートされているバージョン
Kubernetes 1.31、1.30、1.29、および1.28
PostgreSQL 16、15、14、13、および12 - PostgreSQL 16.4がデフォルトイメージです。PostgreSQL 12のサポートは2024年11月12日に終了します