CloudNativePG 1.15 のリリース ノート

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

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

GitHub のリリース ブランチにあります。

警告

バージョン 1.15 はサポート終了 (EOL) になりました。バージョン 1.15.5 は、1.15 マイナー バージョン用にリリースされる最後のバージョンです。

バージョン 1.15.5

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

機能強化:

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

  • 初めて WAL ファイルをアーカイブする前に、バックアップ オブジェクト ストアが空であることをチェックするメカニズムを改善します。クラスタがブートストラップされた直後に .check-empty-wal-archive という新しいファイルが PGDATA に配置され、最初の WAL ファイルが実行された後に削除されます。正常にアーカイブされました

安全:

  • nonroot:nonroot ユーザーを使用して、distroless/static:nonroot コンテナー イメージにコピーされたインスタンス マネージャー バイナリのアクセス許可を明示的に設定 (#754)

修正:

  • クラスターの条件を metav1.Conditions 構造体と互換性を持たせる (#720)

  • スタンバイがプライマリに昇格した後、アクティブな接続をドロップします (#737)

  • ネイティブの Prometheus エクスポーターで MAPPEDMETRIC および DURATION メトリック タイプの変換を尊重する (#765)

バージョン 1.15.4

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

機能強化:

  • PgBouncer 接続プーラーの実装で低レベルのネットワーク TCP 設定の構成を有効にします (#584)

  • cnpg.io/instanceName および cnpg.io/podRole ラベルがポッドおよび PVC に常に存在することを確認します (#632 および #680)

  • インスタンスの role ラベルを基礎となる PVC に伝播 (#634)

修正:

  • オペレーターの複数のインプレース アップグレード プロセスが同時に実行されないようにするには、別のプロセスが進行中かどうかをアトミックにチェックします (#655)。

  • 新しくアップロードされたインスタンス マネージャーを格納するためにハードコードされたファイル名を使用しないようにし、オペレーターのオンライン アップグレード中に競合状態が発生するのを防ぎます (#660)

  • GetAllAccessibleDatabases の呼び出し時にパニックが発生しないように (#641)

バージョン 1.15.3

リリース日: 2022 年 8 月 12 日

機能強化:

  • PostgreSQLのhuge_pages オプションの設定を有効化 (#456)

  • フェイルオーバーまたはスイッチオーバー後の昇格および降格中のログを強化し、昇格のリクエストから実際に書き込みが可能になるまでの経過時間を出力する (#371)

  • ジョブ、ポッド、および PVC に instanceName および clusterName ラベルを追加して、これらのリソースとの相互作用を改善 (#534)

  • PostGIS クラスターの作成方法に関する説明を追加 (#570)

安全:

  • securityContext を Pooler デプロイメントに明示的に割り当てる (#485)

  • 内部 Web サーバーに読み取りタイムアウト値を追加して、Slowloris DDoS を防止 (#437)

修正:

  • 再起動 (stopDelay ) と切り替え (switchoverDelay ) に正しい遅延を使用します。これは、以前に誤って交換されたためです。 switchoverDelay が設定されておらず、デフォルト値の 40000000 秒を使用している場合、再起動が無期限にブロックされる可能性があるため、これは重要な修正です (#531)

  • クエリがエラーを返したときにメトリクス コレクターがパニックを引き起こさないようにする (#396)

  • 場合によってはログ レベルに関係なくセグメンテーション違反につながる、未チェックのポインターを参照していた安全でないデバッグ メッセージを削除 (#491)

  • クラスターにアノテーションがない場合のフェンシング時のパニックを防止 (#512)

  • TLS 証明書が変更されていない場合、CRD の更新を回避 (#501)

  • CRD に証明書を挿入する際の競合の処理 (#547)

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

マイナーな変更:

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

バージョン 1.15.2

リリース日: 2022 年 7 月 7 日 (パッチ リリース)

機能強化:

  • スイッチオーバーおよびフェイルオーバー中のインスタンス マネージャーのロギングを改善

  • バックアップとリカバリで PostgreSQL 15 を今後サポートするには、 Barman >= 3.0.0 が必要です

変更点:

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

修正:

  • PostgreSQL サーバーの CSV ログ パイプを開始する WithActiveInstance 関数内の初期化順序を修正し、クラスターの初期化フェーズで適切なログを確保します - これは、バックアップからの回復などのブートストラップ操作で特に役立ちます (このパッチの前に、そのようなログ標準出力チャネルに送信されず、永久に失われました)

  • ホット スタンバイの機密パラメータが減少し、プライマリがすでに再起動されている場合に、不要なスイッチオーバーを回避する

  • ALTER ROLE ステートメントでロール名を適切に引用する

  • バックアップとリカバリ: - PITR の最も近いBarmanバックアップを検出するアルゴリズムを修正します。これは、要求されたリカバリ タイムスタンプをバックアップの終了ではなく開始と比較していました。 - トランザクション ID、名前付きの復元ポイント、またはrecoveryTarget セクションに backupID と呼ばれる新しいフィールドを提供することによる「即時」ターゲット - barman-cloud-wal-archive および barman-cloud-backup コマンドを呼び出す暗号化パラメーターを修正 - 現在のクラスター名と一致しないサーバー名を使用してバックアップ オブジェクト ストアから復元するときに barmanObjectStore.serverName オプションを無視しないようにする

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

バージョン 1.15.1

リリース日: 2022 年 5 月 27 日 (パッチ リリース)

マイナーな変更:

  • 以前は固定パラメーターであった PostgreSQL の archive_timeout 設定の構成を有効にします (デフォルトでは 5 分に設定されています)。

  • scheduledBackup リソースに backupOwnerReference という新しいフィールドを導入して、作成されたバックアップ リソースの所有権参照を設定します。可能な値は、none (デフォルト)、self (スケジュールされたバックアップ オブジェクトによって所有されるオブジェクト)、および cluster (Postgres クラスターによって所有される) です。物体)

  • ネイティブ Prometheus エクスポーターで PostgreSQL 14 以降の pg_stat_wal メトリックの自動収集を導入

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

修正:

  • postgres に関連する孤立したプロセスを強制終了してフェンシングを修正

  • WithActiveInstance 関数内の CSV ログ パイプを有効にして、リカバリ ブートストラップ ジョブからログを収集し、トラブルシューティング フェーズに役立てます。

  • 空でないバックアップ オブジェクト ストアを使用して新しいクラスターをブートストラップすることを防止し、既存のバックアップを上書きするリスクを排除します。

  • recovery ブートストラップ メソッドでは、既存のバックアップを上書きしないように、復旧オブジェクト ストアとバックアップ オブジェクト ストアが異なることを確認してください。

  • バックアップ用の RBAC がまだ作成されていない場合は、調整ループを再度キューに入れます。

  • バックアップの問題と、クラスター名プロパティの間違った指定を修正

  • 複数のレプリカを使用して高可用性でオペレーターをデプロイする場合、オペレーター ポッドが常に最新の証明書を保持するようにします。

  • cnpg report operator コマンドを修正して、複数のレプリカを使用して高可用性でオペレーターをデプロイする場合を正しく処理するようにします。

  • 再起動を必要とせずに、クラスターの inheritedMetadata セットのラベルと注釈の変更をクラスターの関連リソースに適切に伝達する

  • cnpg プラグインを修正して、デフォルト値だけに依存するのではなく、オペレーターのデプロイで定義されたカスタム configmap とシークレット名を正しく解析します。

  • mkdocs の minidocks/mkdocs イメージを使用して、ドキュメントのローカル ビルドを修正します。

バージョン 1.15.0

リリース日: 2022 年 4 月 21 日

特徴:

  • フェンシング: cnpg.io/fencedInstances アノテーションを介してクラスターまたは特定の PostgreSQL インスタンスのセットにフェンシング機能を導入します。これは、空でない場合、クラスター内のスイッチオーバー/フェイルオーバーを無効にします。フェンシングされたインスタンスはシャットダウンされ、Pod は検査と緊急事態のために (準備ができていないと見なされている間) 実行され続けます

  • LDAP認証: pg_hba.conf の LDAP Simple Bind および Search+Bind 構成オプションを Postgres クラスター仕様で宣言的に定義できるようにし、ldapbindpasswd などの機密オプションに Kubernetes シークレットをオプションで使用できるようにします。

  • 監視されていない primaryUpdateStrategy の場合に使用される switchover (デフォルト) および restart の値を受け入れる primaryUpdateMethod オプションの導入。このメソッドは、ローリング更新手順中にプライマリ インスタンスに何が起こるかを制御します

  • kubectl cnp プラグインの新しい report コマンドにより、オペレーターと特定の Postgres クラスターの両方のより良い診断とより効果的なトラブルシューティングが可能

  • バックアップ オブジェクト ストアに存在しなくなった Backup オブジェクトを削除する

  • ポイントインタイム リカバリ ブートストラップ方式でのターゲット タイムラインと LSN の指定

  • sessionToken オプションによる AWS S3 での AWS_SESSION_TOKEN 認証トークンのサポート

  • quay.io/enterprisedb/pgbouncer:1.17.0 に設定された Pooler ポッドの PgBouncer のデフォルトのイメージ名

修正:

  • targetTime を介したポイントインタイム リカバリのベース バックアップ検出が正しく機能するようになりました。以前は、利用可能な最新のバックアップより前のターゲットは不可能でした (検出アルゴリズムは、開始点として最後のバックアップを選択することで常に間違っていました)。

  • オペレーターが pg_controldata から収集した値に依存することで、ホット スタンバイの影響を受けやすいパラメーターの回復力を向上

  • 無効な証明書エラーをスローする代わりに、無効なエントリを適切に破棄することにより、中間証明書の処理が改善されました

  • データベース内の Prometheus エクスポーター メトリック コレクション クエリは、ロールバックではなくコミットされるようになりました (該当する場合、ダウンストリーム ダッシュボードから表示されるロールバックされたトランザクションの数が変更される可能性があります)。

バージョン 1.15.0 は、CloudNativePG の最初のリリースです。以前は、このソフトウェアは EDB Cloud Native PostgreSQL (現在はEDB Postgres for Kubernetes) と呼ばれていました。以前のリリースに関する情報をお探しの場合は、 EDB documentation を参照してください。