CloudNativePG 1.16のリリースノート¶
CloudNativePGの1.16マイナーリリースにおけるユーザーに見える変更の履歴。
変更の完全なリストについては、 commits を参照してください
GitHubのリリースブランチで。
バージョン1.16.5¶
発売日: 2022年12月21日
警告
バージョン1.16はサポート終了(EOL)になりました。バージョン1.16.5は、1.16マイナーバージョンでリリースされる最後です。
重要なお知らせ:
Armando Ruocco(@armru)を一貫してインパクトのある貢献により、新しいCloudNativePGメンテナーとして表彰(#1167)
ARMv7サポートを削除 (#1092)
1.16の最終パッチリリース:1.16.5。リリース1.16はサポート終了に達します。
機能強化:
kubectl-cnpgプラグインのrpm/debパッケージを追加 (#1008)
新しいクラスター定義のデフォルトのPostgreSQLバージョンを15.1に更新 (#908)
ドキュメント - CNPGサンドボックスへの参照を削除 (#1120) - CNPGサンドボックスは非推奨になりました。クイックスタートドキュメントでのモニタリングに関する指示を優先します - “Release updates”ディスカッションへのリンク (#1148)リリースのお知らせと議論のためのデフォルトチャネル - メンテナーの名誉ステータスをGOVERNANCE.mdに文書化する (#1033) - メンテナーがコントリビュートを継続する準備ができていない場合にどのように進むべきかを説明 - プルリクエストの作成手順を改善 (#1132) - 緊急時のトラブルシューティング・バックアップ指示 (#1184)
修正:
ブートストラップのPGDATAパーミッションが750に適切に設定されていることを確認 (#1164)
見つからない場合にのみシークレットとサービスを作成するように (#1145)
復元時に設定されたpg-walを尊重する (#1216)
nodeToClustersマップからレプリカを除外 (#1194)
技術的な機能強化:
テストの概要に
ciclopsを使用します(#1064):ciclops GitHubアクションに依存して、そのプロジェクトから改善を継承し、E2Eスイートの概要を提供しますバックポートプルリクエストワークフローを追加 (#965) - パッチがそのように注釈されている場合、リリースブランチに自動的にパッチをバックポート
e2eテストスイートでオペレーターログレベルを設定可能に (#1094)
ラベルに基づいたテスト実行を有効にする (#951)
Goバージョンを1.18から1.19に更新 (#1166)
バージョン1.16.4¶
リリース日: 2022年11月10日
セキュリティ:
SeccomProfileをPodとContainersに追加 (#888)
機能強化:
cnpgプラグインのstatusコマンド: - fencedクラスターの表示を明確化 (#886) - レプリカクラスターの表示を改善 (#871)ドキュメント: - モニタリングページを改善し、PrometheusとGrafanaを使用してローカルシステムでCloudNativePGの可観測性機能を評価する方法に関する指示を提供します (#968)
修正:
plpgsql関数でデータベースをインポートする (#974)ポイントインタイムリカバリを行うときに最も近いバックアップを適切に見つけます (#949)
ScheduledBackupフォーマットがKubernetesCronJobフォーマットに従わないことを明確化 (#883)フェイルオーバーロジックを、古い可能性のあるKubernetesポッドの準備ではなく、インスタンスマネージャーからのPostgres情報に基づいてください (#890)
新しく作成されたクラスターごとにアーカイブするWALがあることを確認します。・不足により、バックアップが機能しない可能性がある (#897)
ドキュメントの
barmanObjectStoreのYAMLキー名を修正 (#877)krewリリースを修正 (#866)
バージョン1.16.3¶
リリース日: 2022年10月6日
機能強化:
コントローラーマネージャーに
leaseDurationおよびrenewDeadlineパラメーターを導入し、オペレーター展開でのリーダー選挙の構成を強化 (#759)WALファイルを初めてアーカイブする前に、バックアップオブジェクトストアが空であることをチェックするメカニズムを改善します。正常にアーカイブされました
セキュリティ:
nonroot:nonrootユーザーを使用して、distroless/static:nonrootコンテナイメージにコピーされるインスタンスマネージャーバイナリの権限を明示的に設定する (#754)
修正:
プライマリに昇格した後、スタンバイ上のアクティブな接続をドロップする (#737)
ネイティブPrometheusエクスポーターでMAPPEDMETRICとDURATIONのメトリックタイプ変換を尊重する (#765)
バージョン1.16.2¶
リリース日: 2022年9月6日
機能強化:
PgBouncer接続プーラー実装で低レベルネットワークTCP設定の構成を有効にする (#584)
cnpg.io/instanceNameおよびcnpg.io/podRoleラベルがポッドとPVCに常に存在することを確認してください (#632および#680)インスタンスの
roleラベルを基になるPVCに伝播 (#634)
修正:
新しいクラスターのプライマリをブートストラップするときに
shared_preload_librariesを使用する (#642)別のプロセスが進行中かどうかをアトミックにチェックすることにより、オペレーターの複数のインプレースアップグレードプロセスが同時に実行されるのを防ぎます (#655)
ハードコードされたファイル名を使用して、新しくアップロードされたインスタンスマネージャーを保存しないでください。オペレーターのオンラインアップグレード中に発生する可能性のある競合状態を防止します (#660)
GetAllAccessibleDatabases呼び出し時にパニックが発生するのを防止 (#641)
バージョン1.16.1¶
リリース日: 2022年8月12日
機能強化:
PostgreSQLの
huge_pagesオプションの設定を有効にする (#456)フェイルオーバーまたはスイッチオーバー後、昇格の要求と実際の書き込み可用性の間の経過時間を出力することにより、昇格および降格中のログを強化します (#371)
クラスターステータスにPostgreSQLクラスターのタイムラインを導入 (#462)
ジョブ、ポッド、PVCに
instanceNameおよびclusterNameラベルを追加して、これらのリソースとの相互作用を改善 (#534)PostGISクラスターを作成する方法の説明を追加 (#570)
セキュリティ:
securityContextをPoolerデプロイメントに明示的に割り当てる (#485)Slowloris DDoSを防ぐために、内部Webサーバーに読み取りタイムアウト値を追加 (#437)
修正:
リスタート(
stopDelay)およびスイッチオーバー(switchoverDelay)に正しい遅延を使用します。以前に誤ってスワップされたため。switchoverDelayが設定されておらず、デフォルト値40000000秒を使用している場合、無期限にリスタートをブロックする可能性があるため、これは重要な修正です (#531)クエリがエラーを返したときに、メトリックコレクターがパニックを引き起こさないように (#396)
チェックされていないポインタを参照していた安全でないデバッグメッセージを削除し、ログレベルに関係なくセグメンテーションフォールトを引き起こす場合がある (#491)
クラスターにアノテーションがない場合のフェンシング時のパニックを防止 (#512)
TLS証明書が変更されていない場合、CRDの更新を避ける (#501)
CRDに証明書を挿入する際の競合を処理する (#547)
データベースインポート: - データベースインポートで
pg_restoreを実行中にpostgresユーザーを使用します(#411) - オリジン外部サーバーとのSSL接続を制御するためにモノリスインポートケースでsslmodeを明示的に設定する要件を文書化(#572)・connectionParametersでdbnameが指定された場合の作業からのインポート (#569)バックアップとリカバリ: - Google Cloudでオブジェクトストアの資格情報を正しく渡すように (#454)
マイナーな変更:
デフォルトのオペランドイメージをPostgreSQL 15.0に設定します
バージョン1.16.0¶
リリース日: 2022年7月7日(マイナーリリース)
特徴:
PostgreSQLのオフラインデータインポートとメジャーアップグレード:
bootstrap.initdb.importセクションを導入し、PostgreSQL論理バックアップの概念を使用して、新しいCloudNativePGクラスター内の既存のPostgreSQLインスタンス(Kubernetesの外部でも)からネットワークを介してオブジェクトをインポートする方法を提供します(pg_dump/pg_restore)。同じ方法を使用して、新しいクラスターでPostgreSQLのメジャーアップグレードを実行できます。この機能では、microservice(1つのデータベースのみを新しいクラスターにインポート)とmonolith(選択したデータベースとロールを既存のインスタンスからインポート)の2種類のインポートが導入されました。ラベルに基づく同期レプリケーションの非アフィニティルール:同期レプリカが、可用性ゾーンなど、プライマリが実行されているノードとは異なる特性のノードで実行されていることを確認します
機能強化:
1つ以上のインスタンスがフェンスされたときにフェイルオーバーを無効にする既存の制限を削除することにより、フェンシングを改善します
DROP EXTENSION IF EXISTSを不必要に実行する代わりに、拡張機能がカタログに存在するかどうかを確認することにより、自動拡張機能管理フレームワークを強化しますスイッチオーバーおよびフェイルオーバー中のインスタンスマネージャーのロギングを改善
オブジェクトストアから回復するとき、または
pg_basebackupを介してインスタンスをクローニングするときに、アプリケーションのデータベース、その所有者、および関連するシークレットの名前の再定義を有効にします(これは、これまでのところinitdbブートストラップでのみ可能でした)バックアップとリカバリ: - PostgreSQL 15の将来のサポートにはBarman >= 3.0.0が必要 -
inheritFromAzureADオプションを介してBarman CloudバックアップのAzure AD Workload Identityを有効にしますオブジェクトストアKubernetes 1.24のサポート
変更点:
デフォルトのオペランドイメージをPostgreSQL 15.0に設定します
バックアップとWALアーカイブの独自の実装に依存する代わりに、Kubernetes APIの条件を使用します
修正:
PostgreSQLサーバーのCSVログパイプを開始する
WithActiveInstance関数内の初期化順序を修正し、クラスター初期化フェーズで適切なロギングを保証します-これは、バックアップからのリカバリなどのブートストラップ操作が失敗した場合に特に役立ちます(このパッチの前、このようなログ標準出力チャネルに送信されず、永久に失われました)ホットスタンバイに敏感なパラメーターが減少し、プライマリが既に再起動している場合の不要なスイッチオーバーを回避します
ALTER ROLEステートメントでロール名を適切に引用しますバックアップとリカバリ: - PITRの最も近いBarmanバックアップを検出するアルゴリズムを修正します。これは、要求されたリカバリタイムスタンプを終了ではなくバックアップの開始と比較していました。
recoveryTargetセクションにbackupIDと呼ばれる新しいフィールドを提供することにより、「イミディエイト」ターゲット-barman-cloud-wal-archiveおよびbarman-cloud-backupコマンドを呼び出す暗号化パラメーターを修正します-現在のクラスター名と一致しないサーバー名を使用してバックアップオブジェクトストアから回復するときにbarmanObjectStore.serverNameオプションの無視を停止しますcnpgプラグイン: - ユーザーが指定したときにプラグインが-nパラメーターに準拠していることを確認します -statusコマンドを修正して結果をソートし、出力のばらつきを削除します