Release notes for CloudNativePG 1.24 ==================================== .. raw:: html CloudNativePGの1.24マイナーリリースのユーザーに表示される変更の履歴。 変更の完全なリストについては、 `commits `_ を参照してください。 GitHubのリリースブランチで。 バージョン1.24.4 ---------------- **発売日** 2025年5月23日 .. Warning:: これは、1.24.xシリーズの最後のリリースです。 1.24はサポートされなくなったため、新しいマイナーバージョンにアップグレードすることを強くお勧めします。   重要な変更 ^^^^^^^^^^ - **CloudNativePGは公式にCNCFプロジェクトになりました** CloudNativePGはCloud Native Computing FoundationCNCFに受け入れられ、その進化の重要なマイルストーンを示しました。この移行の一環として、プロジェクトは現在 **CloudNativePG、シリーズのLFプロジェクト、LLC** の下で管理され、長期的な持続可能性とコミュニティ主導のイノベーションを保証します。 (#7203) 機能強化 ^^^^^^^^ - ``KUBERNETES_CLUSTER_DOMAIN`` 構成オプションをオペレーターに追加し、ユーザーがKubernetesクラスター内で生成された完全修飾ドメイン名FQDNのドメインサフィックスを指定できるようにします。設定されていない場合、デフォルトの\ ``cluster.local`` が使用されます。 (#6989) - ``cnpg.io/validation`` アノテーションを実装し、ユーザーがCloudNativePG管理リソースで検証Webhookを無効にできるようにします。無制限の変更が許可されるため、使用には注意してください。 (#7196) - PostgreSQL 18での\ ``pg_stat_wal`` メトリックの収集のサポートを追加しました。 #7005 - Barman Cloud *非推奨* を介してWALファイルをアーカイブする際のLZ4、XZ、およびZ標準圧縮方法のサポートを追加しました。 (#7151) セキュリティ ^^^^^^^^^^^^ - オペレーター展開の\ ``imagePullPolicy`` を\ ``Always`` に設定して、イメージが常にレジストリから取得されるようにし、古いまたは安全でない可能性のあるローカルイメージを使用するリスクを削減します。 (#7250) 修正 ^^^^ - レプリカ構成で\ ``dbname`` パラメーターを\ ``primary_conninfo`` に追加することにより、PostgreSQL 17のネイティブレプリケーションスロット同期と論理レプリケーションフェイルオーバーを修正しました #7298 - WALアーカイブにフェイルファストメカニズムを導入することにより、バックアップ効率が向上し、予期しないプライマリ降格をより迅速に検出でき、不必要な再試行を回避できます #7483 - 要求された数を超えて1つの追加のワーカープロセスが生成される可能性があるパラレルWALアーカイブのoff-by-oneエラーを修正しました #7389 - PostgreSQL構成を更新するときにオペレーターが2つのスイッチオーバーを実行する原因となった競合状態を解決しました。 (#6991) - ターゲットプーラーおよびクラスターポッドの\ ``matchLabels`` スコープを調整することにより、\ ``PodMonitor`` 構成を修正しました。以前は、 ``matchLabels`` の範囲が広すぎるため、誤ってクラスターからラベルを継承し、意図しないターゲットからデータ収集が発生していました。 (#7063) - ``shared_buffers`` 構成で欠落している単位MB、GBなどのクラスターのWebhook警告を追加しました。これは、将来のリリースではエラーになります。ユーザーは構成を更新して、明示的なユニットたとえば、\ ``512`` の代わりに\ ``512MB`` などを含める必要があります。 (#7160) - CloudNativePGインターフェイスCNPG-I - プラグインのTLS証明書が変更された場合の自動リロードを実装しました。 (#7029) - プラグインを使用してバックアップを実行するときに、オペレーターがプラグイン接続を適切に閉じるようにしました。 (#7095、#7096) - ローカルプラグイン操作のタイムアウトを削除し、より長いバックアップまたはWALアーカイブの実行中の障害を回避することにより、CNPG-Iのパフォーマンスと復元力を向上させました#7496。 - ``cnpg`` プラグイン - ``primaryUpdateMethod`` が\ ``restart`` に設定されている場合、強制的再起動中にプライマリポッドが再作成され、その定義をレプリカと調整します。 (#7122) 変更 ^^^^ - 新しいクラスター定義に合わせて、デフォルトのPostgreSQLバージョンを17.5に更新しました。 (#7556) - 新しい\ ``Pooler`` 展開#7399用に、デフォルトのPgBouncerバージョンを **1.24.1** に更新しました。 バージョン1.24.3 ---------------- **発売日** 2025年2月28日 .. _機能強化-1: 機能強化 ^^^^^^^^ - オペレーターのスタートアッププローブを導入して、信頼性を向上させ、初期化中の早期の活性プローブの障害を防止します。 (#7008) - プーラーでの\ ``-r`` サービスを使用するためのサポートを追加しました。 (#6868) - ``pgbench`` プラグインのオプションの\ ``--ttl`` フラグを導入し、ユーザー定義の期間の後に完了したジョブの自動削除を有効にします。 (#6701) - ボリュームスナップショットのAzure CSIドライバーからの既知のエラーメッセージを再試行可能としてマークし、復元力を向上させます。 (#6906) - 新しいクラスター定義に向けて、デフォルトのPostgreSQLバージョンを17.4に更新しました。 (#6960) .. _セキュリティ-1: セキュリティ ^^^^^^^^^^^^ - オペレーターイメージビルドプロセスが強化され、セキュリティと透明性が強化されました。イメージは\ ``cosign`` で署名され、ソフトウェア部品表SBOMと来歴データを組み込んだOCI証明書が生成されます。さらに、OCIアノテーションが追加されて、トレーサビリティを向上させ、イメージの完全性を保証します。 バグ修正 ^^^^^^^^ - ``.spec.probes`` が定義されている場合のデフォルトのプローブノブ値の一貫性のない動作を修正し、ユーザーが\ ``failureThreshold`` を含むすべての設定をオーバーライドできるようにします。起動プローブで指定されない場合、 ``failureThreshold`` は\ ``.spec.startupDelay / periodSeconds`` デフォルト\ ``10`` 、オーバーライド可能になりました。同じロジックが\ ``.spec.livenessProbeTimeout`` を介してlivenessプローブに適用されます。 (#6656) - 管理対象サービスポートが、デフォルトのオペレーター定義のポートより優先されるようになりました。 (#6474) - インスタンスの再起動後、構成変更が適用されるまで、WALメトリックを利用できない問題を修正しました。 (#6816) - モノリシックデータベースのインポートで、ロールが指定されていない場合にロールのインポートがスキップされる問題を修正しました。 (#6646) - PgBouncer 1.24で導入された新しいメトリックのサポートを追加しました。 (#6630) - プライマリサーバー再起動後のタイムリーな調整を保証することにより、レプリケーション依存のパラメーター削減の処理が向上しました。 (#6440) - CNPG-Iプラグイン構成に新しい\ ``isWALArchiver`` フラグを導入し、ユーザーはプラグインをWALアーカイバーとして指定できます。これにより、WALアーカイブの一貫性を維持しながら、ツリー内Barman Cloudサポートからプラグインへのシームレスな移行が可能になります。 (#6593) - レプリカクラスターのブートストラップ中に\ ``override.conf`` が一貫して\ ``postgresql.conf`` に含まれるように保証、構成設定の欠落によるレプリケーション障害を防ぎます。 (#6808) - プライマリロールの変更中の障害を防ぐために、\ ``pg_rewind`` を呼び出す前に\ ``override.conf`` が正しく初期化されていることを確認しました。 (#6670) - Webhook応答を強化して、該当する場合は警告とエラーの両方を結果、診断の精度を向上させます。 (#6579) - オペレーターバージョンが正しくリコンサイルされていることを確認しました。 (#6496) - データディレクトリのより正確なチェックを使用することにより、PostgreSQLバージョンの検出が向上しました。 (#6659) - ボリュームスナップショットバックアップ - 未使用のバックアップ接続が適切にクリーンアップされない問題を修正しました。 (#6882) - インスタンスマネージャーが、失敗したボリュームスナップショットバックアップによって残された古いPostgreSQL接続を閉じるようにしました。 (#6879) - 別のボリュームが既に進行中であるときに、オペレーターが新しいボリュームスナップショットバックアップを開始できないようにしました。 (#6890) - ``cnpg`` プラグイン: - ``promote`` プラグインコマンドの機能を復元しました。 (#6476) - サイドカーを含むすべてのコンテナからログを収集するように\ ``kubectl cnpg report --logs `` を強化しました。 (#6636) - ``Cluster`` が\ ``ImageCatalog`` を使用するときに\ ``pgbench`` ジョブを実行できるようにしました。 (#6868) 技術的な機能強化 ^^^^^^^^^^^^^^^^ - Kubernetes ``client-gen`` のサポートを追加し、すべてのCloudNativePG CRDのGoクライアントの自動生成を有効にします。 (#6695) バージョン1.24.2 ---------------- **発売日** 2024年12月23日 .. _機能強化-2: 機能強化 ^^^^^^^^ - ``.spec.probes`` スタンザを介してスタートアップ、ライブネス、および準備状況プローブのカスタマイズを有効にします。 (#6266) - 事前定義されたユーザー、具体的には\ ``superuser`` および\ ``app`` 用に生成されたシークレットに\ ``cnpg.io/userType`` ラベルを追加します。 (#4392) - ScheduledBackupsの\ ``spec.schedule`` フィールドの検証が向上し、潜在的な構成ミスの警告が生成されます。 (#5396) - ``cnpg`` プラグイン - APIサーバーとのHTTP要求の\ ``User-Agent`` ヘッダーを尊重します。 (#6153) .. _バグ修正-1: バグ修正 ^^^^^^^^ - レプリカとして再同期する前に、元のプライマリがWALファイルキューをアーカイブにフラッシュすることにより、復旧時間を削減し、フェールオーバー中のデータの一貫性を強化します。 (#6141) - ブートストラップ中に\ ``PGDATA`` ボリュームとともにWALボリュームをクリーンアップします。 (#6265) - 以前に生成された\ ``PersistentVolumeClaims`` がすべて欠落している場合、クラスターフェーズを\ ``Unrecoverable`` に設定するようにオペレーターを更新します。 (#6170) - ``.spec.postgresql.synchronous.method`` が\ ``first`` に設定されている場合の\ ``synchronous_standby_names`` GUCの解析を修正しました。 (#5955) - CRDステータスの特定の条件にパッチを適用する際の潜在的な競合状態を解決し、同時更新の信頼性を向上させます。 (#6328) - ロールの変更を修正して、データベースコンテキストではなくトランザクションレベルで適用します。 (#6064) - プライマリ上の\ ``override.conf`` ファイルから\ ``primary_slot_name`` 定義を削除して、常に空になるようにします。 (#6219) - PgBouncerポッドで\ ``PGHOST`` を含むlibpq環境変数を構成して、コンテナ内から\ ``psql`` を使用して\ ``pgbouncer`` 仮想データベースへのシームレスなアクセスを有効にします。 (#6247) - イメージカタログの変更を確認するときに、クラスターステータスの不要な更新を削除します。 (#6277) - 適切なバックアップ構成なしで外部サーバーからのリカバリー中のパニックを防止します。 (#6300) - 2つの異なる値のログに名前フィールドが一貫して使用されない、構造化ログのキー衝突の問題を解決しました。 (#6324) - SQLステートメントのinRolesフィールドの適切な引用符を確認して、ロール管理中に生成されたSQLの構文エラーを防ぎます。 (#6346) - ``cnpg`` プラグイン: - ``kubectl`` コンテキストが\ ``psql`` コマンドに適切に渡されることを確認します。 (#6257) - ``status`` コマンドで空のときに物理バックアップブロックを表示しないようにします。 (#5998) バージョン1.24.1 ---------------- **発売日** 2024年10月16日 .. _機能強化-3: 機能強化 ^^^^^^^^ - ``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 .. _修正-1: 修正 ^^^^ - プライマリを指定されたプライマリに降格する際の同時ステータス更新の問題を解決し、クラスターロールの変更中のよりスムーズな移行を保証します #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 ---------------- **発売日** 2024年8月22日 .. _重要な変更-1: 重要な変更 ^^^^^^^^^^ - ``cnpg.io/instanceRole`` を優先して、\ ``Service`` および\ ``PodDisruptionBudget`` リソースのセレクターの\ ``role`` ラベルを非推奨にします。#4897 - PostgreSQLポッドのデフォルトのPodAntiAffinity構成を修正し、アンチアフィニティ構成が\ ``required`` #5156に設定されている場合に、PostgreSQLとプーラーインスタンスを同じノードで共存できます。 .. Warning:: 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 .. _機能強化-4: 機能強化 ^^^^^^^^ - 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とデータを同期する際の柔軟性が向上します。 .. _セキュリティ-2: セキュリティ ^^^^^^^^^^^^ - オペレーターとインスタンスマネージャー間のTLS通信を追加します #4442 - インスタンスメトリックエクスポーター#4927のオプションのTLS通信を追加します。 .. _修正-2: 修正 ^^^^ - 終了されたが、エビクションプロセス中に削除されなかったポッドを検出するメカニズムを強化し、メンテナンスウィンドウ中にクリーンアッププロセスを拡張して、\ ``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 .. _サポートされているバージョン-1: サポートされているバージョン ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - Kubernetes 1.31、1.30、1.29、および1.28 - PostgreSQL 16、15、14、13、および12 - PostgreSQL 16.4がデフォルトイメージです。PostgreSQL 12のサポートは2024年11月12日に終了します