CloudNativePG 1.24のリリースノート

CloudNativePGの1.24マイナーリリースのユーザーに表示される変更の履歴。

変更の完全なリストについては、 commits を参照してください。

GitHubのリリースブランチで。

バージョン1.24.1

** GA Date** 2024年10月16日

機能強化

  • PGDATA ディレクトリ全体をスキャンしてデータベースサイズを計算することにより、リソース使用率が高くなる原因となったため、ステータスプローブからpg_database_size の使用を削除します。 kubectl status プラグインはdu に依存して、詳細なサイズ情報の取得を提供するようになりました #5689

  • PostgreSQLでfull_page_writes パラメーターを構成する機能を追加します。この設定は、PostgreSQLの推奨事項#5516に従って、デフォルトのon です。

  • プラグイン

    • cnpg プラグインにlogs pretty コマンドを追加して、標準入力からログストリームを読み取り、人間が判読可能な形式で出力します。ログエントリをフィルタリングするオプションを使用します。

    • 複数の-v オプションを増加できるようにして、status コマンドを機能強化します。

    • pgadmin4 プラグインコマンドの--image フラグを使用してカスタムDockerイメージを指定するサポートを追加し、ユーザーがpgAdmin4展開に使用されるDockerイメージを制御できるようにします #5515

修正

  • プライマリを指定されたプライマリに降格する際の同時ステータス更新の問題を解決し、クラスターロールの変更中のよりスムーズな移行を保証します #5755

  • 2つのインスタンスにスケールダウンするときにレプリカPodDisruptionBudgetPDBが削除されるようにし、レプリカをホストするノードのメンテナンスを簡単にします #5487

  • インプレースリスタートよりも完全なロールアウトを優先します #5407

  • .spec.postgresql.synchronous を使用する場合、レプリカに到達できない場合でも、synchronous_standby_names パラメーターが正しく設定されていることを確認します #5831

  • 接続が失われた場合に二重フェイルオーバーが発生する可能性のある問題を修正します #5788

  • ポッドとジョブのTMPDIR およびPSQL_HISTORY 環境変数を正しく設定し、一時ファイルと履歴の管理を改善します #5503

  • プラグイン

    • logs cluster コマンド#5775の競合状態を解決します。

    • status プラグイン#5533でpotential 同期ステータスを表示します。

    • pgadmin4 コマンドによって展開されたポッドに書き込み可能なホームがなかった問題を修正しますディレクトリ#5800。

サポートされているバージョン

  • PostgreSQL 17 PostgreSQL 17.0がデフォルトイメージです。

バージョン1.24.0

** GA Date** 2024年8月22日

重要な変更

  • cnpg.io/instanceRole を優先して、Service およびPodDisruptionBudget リソースのセレクターのrole ラベルを非推奨にします。#4897

  • PostgreSQLポッドのデフォルトのPodAntiAffinity構成を修正し、アンチアフィニティ構成がrequired #5156に設定されている場合に、PostgreSQLとプーラーインスタンスを同じノードで共存できます。

警告

PodAntiAffinityの変更は、オンラインアップグレードが有効になっている場合でも、オペレーターがアップグレードされるときにすべてのインスタンスのロールアウトをトリガーします。

機能

  • 分散PostgreSQLトポロジ レプリカクラスター機能を強化して、マルチプルのKubernetesクラスターにまたがるPostgreSQLの分散データベーストポロジを作成し、ハイブリッドおよびマルチクラウドの展開を有効にします。この機能は以下をサポートします。

    • 宣言的プライマリ制御 分散セットアップ#4388でプライマリとして機能するPostgreSQLクラスターを簡単に指定します。

    • シームレスなスイッチオーバー 現在のプライマリを簡単に降格し、選択したレプリカクラスターをプロモートします、通常は別のリージョンにあり、元のプライマリを再構築する必要はありません。これにより、多様な環境での高可用性と復元力が保証されます #4411

  • 管理サービス managed.services スタンザ#4769および#4952を介して管理サービスを導入し、次のことができます。

    • configuration.

    • を介して読み取り専用および読み取りサービスを無効にする サービステンプレート機能を活用してカスタムサービスリソースを作成する、ロードバランサーを含む、Kubernetesの外部のPostgreSQLにアクセスするためのDBaaS目的に特に役立ちます。

  • 同期レプリケーションの拡張API 同期レプリケーションの明示的な構成のための改良されたAPIを導入し、クォーラムベースと優先リスト戦略の両方をサポートします。この更新では、 synchronous_standby_names オプションの完全なカスタマイズが可能になり、より優れた制御と柔軟性を提供します #5148

  • WALディスク領域の枯渇 PostgreSQLがWALファイルを保存するディスク領域を使い果たしたときにクラスターを安全に停止し、関連ボリュームのサイズを増やすことにより復旧を簡単にします #4404

機能強化

  • PostgreSQLのrecovery_min_apply_delay 機能 #5181 を活用して、.spec.replica.minApplyDelay オプションを導入することにより、遅延レプリカのサポートを追加します。

  • postInitSQLRefs およびpostInitTemplateSQLRefs を導入して、ユーザーがpostInit およびpostInitTemplate 指示を1つ以上の構成マップまたはシークレットとして定義できるようにします#5074

  • PostgreSQL 17のallow_alter_system パラメーターの透過的なサポートを追加し、 .spec.postgresql.enableAlterSystem オプションを介してALTER SYSTEM コマンドを有効または無効にします #4921

  • name キー/値ペアを使用して、クエリメトリック名と列の名前をオーバーライドできます。これは、親キーから自動的に継承された名前を置き換えることができます #4779

  • 同じトランザクション内で実行され、predicate_query フィールドで定義されたカスタムクエリによって返される値の対象とすることにより、エクスポートされたメトリックの制御が強化されました。#4503

  • 追加の引数をbarman-cloud-wal-archive およびbarman-cloud-wal-restore に渡せるようにしました#5099

  • Cluster および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に設定されている場合にスケジュール不可のポッドを含めます#2056

  • WALファイルに新しいシャットダウンチェックポイントエントリが導入されるのを回避するために、ブートストラップ中に VolumeSnapshotを使用する新しく作成されたレプリカのpg_rewind 実行を無効にします。これにより、レプリカは問題なくプライマリに再接続できます。それ以外の場合、追加のチェックポイントエントリ#5081によって妨げられます。

  • 新しいインスタンスの初期化中の障害を正常に処理します。失敗した初期化からの残りのデータは、削除されるか、有効なPostgreSQLデータディレクトリである場合は、バックアップの場所に移動して、データ損失の可能性を回避します。 #5112

  • 初期バックアップ失敗#4982時の再試行ロジックを実装することにより、即時バックアップリコンサイラーの堅牢性を強化します。

  • postmaster を再度起動する前に、postmaster がシャットダウンするのを待ってください #4938

  • Pooler サービステンプレートがデフォルトサービス#4846をオーバーライドできることを確認します。

  • pg_database メトリックモニタリングとアラートプロセスから不変データベースを除外します#4980

  • オペレーターサービスアカウント#4911から不要な権限を削除しました。

  • ClusterImageCatalogs #5034のクラスターロール権限を修正します。

  • オペレーターイメージがアップグレードされたときに、オペレーターがPooler インスタンスのロールアウトを開始するように保証 #5006

  • postmaster にアクセスできた場合でも、PostgreSQLの再起動後にreadness probeが誤って「notready」を表示する原因となる競合状態を修正しました #4920

  • Pooler #4967 によって所有されていないリソースのリコンシリエーションを防止します。

  • DNSサブジェクト代替名SANが更新されたときに、オペレーターが管理する証明書を更新します#3269、#3319。

  • 未指定の場合にのみテンプレートにPVCデフォルトAccessModes を設定します #4845

  • 満足できないバックアップスケジュール#5109を正常に処理します。

  • 同期レプリケーション自己修復チェックは、終了したポッドを除外し、アクティブで機能的なポッドにのみ焦点を当てます#5210。

  • インスタンスマネージャーは、レプリカクラスター#5209のロールの変更に続いて、既存のすべてのオペレーター関連のレプリケーション接続を終了するようになりました。

  • smartShutdownTimeout をゼロに設定して、即時高速シャットダウンを有効にし、必要に応じてスマートシャットダウンプロセスをバイパスできるようにします #5347

  • cnpg プラグイン

    • 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日に終了します