Release notes for CloudNativePG 1.21

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

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

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

バージョン1.21.6

発売日 2024年6月12日

警告

これは、1.21.Xシリーズの最後のリリースになる予定です。ユーザーは、すぐに新しいマイナーバージョンに更新することをお勧めします。

機能強化

  • 物理バックアップを使用したリカバリー中のスタンバイ依存パラメーターの構成を有効にしました #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.21.5

発売日 2024年4月24日

機能強化

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

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

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

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

修正

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

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

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

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

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

  • kubectlcnpg プラグイン

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

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

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

    • #4346)

変更点

バージョン1.21.4

発売日 2024年3月14日

機能強化

  • PostgreSQLでwal_level GUCのカスタマイズを許可する #4020

  • cnpg.io/skipWalArchiving アノテーションを追加して、enabled に設定されている場合にWALアーカイブを無効にします #4055

  • publication およびsubscription コマンドグループでkubectlcnpg プラグインを強化して、PostgreSQLネイティブ論理レプリケーションを強制的にセットアップする #4052

  • オペレーターによって処理されるTLS証明書の自動管理のためにCERTIFICATE_DURATION およびEXPIRING_CHECK_THRESHOLD のカスタマイズを許可します #3686

  • kubectlcnpg プラグインを使用したタブ補完の初期サポートを導入します #3875

  • インプレース更新中に、実行中のオペレーターイメージの対応するカタログから正しいアーキテクチャのバイナリを取得し、オペレーターがサポートされているアーキテクチャを備えたポッドに正しいバイナリを注入できるようにします #3840

修正

  • PVCグループラベルをポッド上のラベルと適切に同期します。すべてのポッドが削除され、オペレーターが最初にどのポッドを再作成するかを決定する必要がある場合に重要な側面 #3930

  • レプリカのクローンを作成するときにwal_sender_timeout を無効にして、接続が遅いことによるタイムアウトエラーを防ぐ #4080

  • リカバリブートストラップ手順を開始する前にボリュームスナップショットの準備ができていることを確認し、不完全なバックアップによるリカバリがエラーループに入るエラー状態を防止します #3663

  • 管理対象ロールで接続制限の設定を解除するときのエラーループの防止 #3832

  • インスタンスポッドは削除されたが、クラスターステータスのハイバーネーション状態条件がfalseに設定されたままである、ハイバーネーションのコーナーケースを解決します #3970

  • Barman CloudのGoogle Cloud機能を正しく検出する #3931

セキュリティ

  • OLMのオペレーター権限にClusterRole の代わりにRole を使用し、名前空間ごとにインストールするときに必要な特権が少なくなります #3855、#3990

  • PgBouncerプーラーのSQLクエリーで完全修飾オブジェクト名を適用する #4080

変更

  • Kubernetesの推奨事項に従って、マニフェストのクライアントサイドからサーバーサイドのアプリケーションに切り替えます。オペレーター#3729のインストール時に、デフォルトで--server-side オプションが必要です。

  • デフォルトのオペランドイメージをPostgreSQL 16.2#3823に設定します。

バージョン1.21.3

発売日 2024年2月2日

機能強化

  • ephemeralVolumeSource オプションからクレームテンプレートを使用して、Postgresクラスターの一時ボリュームストレージを調整する #3678

  • kubectlcnpg プラグインにpgadmin4 コマンドを導入し、特定のデータベースクラスターへの接続をデモンストレーションし、種類などのローカル環境でそのコンテンツをナビゲートする簡単な方法を提供します - 評価目的のみ #3701

  • ユーザー名マップのリストを介して、.spec.postgresql.pg_ident スタンザを介してPostgreSQLのidentマップファイルのカスタマイズを許可します #3534

修正

  • ALTER SYSTEM SQLコマンドが無効になっているクラスターでpostgresql.auto.conf が読み取り専用であるため、 pg_rewind が失敗するという回復不能な問題を防ぐ - デフォルト #3728

  • インポートプロセス中にPostgreSQLインスタンスの耐久性設定を無効にすることにより、 initdb ブートストラップ方法のインポート機能を使用する際のディスク領域不足のリスクを削減します。 #3743

  • 誤ったリソース量の比較によるポッドの再起動を回避します。 “1 != 1000m” #3706

  • pgpass 接続フィールドの予約文字を適切にエスケープする #3713

  • .spec.projectedVolumeTemplate.sources でゼロとnilの異なる値を考慮することにより、ポッドの体系的なロールアウトを防止 #3647

  • override.conf に組み込まれたオプションをpostgresql.auto.conf からプルーニングすることにより、構成の一貫性を確保します #3773

バージョン1.21.2

発売日 2023年12月21日

セキュリティ

  • デフォルトでは、TLSv1.3はすべてのPostgreSQL 12以降のインストールに適用されます。さらに、ユーザーはssl_ciphersssl_min_protocol_version 、およびssl_max_protocol_version GUC#3408を構成できます。

  • セキュリティ対策を強化するためのDockerイメージスキャンのDockleおよびSnykの統合 #3300

機能強化

  • 外部クラスターのリコンシリエーションの向上#3533

  • ALTER SYSTEM コマンドを有効/無効にする機能の導入 #3535

  • Cluster およびPooler リソースの.spec.monitoring スタンザのpodMonitorMetricRelabelings およびpodMonitorRelabelings オプションを介したPrometheusの動的なリラベル付けのサポート #3075

  • オブジェクトストアバックアップ#2940とともにボリュームスナップショットを考慮することにより、最初の復旧可能ポイントと最後に成功したバックアップの計算を強化しました。

  • PostgreSQLへのネットワーク接続を確立する際のPGPASSFILE 環境変数の使用を削除 #3522

  • クラスターのPVCを収集することによりcnpg report プラグインコマンドを改善しました #3357

  • cnpg status プラグインコマンドの強化、アラートを含む管理対象ロールに関する情報を提供します #3310

  • OLM展開に適した、オペレーター用のRed Hat UBI 8コンテナイメージの導入。

  • 接続プーラー

    • Pooler リソースのインスタンスを0にスケールダウンすることが可能になりました#3517.

    • 値が’pooler’であるcnpg.io/podRole ラベルをすべてのプーラー展開に追加し、インスタンスポッドと区別します #3396

修正

  • PodDisruptionBudget リソース#3312および#3434のメタデータ、アノテーション、およびラベルの調整。

  • 管理対象資格情報シークレットのメタデータの調整 #3316

  • 本文の読み取りエラーが全体的なエラーとして処理され、バックアッププロセスが無期限にスタックしたままになるバックアップスナップショットコードのバグの解決#3321。

  • immediate-checkpoint またはwait-for-archive オプションが要求された場合のcnpg backup プラグインコマンドを使用したオンラインバックアップの暗黙的な設定#3449

  • pg_basebackupを介して参加する場合のwal_sender_timeoutの無効化 #3586

  • 外部クラスターが使用するシークレットのリロード #3565

  • 接続プーラー

    • コントローラーがPooler リソースが所有するすべてのシークレットを監視するように保証#3428.

    • Pooler リソースのRoleBinding の調整#3391.

    • Pooler リソースのimagePullSecret の調整#3389 Reconciliation of16_service Pooler の、必要なラベルの追加#3349.

    • ポッドだけでなく展開へのPooler ラベルの拡張#3350。

変更点

  • デフォルトのオペランドイメージをPostgreSQL 16.1#3270に設定します。

バージョン1.21.1

発売日 2023年11月3日

機能強化

  • 物理的オンラインベースバックアップ用のPostgreSQL APIを使用して、ボリュームスナップショットを使用したオンライン/ホットバックアップのサポートを導入します。特定のPostgresクラスターのホット/コールドバックアップのデフォルト構成は、 online オプションと.spec.backup.volumeSnapshotonlineConfiguration スタンザを介して制御できます。明示的に設定しない限り、ボリュームスナップショットのバックアップはデフォルトでオンラインで取得されるようになりました #3102

  • ScheduledBackup およびBackup リソースを使用して、ボリュームスナップショットバックアップで上記のデフォルト設定をオーバーライドする機能を導入します #3208、#3226

  • ターゲットインスタンススタンバイまたはプライマリがフェンスされる時間枠を削減することにより、ボリュームスナップショットのコールドバックアップを強化します。ボリュームスナップショットがカットおよびプロビジョニングされたらすぐにリフトすることにより、ボリュームスナップショットのコールドバックアップを強化します #3210

  • ボリュームスナップショットからのリカバリー中に、既存のラベルと注釈を検証することにより、提供されたボリュームスナップショットがコヒーレントであることを確認します

  • kubectlcnpg プラグインのbackup コマンドは、 --online--immediate-checkpoint 、および--wait-for-archive ランタイムオプションを介してボリュームスナップショットバックアップエクスペリエンスを向上させます

  • アクティブなストリーミングベースバックアップの進行状況情報を使用して、kubectlcnpg プラグインのstatus コマンドを強化します#3101

  • pgBouncer Pooler リソースを使用したmax_prepared_statements の構成を許可します #3174

修正

  • スイッチオーバー中にWALアーカイブを一時停止し、完了時に再開します #3227

  • PostgreSQLクラスターを管理するときにインスタンスマネージャーが常にsynchronous_commit = local を使用するように保証#3143

  • .spec.certificates.replicationTLSSecret を介したストリーミングレプリケーションユーザーのカスタム証明書が機能するようになりました #3209

  • cnpg.io/cluster ラベルをPooler ポッドに設定します #3153

  • VolumeSnapshots リソースのラベルの数を減らし、より適切なアノテーションにレンダリングします #3151

変更点

  • 1.21.0で導入されたボリュームスナップショットバックアップは、デフォルトでオンライン/ホットになりました。オフライン/コールドバックアップを復元するには、 .spec.backup.volumeSnapshotfalse に設定します

  • Postgresレプリケーション設定を制御するためにPGDATA内のpostgresql.auto.conf ファイルの使用を停止し、override.conf という名前のファイルに置き換えます #2812

技術的な強化

  • インスタンスマネージャーでPostgreSQLの拡張クエリプロトコルを使用する #3152

バージョン1.21.0

発売日 2023年10月12日

注釈

このリリースには、事前定義された値を介して一般的な安定性とセキュリティを向上させることを目的として、CloudNativePGのデフォルト設定へのいくつかの変更が含まれています。以前のバージョンからアップグレードする場合は、以下の「重要な変更」セクションとアップグレードドキュメントを注意深くお読みください。

機能

  • バックアップとリカバリーのボリュームスナップショットのサポート ボリュームスナップショットで標準のKubernetes APIを活用して、バックアップとリカバリー操作の両方でインクリメンタルおよび差分コピーなどの機能を利用します。スタンバイからのコールドバックアップをカバーするこの最初のステップは、1.22でも継続され、PostgreSQL APIとテーブルスペースを使用したホットバックアップのサポートになります。

  • OLMインストール方法 stable チャネルを介して最新のマイナーリリースの最新パッチバージョンのOperatorHub.ioを介してOperator Lifecycle Managerのサポートを導入します。 「EDB Postgres for Kubernetes 」オペレーターのバンドルを寄付し、CloudNativePGに適応させてくださったEDBに感謝します。

重要な変更

  • stopDelay のデフォルト値を30秒ではなく1800秒に変更します #2848

  • Postgresのスマートシャットダウンが完了するために予約された時間枠を制御するためのsmartShutdownTimeout と呼ばれる新しいパラメーターを導入します。 Postgresを停止するまでの全体的なタイムアウトを計算する一般的な式はmax(stopDelay -  smartShutdownTimeout, 30) #2848

  • startDelay のデフォルト値を30秒ではなく3600に変更します #2847

  • livenessProbeの初期遅延をより適切なKubernetes起動プローブに置き換えて、Postgresサーバーの起動に対処する #2847

  • switchoverDelay のデフォルト値を40000000秒ではなく3600秒に変更します #2846

  • セキュリティのためにデフォルトでスーパーユーザーアクセスを無効にする #2905

  • デフォルトでHAのレプリケーションスロットを有効にする #2903

  • postgresql labelのサポートを停止します - 1.18のcnpg.io/cluster に置き換えられました#2744

セキュリティ

  • デフォルトのseccompProfile をオペレーター展開に追加します #2926

機能強化

  • ボリュームスナップショットの一貫したセットからのレプリカクラスターのブートストラップを有効にする #2647

  • 一貫したボリュームスナップショットのセットからの完全なポイントインタイムリカバリーを有効にする #2390

  • cnpg.io/coredumpFilter アノテーションを導入して、PostgreSQLクラッシュが発生した場合に生成されるコアダンプの内容を制御します。デフォルトでは、ダンプから共有メモリセグメントを除外するように設定されています #2733

  • 共有メモリと一時データのエフェメラルボリュームのエフェメラルストレージ制限を構成できます #2830

  • Webhookを介したリソース制限と要求を検証する #2663

  • PostgreSQLのshared_buffers がポッドの割り当てられたメモリリソースとコヒーレントであることを確認します #2840

  • 資格情報シークレットにuri およびjdbc-uri フィールドを追加して、開発者がアプリケーションをデータベースに接続するときに容易にします #2186

  • レプリカの準備が整うのを待機するクラスターの状態をより詳細に制御するための新しいフェーズWaiting for the instances to become active を追加します #2612

  • podSpec アノテーションを介したポッドのロールアウト条件の検出を向上させます #2243

  • プライマリタイムスタンプとアップタイムをkubectlプラグインのstatus コマンドに追加します #2953

修正

  • プライマリロールで準備ができているPVCを優先することにより、プライマリインスタンスが常に最初に再作成されるようにします #2544

  • リカバリー中にcnpg.io/skipEmptyWalArchiveCheck アノテーションを尊重して、空のWALアーカイブのチェックをバイパスします #2731

  • PostgreSQLサーバーはダウンしているが、ポッドがプライマリでアップしているときに、クラスターがスタックするのを防ぐ #2966

  • レプリケーションスロットが有効になっているときに、レプリカクラスターの指定されたプライマリを通常のHAレプリカとして扱わないようにします #2960

  • セレクターが変更されるたび、またはラベル/注釈を変更する必要がある場合にサービスを調整します #2918

  • リカバリブートストラップ中に所有者とデータベースの両方をデフォルトapp に設定する #2957

  • キャッシュされたクラスターでの書き込み-読み取りの同時実行を回避する #2884

  • 空の項目を削除し、一意に作成し、生成されたロールのResourceName セクションでソート #2875

  • エラーが発生した場合に、ContinuousArchiving 条件が適切に’failed’に設定されていることを確認します #2625

  • バックアップが完了または失敗した場合にのみ停止することにより、中断に対するBackup リソース調整サイクルの復元力を高めます #2591

  • PodMonitor labels およびannotations を調整する #2583

  • Role オブジェクトのRBAC resourceNames の欠落によるバックアップ失敗を修正しました #2956

  • 可観測性

    • TCPポートラベルをデフォルトのpg_stat_replication メトリックに追加します #2961

    • プロメテウスのpg_wal_stat デフォルトメトリックを修正します #2569

    • プロメテウスのpg_replication のデフォルトメトリックを改善します #2744および#2750

    • 代わりにedb_traned_13 edb_13を使用します提供されたGrafanaダッシュボード

    • メトリック収集でstandard_conforming_strings を適用する #2888

変更点

  • デフォルトのオペランドイメージをPostgreSQL 16.0に設定します

  • フェンシングは、スマートシャットダウンの代わりにPostgreSQLの高速シャットダウンを使用してインスタンスを停止するようになりました #3051

  • Webhookの名前をkb.ioからcnpg.ioグループに変更します #2851

  • kubectl プラグインのcnpg snapshot コマンドをcnpg backup -m volumeSnapshot に置き換えます

  • cnpg hibernate プラグインコマンドでPVCのClusterManifestAnnotationName およびPgControldataAnnotationName アノテーションを使用させましょう #2657

  • cnpg.io/instanceRole ラベルを追加しますが、既存のrole ラベルを非推奨にします #2915

技術的な強化

  • APIリファレンスドキュメントを自動的にビルドするようにk8s-api-docgengen-crd-api-reference-docs に置き換えます #2606