CloudNativePG 1.16のリリースノート

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

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

バージョン1.16.4

リリース日: 2022年11月10日

セキュリティ:

  • SeccomProfile をポッドとコンテナに追加 (#888)

機能強化:

  • cnpg プラグインのstatus コマンド: - fencedクラスターの表示を明確化 (#886) - レプリカクラスターの表示を改善 (#871)

  • ドキュメント: - PrometheusとGrafanaを使用してローカルシステムでCloudNativePGの可観測性機能を評価する方法に関する指示を提供するモニタリングページを改善 (#968)

修正:

  • plpgsql ファンクションでデータベースをインポート (#974)

  • ポイントインタイムリカバリを行うときに最も近いバックアップを適切に見つけます (#949)

  • ScheduledBackup フォーマットがKubernetesのCronJob フォーマットに従っていないことを明確化 (#883)

  • フェイルオーバーロジックを、古い可能性のあるKubernetes Podの準備ではなく、インスタンスマネージャーからのPostgres情報に基づいてください (#890)

  • 新しく作成されたクラスターごとにアーカイブするWALがあることを確認します。・不足するとバックアップが機能しない可能性がある (#897)

  • ドキュメントのbarmanObjectStore のYAMLキー名を修正 (#877)

  • krew リリースを修正 (#866)

バージョン1.16.3

リリース日: 2022年10月6日

機能強化:

  • コントローラーマネージャーにleaseDuration およびrenewDeadline パラメーターを導入して、オペレーター展開でのリーダー選挙の構成を強化 (#759)

  • WALファイルを初めてアーカイブする前にバックアップオブジェクトストアが空であることを確認するメカニズムを改善します。.check-empty-wal-archive という新しいファイルは、クラスターがブートストラップされた直後にPGDATA に配置され、最初の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 ラベルが常にPodと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)・connectionParameters でdbname が指定された場合の作業からのインポート (#569)

  • バックアップとリカバリ: - Google Cloudでオブジェクトストアの資格情報を正しく渡すように (#454)

マイナーな変更:

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

バージョン1.16.0

リリース日: 2022年7月7日(マイナーリリース)

特徴:

  • PostgreSQLのオフラインデータインポートとメジャーアップグレード: bootstrap.initdb.import セクションを導入して、PostgreSQL論理バックアップの概念を使用して、既存の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 という新しいフィールドを提供することによる「イミディエイト」ターゲット

  • cnpg プラグイン: - ユーザーが指定したときにプラグインが-n パラメーターに準拠していることを確認します - status コマンドを修正して、出力のばらつきを削除します