Release notes for CloudNativePG 1.21
CloudNativePGの1.21マイナーリリースのユーザーに表示される変更の履歴。
変更の完全なリストについては、 commits を参照してください。
GitHubのリリースブランチで。
バージョン1.21.6
発売日 2024年6月12日
警告
これは、1.21.Xシリーズの最後のリリースになる予定です。ユーザーは、すぐに新しいマイナーバージョンに更新することをお勧めします。
機能強化
物理バックアップを使用したリカバリー中のスタンバイ依存パラメーターの構成を有効にしました #4564
.spec.livenessProbeTimeoutオプションを介したlivenessプローブタイムアウトの構成を有効にしました #4719kubectl:の
cnpgプラグイン--colorオプションを追加することにより、プラグインでのANSIカラーのサポートを強化しました。これは、always、never、およびautoデフォルトを受け入れます。#4775macOSユーザーのHomebrewでプラグインが利用できるようになりました。 #4602)
修正
フェンスされたインスタンスが不要なループに入り、使用可能なすべてのCPUを消費するのを防ぎました #4625
プライマリのインスタンスマネージャーが、停止操作に続いて障害が発生した後、インスタンスが起動するのを無期限に待機する問題を解決しました #4434
hot_standby_feedbackと管理対象クラスターレベルのレプリケーションスロット間の相互作用により、自動バキュームが正しく動作しない問題を修正しました。この問題は、ディスク領域がデッドタプルによって占有されたままになっている原因でした #4811ポッドコンテナのステータスが欠落しているときに発生したバックアップコントローラのパニックを修正しました #4765
インスタンスマネージャーの不要なシャットダウンを防止 #4670
PostgreSQL構成が変更されない場合の不必要なリロードを防止#4531
コンテンツを書き込む一貫した一意の方法を保証することにより、identマップの不必要なリロードを防止しました #4648
リソースのステータスを更新する代わりにパッチを適用することにより、フェーズ登録中の競合を回避しました #4637
PostgreSQLを再起動し、フェンシングをリフティングするときにタイムアウトを実装しました #4504
アーカイブモードを適切に設定するための昇格後にレプリカクラスターが再起動されるようにした #4399
ボリュームスナップショットバックアップでランダムな障害を引き起こしていた不要なコンカレントキープアライブルーチンを削除しました #4768
pgaudit.log_rowsオプションが有効になっているときに返される追加行フィールドの正しい解析を保証し、監査ログが通常のログストリームに誤ってルーティングされるのを防ぎます #4394kubectl用のcnpgプラグインcnpg statusコマンドを使用したPDBのリストに関する問題を解決しました #4530
変更
デフォルトのオペランドイメージをPostgreSQL 16.3に設定した#4584
名前空間オブジェクトのすべてのRBAC要件を削除しました #4753
バージョン1.21.5
発売日 2024年4月24日
機能強化
ユーザーは
wal_log_hintsPostgreSQLパラメーターを構成できるようになりました #4218 #4218自動的に生成されたシークレットのURIの完全修飾ドメイン名FQDN #4095
クラスターの復元中にクラスターが所有していないインスタンスポッドのクリーンアップ #4141
recoveryブートストラップでbarman-cloud-wal-restoreを呼び出す際のエラー検出 #4101
修正
スイッチオーバーの前に、選択されたレプリカがストリーミングレプリケーションにあることを確認しました #4288
インスタンスのLSNをソートするときにその解析エラーを正しく処理する #4283
昇格できる正常なスタンバイがない場合は、プライマリポッドを再作成します #4132
リストアジョブが失敗した場合の
PGDATAのクリーンアップ #4151構成の更新時に証明書をリロードします #3705
kubectlのcnpgプラグインdestroy、fencing、およびpromoteプラグインコマンドの引数処理を改善します#4280cnpg statusのバックアップの進行状況のパーセンテージを正しく処理します#413113b_tranにシーケンスのないデータベース
#4346)
変更点
Grafanaダッシュボードは次の場所にあります。 https://github.com/cloudnative-pg/grafana-dashboards #4154
バージョン1.21.4
発売日 2024年3月14日
機能強化
PostgreSQLで
wal_levelGUCのカスタマイズを許可する #4020cnpg.io/skipWalArchivingアノテーションを追加して、enabledに設定されている場合にWALアーカイブを無効にします #4055publicationおよびsubscriptionコマンドグループでkubectlのcnpgプラグインを強化して、PostgreSQLネイティブ論理レプリケーションを強制的にセットアップする #4052オペレーターによって処理されるTLS証明書の自動管理のために
CERTIFICATE_DURATIONおよびEXPIRING_CHECK_THRESHOLDのカスタマイズを許可します #3686kubectlのcnpgプラグインを使用したタブ補完の初期サポートを導入します #3875インプレース更新中に、実行中のオペレーターイメージの対応するカタログから正しいアーキテクチャのバイナリを取得し、オペレーターがサポートされているアーキテクチャを備えたポッドに正しいバイナリを注入できるようにします #3840
修正
PVCグループラベルをポッド上のラベルと適切に同期します。すべてのポッドが削除され、オペレーターが最初にどのポッドを再作成するかを決定する必要がある場合に重要な側面 #3930
レプリカのクローンを作成するときに
wal_sender_timeoutを無効にして、接続が遅いことによるタイムアウトエラーを防ぐ #4080リカバリブートストラップ手順を開始する前にボリュームスナップショットの準備ができていることを確認し、不完全なバックアップによるリカバリがエラーループに入るエラー状態を防止します #3663
管理対象ロールで接続制限の設定を解除するときのエラーループの防止 #3832
インスタンスポッドは削除されたが、クラスターステータスのハイバーネーション状態条件がfalseに設定されたままである、ハイバーネーションのコーナーケースを解決します #3970
Barman CloudのGoogle Cloud機能を正しく検出する #3931
セキュリティ
OLMのオペレーター権限に
ClusterRoleの代わりにRoleを使用し、名前空間ごとにインストールするときに必要な特権が少なくなります #3855、#3990PgBouncerプーラーのSQLクエリーで完全修飾オブジェクト名を適用する #4080
変更
Kubernetesの推奨事項に従って、マニフェストのクライアントサイドからサーバーサイドのアプリケーションに切り替えます。オペレーター#3729のインストール時に、デフォルトで
--server-sideオプションが必要です。デフォルトのオペランドイメージをPostgreSQL 16.2#3823に設定します。
バージョン1.21.3
発売日 2024年2月2日
機能強化
ephemeralVolumeSourceオプションからクレームテンプレートを使用して、Postgresクラスターの一時ボリュームストレージを調整する #3678kubectlのcnpgプラグインにpgadmin4コマンドを導入し、特定のデータベースクラスターへの接続をデモンストレーションし、種類などのローカル環境でそのコンテンツをナビゲートする簡単な方法を提供します - 評価目的のみ #3701ユーザー名マップのリストを介して、
.spec.postgresql.pg_identスタンザを介してPostgreSQLのidentマップファイルのカスタマイズを許可します #3534
修正
ALTER SYSTEMSQLコマンドが無効になっているクラスターでpostgresql.auto.confが読み取り専用であるため、pg_rewindが失敗するという回復不能な問題を防ぐ - デフォルト #3728インポートプロセス中にPostgreSQLインスタンスの耐久性設定を無効にすることにより、
initdbブートストラップ方法のインポート機能を使用する際のディスク領域不足のリスクを削減します。 #3743誤ったリソース量の比較によるポッドの再起動を回避します。 “1 != 1000m” #3706
pgpass接続フィールドの予約文字を適切にエスケープする #3713.spec.projectedVolumeTemplate.sourcesでゼロとnilの異なる値を考慮することにより、ポッドの体系的なロールアウトを防止 #3647override.confに組み込まれたオプションをpostgresql.auto.confからプルーニングすることにより、構成の一貫性を確保します #3773
バージョン1.21.2
発売日 2023年12月21日
セキュリティ
デフォルトでは、TLSv1.3はすべてのPostgreSQL 12以降のインストールに適用されます。さらに、ユーザーは
ssl_ciphers、ssl_min_protocol_version、およびssl_max_protocol_versionGUC#3408を構成できます。セキュリティ対策を強化するためのDockerイメージスキャンのDockleおよびSnykの統合 #3300
機能強化
外部クラスターのリコンシリエーションの向上#3533
ALTER SYSTEMコマンドを有効/無効にする機能の導入 #3535ClusterおよびPoolerリソースの.spec.monitoringスタンザのpodMonitorMetricRelabelingsおよびpodMonitorRelabelingsオプションを介したPrometheusの動的なリラベル付けのサポート #3075オブジェクトストアバックアップ#2940とともにボリュームスナップショットを考慮することにより、最初の復旧可能ポイントと最後に成功したバックアップの計算を強化しました。
PostgreSQLへのネットワーク接続を確立する際の
PGPASSFILE環境変数の使用を削除 #3522クラスターのPVCを収集することにより
cnpg reportプラグインコマンドを改善しました #3357cnpg statusプラグインコマンドの強化、アラートを含む管理対象ロールに関する情報を提供します #3310OLM展開に適した、オペレーター用のRed Hat UBI 8コンテナイメージの導入。
接続プーラー
Poolerリソースのインスタンスを0にスケールダウンすることが可能になりました#3517.値が’pooler’である
cnpg.io/podRoleラベルをすべてのプーラー展開に追加し、インスタンスポッドと区別します #3396
修正
PodDisruptionBudgetリソース#3312および#3434のメタデータ、アノテーション、およびラベルの調整。管理対象資格情報シークレットのメタデータの調整 #3316
本文の読み取りエラーが全体的なエラーとして処理され、バックアッププロセスが無期限にスタックしたままになるバックアップスナップショットコードのバグの解決#3321。
immediate-checkpointまたはwait-for-archiveオプションが要求された場合のcnpg backupプラグインコマンドを使用したオンラインバックアップの暗黙的な設定#3449pg_basebackupを介して参加する場合のwal_sender_timeoutの無効化 #3586
外部クラスターが使用するシークレットのリロード #3565
接続プーラー
コントローラーが
Poolerリソースが所有するすべてのシークレットを監視するように保証#3428.PoolerリソースのRoleBindingの調整#3391.PoolerリソースのimagePullSecretの調整#3389 Reconciliation of16_servicePoolerの、必要なラベルの追加#3349.ポッドだけでなく展開への
Poolerラベルの拡張#3350。
変更点
デフォルトのオペランドイメージをPostgreSQL 16.1#3270に設定します。
バージョン1.21.1
発売日 2023年11月3日
機能強化
物理的オンラインベースバックアップ用のPostgreSQL APIを使用して、ボリュームスナップショットを使用したオンライン/ホットバックアップのサポートを導入します。特定のPostgresクラスターのホット/コールドバックアップのデフォルト構成は、
onlineオプションと.spec.backup.volumeSnapshotのonlineConfigurationスタンザを介して制御できます。明示的に設定しない限り、ボリュームスナップショットのバックアップはデフォルトでオンラインで取得されるようになりました #3102ScheduledBackupおよびBackupリソースを使用して、ボリュームスナップショットバックアップで上記のデフォルト設定をオーバーライドする機能を導入します #3208、#3226ターゲットインスタンススタンバイまたはプライマリがフェンスされる時間枠を削減することにより、ボリュームスナップショットのコールドバックアップを強化します。ボリュームスナップショットがカットおよびプロビジョニングされたらすぐにリフトすることにより、ボリュームスナップショットのコールドバックアップを強化します #3210
ボリュームスナップショットからのリカバリー中に、既存のラベルと注釈を検証することにより、提供されたボリュームスナップショットがコヒーレントであることを確認します
kubectlのcnpgプラグインのbackupコマンドは、--online、--immediate-checkpoint、および--wait-for-archiveランタイムオプションを介してボリュームスナップショットバックアップエクスペリエンスを向上させますアクティブなストリーミングベースバックアップの進行状況情報を使用して、
kubectlのcnpgプラグインのstatusコマンドを強化します#3101pgBouncer
Poolerリソースを使用したmax_prepared_statementsの構成を許可します #3174
修正
スイッチオーバー中にWALアーカイブを一時停止し、完了時に再開します #3227
PostgreSQLクラスターを管理するときにインスタンスマネージャーが常に
synchronous_commit = localを使用するように保証#3143.spec.certificates.replicationTLSSecretを介したストリーミングレプリケーションユーザーのカスタム証明書が機能するようになりました #3209cnpg.io/clusterラベルをPoolerポッドに設定します #3153VolumeSnapshotsリソースのラベルの数を減らし、より適切なアノテーションにレンダリングします #3151
変更点
1.21.0で導入されたボリュームスナップショットバックアップは、デフォルトでオンライン/ホットになりました。オフライン/コールドバックアップを復元するには、
.spec.backup.volumeSnapshotをfalseに設定します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秒に変更します #2848Postgresのスマートシャットダウンが完了するために予約された時間枠を制御するための
smartShutdownTimeoutと呼ばれる新しいパラメーターを導入します。 Postgresを停止するまでの全体的なタイムアウトを計算する一般的な式はmax(stopDelay - smartShutdownTimeout, 30)#2848startDelayのデフォルト値を30秒ではなく3600に変更します #2847livenessProbeの初期遅延をより適切なKubernetes起動プローブに置き換えて、Postgresサーバーの起動に対処する #2847
switchoverDelayのデフォルト値を40000000秒ではなく3600秒に変更します #2846セキュリティのためにデフォルトでスーパーユーザーアクセスを無効にする #2905
デフォルトでHAのレプリケーションスロットを有効にする #2903
postgresqllabelのサポートを停止します - 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を追加します #2612podSpecアノテーションを介したポッドのロールアウト条件の検出を向上させます #2243プライマリタイムスタンプとアップタイムをkubectlプラグインの
statusコマンドに追加します #2953
修正
プライマリロールで準備ができているPVCを優先することにより、プライマリインスタンスが常に最初に再作成されるようにします #2544
リカバリー中に
cnpg.io/skipEmptyWalArchiveCheckアノテーションを尊重して、空のWALアーカイブのチェックをバイパスします #2731PostgreSQLサーバーはダウンしているが、ポッドがプライマリでアップしているときに、クラスターがスタックするのを防ぐ #2966
レプリケーションスロットが有効になっているときに、レプリカクラスターの指定されたプライマリを通常のHAレプリカとして扱わないようにします #2960
セレクターが変更されるたび、またはラベル/注釈を変更する必要がある場合にサービスを調整します #2918
リカバリブートストラップ中に所有者とデータベースの両方をデフォルト
appに設定する #2957キャッシュされたクラスターでの書き込み-読み取りの同時実行を回避する #2884
空の項目を削除し、一意に作成し、生成されたロールの
ResourceNameセクションでソート #2875エラーが発生した場合に、
ContinuousArchiving条件が適切に’failed’に設定されていることを確認します #2625バックアップが完了または失敗した場合にのみ停止することにより、中断に対する
Backupリソース調整サイクルの復元力を高めます #2591PodMonitor
labelsおよびannotationsを調整する #2583RoleオブジェクトのRBACresourceNamesの欠落によるバックアップ失敗を修正しました #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アノテーションを使用させましょう #2657cnpg.io/instanceRoleラベルを追加しますが、既存のroleラベルを非推奨にします #2915
技術的な強化
APIリファレンスドキュメントを自動的にビルドするように
k8s-api-docgenをgen-crd-api-reference-docsに置き換えます #2606