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 フォーマットがKubernetes CronJob フォーマットに従わないことを明確化 (#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 コマンドを修正して結果をソートし、出力のばらつきを削除します