Release notes for CloudNativePG 1.23

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

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

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

バージョン1.23.6

発売日 2024年12月23日

警告

これは、1.23.xシリーズの最後のリリースです。 1.23はサポートされなくなったため、新しいマイナーバージョンにアップグレードすることを強くお勧めします。

機能強化

  • .spec.probes スタンザを介してスタートアップ、ライブネス、および準備状況プローブのカスタマイズを有効にします。 (#6266)

  • 事前定義されたユーザー、具体的にはsuperuser およびapp 用に生成されたシークレットにcnpg.io/userType ラベルを追加します。 (#4392)

  • ScheduledBackupsのspec.schedule フィールドの検証が向上し、潜在的な構成ミスの警告が生成されます。 (#5396)

  • cnpg プラグイン - APIサーバーとのHTTP要求のUser-Agent ヘッダーを尊重します。 (#6153)

バグ修正

  • レプリカとして再同期する前に、元のプライマリがWALファイルキューをアーカイブにフラッシュすることにより、復旧時間を削減し、フェールオーバー中のデータの一貫性を強化します。 (#6141)

  • ブートストラップ中にPGDATA ボリュームとともにWALボリュームをクリーンアップします。 (#6265)

  • 以前に生成されたPersistentVolumeClaims がすべて欠落している場合、クラスターフェーズをUnrecoverable に設定するようにオペレーターを更新します。 (#6170)

  • .spec.postgresql.synchronous.methodfirst に設定されている場合の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.23.5

発売日 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

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

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

  • プラグイン

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

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

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

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

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

バージョン1.23.4

発売日 2024年8月22日

機能強化

  • cnpg プラグインの更新

    • --control-plane オプションを追加してinstall generate コマンドを強化し、ノードアフィニティと許容範囲を設定することによりコントロールプレーンノードにオペレーターの展開を許可します。

    • destroy コマンドを強化して、に関連するジョブも削除しますターゲットインスタンス#5298。

修正

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

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

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

バージョン1.23.3

発売日 2024年7月29日

機能強化

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

  • Cluster およびPooler リソースにreconcilePodSpec アノテーションを導入して、ポッド仕様の変更に続いてポッドのリスタートを制御します #5069

  • Pooler メトリックコレクター#5044でPgBouncer 1.23で導入された新しいメトリックをサポートします。

修正

  • 終了されたが、エビクションプロセス中に削除されなかったポッドを検出するメカニズムを強化し、メンテナンスウィンドウ中にクリーンアッププロセスを拡張して、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を正常に処理します。

  • cnpg プラグイン

  • status コマンドの実行中にエラーを適切に処理します。

  • status コマンドでTLSをサポート#4915

バージョン1.23.2

発売日 2024年6月12日

機能強化

  • 物理バックアップを使用したリカバリー中のスタンバイ依存パラメーターの構成を有効にしました #4564

  • .spec.livenessProbeTimeout オプションを介したlivenessプローブタイムアウトの構成を有効にしました #4719

  • kubectl :

    • cnpg プラグイン --color オプションを追加することにより、プラグインでのANSIカラーのサポートを強化しました。これは、alwaysnever 、およびauto デフォルトを受け入れます。#4775

    • macOSユーザーのHomebrewでプラグインが利用できるようになりました。 #4602)

修正

  • フェンスされたインスタンスが不要なループに入り、使用可能なすべてのCPUを消費するのを防ぎました #4625

  • プライマリのインスタンスマネージャーが、停止操作に続いて障害が発生した後、インスタンスが起動するのを無期限に待機する問題を解決しました #4434

  • hot_standby_feedback と管理対象クラスターレベルのレプリケーションスロット間の相互作用により、自動バキュームが正しく動作しない問題を修正しました。この問題は、ディスク領域がデッドタプルによって占有されたままになっている原因でした #4811

  • ポッドコンテナのステータスが欠落しているときに発生したバックアップコントローラのパニックを修正しました #4765

  • インスタンスマネージャーの不要なシャットダウンを防止 #4670

  • PostgreSQL構成が変更されない場合の不必要なリロードを防止#4531

  • コンテンツを書き込む一貫した一意の方法を保証することにより、identマップの不必要なリロードを防止しました #4648

  • リソースのステータスを更新する代わりにパッチを適用することにより、フェーズ登録中の競合を回避しました #4637

  • PostgreSQLを再起動し、フェンシングをリフティングするときにタイムアウトを実装しました #4504

  • アーカイブモードを適切に設定するための昇格後にレプリカクラスターが再起動されるようにした #4399

  • ボリュームスナップショットバックアップでランダムな障害を引き起こしていた不要なコンカレントキープアライブルーチンを削除しました #4768

  • pgaudit.log_rows オプションが有効になっているときに返される追加行フィールドの正しい解析を保証し、監査ログが通常のログストリームに誤ってルーティングされるのを防ぎます #4394

  • kubectl 用のcnpg プラグイン

  • cnpg status コマンドを使用したPDBのリストに関する問題を解決しました #4530

変更

  • デフォルトのオペランドイメージをPostgreSQL 16.3に設定した#4584

  • 名前空間オブジェクトのすべてのRBAC要件を削除しました #4753

バージョン1.23.1

発売日 2024年4月29日

修正

  • 回帰のために失敗していたPodMonitor リソースのリコンシリエーションを修正します #4286

バージョン1.23.0

発売日 2024年4月24日

注釈

サポートポリシーを更新して、一度に2つではなく1つのサポートされているマイナーリリースに焦点を合理化しました。さらに、以前のマイナーリリースの補助サポート期間を3か月に延長しました。

機能

  • PostgreSQLイメージカタログ PostgreSQLメジャーバージョンに基づいてオペランドコンテナイメージを管理するためのClusterImageCatalog およびImageCatalog CRDを導入しました。これは、Cluster.spec.imageCatalogRef stanza を介して促進されます。この機能は、imageNameオプションの代替を提供し、最終的にオペランドコンテナイメージを定義するデフォルトの方法として置き換えます。

  • ユーザー定義のレプリケーションスロット 物理的レプリケーションスロットの同期を強化して、新しく導入されたスタンザ replicationSlots.synchronizeReplicas を介して、プライマリのユーザー定義のレプリケーションスロットをカバーします。

  • ポッド中断バジェットPDBの構成 .spec.enablePDB フィールドを導入して、プライマリインスタンスでPDBを無効にし、メンテナンス操作中にポッドの適切なエビクションを可能にします。これは、単一インスタンスの展開に特に役立ちます。この機能は、ノードのメンテナンスウィンドウ機能を置き換えることを目的としています。

機能強化

  • ユーザーは既存のクラスターをレプリカモードに移行し、クロスデータセンターのスイッチオーバー操作を簡素化できる機能を備えています #4261

  • ユーザーは、タイプ、ラベル、注釈を含む接続プーラーサービスをカスタマイズできるようになりました #3384

  • ユーザーはwal_log_hints PostgreSQLパラメーターを構成できるようになりました #4218 #4218

  • 自動的に生成されたシークレットのURIの完全修飾ドメイン名FQDN #4095

  • クラスターの復元中にクラスターが所有していないインスタンスポッドのクリーンアップ #4141

  • PDBのステータスを表示するプラグインのstatus コマンドのコマンド出力 #4319

  • recovery ブートストラップでbarman-cloud-wal-restore を呼び出す際のエラー検出 #4101

修正

  • スイッチオーバーの前に、選択されたレプリカがストリーミングレプリケーションにあることを確認しました #4288

  • インスタンスのLSNをソートするときにその解析エラーを正しく処理する #4283

  • 昇格できる正常なスタンバイがない場合は、プライマリポッドを再作成します #4132

  • リストアジョブが失敗した場合のPGDATA のクリーンアップ #4151

  • 構成の更新時に証明書をリロードします #3705

  • kubectlcnpg プラグイン

    • destroyfencing 、およびpromote プラグインコマンドの引数処理を改善します#4280

    • cnpg status のバックアップの進行状況のパーセンテージを正しく処理します#4131

    • 13b_tranにシーケンスのないデータベース

    • #4346)

変更点