1.14.0 以前のリリース ノート

CloudNativePG の最初の公開リリースはバージョン 1.15.0 です。それ以前は、この製品は EDB によって完全に所有され、 Cloud Native PostgreSQL という名前で配布されていました。

このページの変更のリストは、情報提供のみを目的としており、コミットに加えて製品の履歴を示しています。 ここにリストされているバージョンは、CloudNativePGには存在しません。

バージョン 1.14.0

リリース日: 2022 年 3 月 25 日

特徴:

  • Barman Cloud 2.19 で導入された機能を利用することで、バックアップとリカバリ用に Google Cloud Storage をネイティブにサポート

  • Cluster オブジェクトの LastBackupSucceeded 条件の導入によるバックアップの可観測性の向上

  • ホット スタンバイに影響するパラメーターの更新をサポート: max_connections 、max_prepared_transactions 、max_locks_per_transaction 、max_wal_senders 、max_worker_processes

  • Cluster オブジェクトに Online upgrade in progress フェーズを追加して、オペレーターのオンライン アップグレードが進行中であることを示します。

  • S3 オブジェクト ストレージの資格情報を提供する別の方法として、AWS IAM ロールを継承する機能

  • Pooler の authQuerySecret と証明書の不透明な秘密のサポート

  • デフォルトの PostgreSQL バージョンを 14.2 に更新

  • maintenance という名前の kubectl cnp プラグインに新しいコマンドを追加して、Kubernetes クラスター全体の 1 つまたはすべての名前空間のクラスターにメンテナンス ウィンドウを設定します。

コンテナー イメージ:

  • 最新の PostgreSQL コンテナにはBarman Cloud 2.19 が含まれています

セキュリティの強化:

  • OpenShift を含む、Operator Lifecycle Manager を使用した名前空間の Operator インストールに対する RBAC の強化。 OpenShift ユーザーは、このバージョンに更新することをお勧めします。

修正:

  • 元の pg_control ファイルのコピーを保持することで、インスタンス マネージャーが中断された pg_rewind を再試行できるようにする

  • pg_rewind を実行する前に古い PID ファイルをクリーンアップする

  • 13 より前のバージョンの PostgreSQL でのランダムな再起動を回避するために、primary_conninfo のキーによるソートを強制します。

  • 調整時に ServiceAccount の変更 (ラベル、注釈など) を保持する

  • imagePullPolicy デフォルト値の適用を無効にする

  • WAL セグメントサイズの initDB 検証を改善

  • LSN を指定してクラスターを復旧するときに、targetLSN オプションを適切に処理する

  • サーバー証明書と CA 証明書の両方で証明書チェーンを許可することにより、カスタム TLS 証明書の検証を修正します。

バージョン 1.13.0

リリース日: 2022 年 2 月 17 日

特徴:

  • Snappy 圧縮のサポート。 Snappy は、より低い圧縮率を使用してオブジェクト ストアへのアップロード速度を上げるバックアップの高速圧縮オプションです。

  • Barmanオブジェクト ストアにアップロードされたファイルのタグ付けのサポート。この機能には、オペランド イメージにBarman 2.18 が必要です。クラスタ削除後のバックアップ数

  • status.conditions によるクラスターのステータスの拡張。条件 ContinuousArchiving は、クラスターが WAL ファイルのアーカイブを開始したことを示します

  • kubectl の cnp プラグインのステータス コマンドを追加情報で改善: クラスターのステータスを示す Cluster Summary セクションと、クラスターで使用される証明書のステータスと有効期限までの残り時間を含む Certificates Status セクションを追加

  • 新しいクラスターの作成時に空でないバックアップ先を検出する新しい barman-cloud-check-wal-archive コマンドをサポート

  • Secret を使用して、MONITORING_QUERIES_SECRET 構成変数を介してデフォルトの監視クエリを追加するためのサポートを追加します。

  • ユーザーが AppArmor を使用してコンテナーのアクセス許可を制限できるようにする (AppArmor サポートでデプロイされた Kubernetes クラスター上)

  • kubectl の cnp プラグインにWindowsプラットフォームのサポートを追加しました。現在、プラグインはWindows x86 および ARM で使用できます。

  • Kubernetes 1.18 および非推奨の API バージョンのサポートを終了

コンテナー イメージ:

  • PostgreSQL コンテナにはBarman 2.18 が含まれています

セキュリティ修正:

  • 所有者とスーパーユーザーのシークレット内のユーザー名フィールドの一貫性チェックを追加します。以前は、悪意のあるユーザーがシークレットを使用して任意の PostgreSQL ユーザーのパスワードを変更できた可能性がありました

修正:

  • Postgres ポッドからのコード フェッチ ステータスのメモリ リークを修正

  • クラッシュ後の PostgreSQL の自動再起動を無効にします。インスタンス コントローラーは、PostgreSQL インスタンスのライフサイクルを処理します。

  • 検証 Webhook で spec.postgresUID および spec.postgresGID フィールドを変更できないようにします。クラスターの作成後にこれらのフィールドを変更すると、PostgreSQL が起動できなくなります

  • バックアップおよび WAL アーカイブ処理コードからログの冗長性を減らします

  • まだ初期化されていないときにクラスターが Healthy としてマークされるバグを修正

  • 非常に高い WAL 生産レートを持つクラスター内のスタンバイ サーバーが、整列したらストリーミングに切り替えることができます。

  • ほとんどクラッシュしない PostgreSQL ポッドの起動中の競合状態を修正

  • クラスター内の最初の PVC の初期化に失敗する可能性がある競合状態を修正します

  • レプリカとしてクラスタに参加する前に、降格したばかりのプライマリ Pod の余分な再起動を削除します

  • バックアップからの復元時に、レプリケーションに依存する PostgreSQL 構成パラメーターを正しく処理する

  • クラスターの作成中に PostgreSQL 構成の検証が欠落していた問題を修正

バージョン 1.12.0

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

特徴:

  • サポートされている Kubernetes ディストリビューションのリストに Kubernetes 1.23 を追加し、2020 年 12 月に Kubernetes プロジェクトによるサポートを終了した 1.17 のエンドツーエンド テストを削除します。

  • 2 秒の接続タイムアウトと 30 秒の通信タイムアウトを追加することで、ネットワークの問題が発生した場合のポッド ステータス チェックの応答性を改善します。この変更により、Pod が失敗したと宣言する前に Pod がステータスを報告するのをオペレーターが待機する時間に制限が設定され、フェイルオーバー操作の堅牢性と予測可能性が向上します。

  • クラスターに .spec.inheritedMetadata フィールドを導入して、ユーザーがクラスターによって生成されたすべてのオブジェクトに適用されるラベルと注釈を指定できるようにします

  • インスタンスのステータスを計算するときに実行されるクエリの数を減らす

  • PgBouncer の readiness プローブを追加

  • Azure プロトコルを使用する場合、Barman のバックアップ オブジェクト ストアのエンドポイントのカスタム証明機関のサポートを追加します。

修正:

  • フェイルオーバー中は、すべての WAL ストリーミング接続が閉じられるまで、新しいプライマリの選択を待ちます。オペレーターはデフォルトで wal_sender_timeout と wal_receiver_timeout を 5 秒に設定し、プライマリにネットワークの問題がある場合にスタンバイ ノードがすぐに気付くようにします。

  • レプリカ クラスタ内のすべての PostgreSQL インスタンスに対して「archive_mode」を「always」に設定することにより、レプリカ クラスタ内の WAL アーカイブ戦略を変更してローリング更新を修正します。次に、WAL のアップロードを、現在のターゲット指定されたプライマリからのみ制限します。スイッチオーバー中に WAL が 2 回アップロードされることがありますが、これは問題ではありません

  • レプリカ クラスター ソース内の Barman のバックアップ オブジェクト ストアのエンドポイントのカスタム証明機関のサポートを修正

  • クラスタの名前空間でデフォルトのモニタリング構成マップに固定名を使用する

  • デフォルトの Webhook が何らかの理由で機能しない場合、オペレーターは調整サイクル中にもクラスターをデフォルトで更新するようになりました

  • リソース要求と制限の比較を修正して、すべての調整サイクルですべてのポッドの更新につながるまれな問題を修正します

  • Webhook からのログ メッセージを改善して、オブジェクトの名前空間も含めるようにします

  • すべての調整ループの開始時に「デフォルト」メッセージの記録を停止する

  • enablePodMonitor が false の場合、調整サイクルごとに PodMonitor 削除のログ記録を停止する

  • ポッドに到達できない場合でも、アーキテクチャの不一致の可能性について文句を言わないでください

バージョン 1.11.0

リリース日: 2021 年 12 月 15 日

特徴:

  • 並列WALアーカイブと復元: WAL アーカイブ (PostgreSQL の archive_command による) とWAL 復元 (restore_command による)。並列復元オプションを使用すると、必要な WAL ファイルを取得して順次ではなく並列で再生することにより、新しく昇格したスタンバイをより迅速に準備完了状態にすることができます。

  • 監視用のメトリックのデフォルトセット: default-monitoring という名前の新しい ConfigMap が、オペレーターの同じ名前空間に自動的にデプロイされ、デフォルトで既存の Postgres クラスターに追加されます。このような動作は、オペレーターの構成で MONITORING_QUERIES_CONFIGMAP パラメーターを設定することでグローバルに変更できます。また、.spec.monitoring.disableDefaultQueries オプション (デフォルトでは false に設定) を使用してクラスター レベルで変更することもできます。

  • クラスターの監視セクションに enablePodMonitor オプションを導入して、PodMonitor リソースを自動的に管理し、Prometheus とシームレスに統合します

  • Pod が Kubernetes によって強制終了される前に、目的の stopDelay 時間の前半にスマート シャットダウンを実行し、残りの半分に高速シャットダウンを実行することで、PostgreSQL のシャットダウン手順を改善します。

  • switchoverDelay オプションを追加して、以前のプライマリに与えられた時間を制御して、新しいプライマリを昇格する前に正常にシャットダウンし、すべての WAL ファイルをアーカイブします (デフォルトでは、CloudNativePG はデータの耐久性を優先するために無期限に待機します)。

  • ローリング更新を発行して、PostgreSQL Cluster のリソース要求と制限の変更を処理する

  • kubectl の cnp プラグインの status コマンドを改善し、追加情報を追加:ストリーミングレプリケーションステータス、データベースの合計サイズ、クラスター内のインスタンスの役割

  • PostgreSQL の共有メモリ管理用に dynamic_shared_memory_type および shared_memory_type パラメータの構成を有効にすることで、多数の並列ワーカーを使用するワークロードのサポートを強化します

  • クラスター レベルで定義されたラベルと注釈を、ポッドを含む関連リソースに伝達します (削除はサポートされていません)。

  • Kubelet によって削除された Pod を自動的に削除します

  • 必要に応じてクラスターのローリング更新を発行することにより、ENABLE_AZURE_PVC_UPDATES オペレーター構成オプションを使用して、Azure の永続ボリュームの自動サイズ変更を管理します (既定では無効になっています)。

  • 特定の Postgres クラスターで disabled に設定すると、調整ループが実行されないようにする cnpg.io/reconciliationLoop アノテーションを導入する

  • initdb ブートストラップ メソッドの一部として postInitApplicationSQL オプションを導入し、クラスターが作成された直後にメイン アプリケーション データベースでスーパーユーザーとして実行されるSQLクエリのリストを指定します。

修正:

  • Liveness プローブは、PostgreSQL サーバーの起動プロセスを正しく処理するようになりました。これにより、少数の顧客から報告された問題が修正され、再起動されたスタンバイ サーバーが一貫した状態に到達するために WAL ファイルを回復する必要がありますが、ライブネス プローブのタイムアウトが発生する前にそれを行うことができず、ポッドが CrashLoopBackOff に残ります。スターテス。

  • Liveness プローブは、タイムラインの迂回後に pg_rewind を使用して現在のプライマリと再調整する必要がある以前のプライマリのケースを正しく処理するようになりました。これにより、新しいスタンバイのポッドが Kubernetes によって繰り返し強制終了されるのを修正します。

  • Postgres ポッド (Waited for 1.182388649s due to client-side throttling, not priority and fairness, request: GET など) からのクライアント側のスロットリングを減らします。

  • 提供されたものを使用して、OpenShift および OLM インストールで公開鍵基盤 (PKI) の初期化を無効にします。

  • 再起動が必要な構成パラメータを変更する場合は、常にプライマリを最後のままにしておきます

  • ジョブが正常に完了した後にのみ PVC を準備完了としてマークし、PVC 初期化の競合状態を防ぎます。

  • 有効期限が切れた Webhook TLS シークレットを更新するときは、正しい公開キーを使用してください。

  • LSN を解析するときのオーバーフローを修正

  • 起動時に古い PID ファイルを削除

  • Pooler リソースが、オペレーターで定義された imagePullSecret を継承するようにします (存在する場合)

バージョン 1.10.0

リリース日: 2021 年 11 月 11 日

特徴:

  • PgBouncerによる接続プーリング : Pooler リソースとコントローラーを導入して、ローカル PostgreSQL Cluster の接続プーラーとして使用される PgBouncer デプロイメントを自動的に管理します。この機能には、TLS クライアント/サーバー接続、パスワード認証、高可用性、ポッド テンプレートのサポート、主要な PgBouncer パラメーターの構成、PAUSE /RESUME 、JSON 形式でのログ記録、統計、プール、およびリスト用の Prometheus エクスポーターが含まれます。

  • バックアップ保持ポリシー : バックアップのリカバリ ウィンドウ保持ポリシーの定義をサポートします (たとえば、30 日のリカバリ ウィンドウを確保するための「30d」)。

  • オペレーターのインプレース更新 : インスタンス マネージャーのインプレース オンライン更新を導入します。これにより、オペレーターの更新後にクラスター全体のローリング更新を実行する必要がなくなります。デフォルトでは、このオプションは無効になっています ( documentation for more detailed information を参照してください)。

  • initdb ブートストラップ メソッドでカスタマイズできるオプションのリストを dataChecksums 、encoding 、localeCollate 、localeCType 、walSegmentSize に制限します。これにより、options 配列が廃止され、v2 API で削除される予定です。

  • initdb ブートストラップ メソッドの一部として postInitTemplateSQL オプションを導入し、クラスターが作成された直後にスーパーユーザーとして template1 データベースで実行されるSQLクエリのリストを指定します。この機能により、クラスターで作成されたすべてのアプリケーション データベースに既定のオブジェクトを含めることができます。

  • インスタンス Prometheus エクスポーターに追加された新しいデフォルト メトリック: Postgres バージョン、クラスター名、およびバックアップ カタログに基づく回復可能性の最初のポイント

  • 失敗後にバックアップを再試行する

  • 頻繁に更新されないオペランド イメージには存在しない、最近導入された機能 (保持ポリシーや Azure Blob コンテナー ストレージなど) をオペレーターが呼び出さないようにするために、 Barman Cloud の機能に関する認識を構築します。

  • cnp プラグインの status コマンドの出力をバックアップに関する情報と統合する

  • PVC のステータス (初期化中または準備完了) を報告する新しい注釈を導入します。

  • Backup オブジェクトを含む、Cluster で生成されたすべてのオブジェクトの k8s.enterprisedb.io/cluster ラベルにクラスター名を設定します。

  • Cluster 、Backup 、および ScheduledBackup の種類で非推奨の API バージョン postgresql.cnpg.io/v1alpha1 のサポートを削除

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

安全:

  • オペレーター コンテナー securityContext の allowPrivilegeEscalation を false に設定します。

修正:

  • 単一インスタンス クラスタでのメンテナンス中にプライマリ PodDisruptionBudget を無効にする

  • 回復操作中に正しい証明書証明機関 (CA) を使用する

  • バックアップを取る前に WAL のアーカイブ状態をチェックする際の Postgres 接続のリークを防ぐ

  • 一時的なエラーが発生した後、WAL のアーカイブ/復元を 100 ミリ秒スリープ状態にします。

バージョン 1.9.2

リリース日: 2021 年 10 月 15 日

特徴:

  • PostgreSQL の archive_command 用の wal-archive とスタンバイの restore_command 用の wal-restore の 2 つの新しいロガーで JSON ログを強化します

修正:

  • スタンバイ プロモーション中に WAL アーカイブを有効にします (.history ファイルがアーカイブされないようにします)。

  • Barman 2.13 以降を使用する場合にのみ、--cloud-provider オプションをBarman Cloud ツールに渡して、古いオペランドでのエラーを回避します。

  • バックアップをトリガーする前に、プライマリのポッドの準備が整うのを待ちます

バージョン 1.9.1

リリース日: 2021 年 9 月 30 日

  • このリリースは、 PostgreSQL 14 のリリースを記念するものです

特定のイメージ名を定義せずに、新しい Cluster が作成されたときにデフォルトのメジャー バージョンにすることにより。 *

修正:

  • プライマリ ポッドのログに Error while getting barman endpoint CA secret メッセージが表示され、バックアップが正しく機能しない問題を修正

  • インスタンス マネージャーとの一時的な通信の問題が発生した場合に備えて、新しいバックアップの要求を適切に再試行します。

バージョン 1.9.0

リリース日: 2021 年 9 月 28 日

  • バージョン 1.9.0 は、リリース プロセスとバージョン 1.9.1 のその後のリリースの遅延により、OpenShift では使用できません。*

特徴:

  • サポートされている Kubernetes ディストリビューションのリストに Kubernetes 1.22 を追加し、1.16 を削除します。

  • 必要に応じて、バックアップ アーカイブから WAL ファイルをフェッチするために、pg_rewind で --restore-target-wal オプションのサポートを導入します (PostgreSQL 13+ でのみ利用可能)。

  • 各データベースの pg_catalog.pg_largeobject テーブルのページ数を推定する Prometheus エクスポーターのデフォルト メトリックを公開します。

  • ローカルのメモリ内キャッシュを通じて、WAL のアーカイブとフェッチのパフォーマンスを向上させます

修正:

  • pg_isready の呼び出し時に postgres ユーザーを明示的に設定 - OpenShift の制限付き SCC で必要

  • ステータスの FirstRecoverabilityPoint を適切に更新する

  • バックアップが要求された場合、指定されたプライマリに archive_mode = always を設定します

  • マイナーなバグ修正

バージョン 1.8.0

リリース日: 2021 年 9 月 13 日

特徴:

  • 外部クラスタ セクションで定義されたオブジェクト ストアから直接、完全リカバリまたはポイント イン タイム リカバリを介して新しいクラスタをブートストラップし、バックアップ CR を定義するという以前の要件を排除します。

  • スケジュールされたバックアップに immediate オプションを導入して、最初の Postgres インスタンスが実行された直後にバックアップを要求し、ポイントインタイム リカバリが構成されている場合にクラスターの最初に巻き戻す機能を追加します

  • クラスタ ステータスに firstRecoverabilityPoint を追加して、バックアップ オブジェクト ストアのコンテンツに基づいてリカバリを要求する最も古い一貫した時点を報告します

  • 次の新しいメトリクスを公開することで、PostgreSQL インスタンスのデフォルトの Prometheus エクスポーターを強化します。

  1. ディスク上の WAL ファイルの数と計算された合計サイズ 2. アーカイブ ステータス フォルダー内の .ready および .done ファイルの数 3. レプリカ モードのフラグ 4. 要求された最小/最大の同期レプリカの数、および予想および実際に観測された数もの

  • Prometheus エクスポータでカスタム メトリックを定義するときに runonserver オプションのサポートを追加して、メトリックの収集を PostgreSQL バージョンの範囲に制限します

  • Barman Cloud のBarman 2.13 で導入された機能を利用することにより、バックアップと回復のために Azure Blob Storage をネイティブにサポートします。

  • liveness プローブを pg_isready に依存する

  • 復旧対象時刻のタイムスタンプ指定に RFC3339 形式をサポート

  • .spec.imagePullPolicy を導入して、クラスター用に作成されたすべてのポッドとジョブのイメージ コンテナーのプル ポリシーを制御します

  • OpenShift 4.5 を置き換える OpenShift 4.8 のサポートを追加

  • PostgreSQL 14 (ベータ) をサポート

  • ストリーミング接続を必要とせずに、外部クラスター セクションで定義されたオブジェクト ストアからクラスター間レプリケーションを使用して、レプリカ クラスター機能を強化します (実験的)。

  • クラスターの仕様に logLevel オプションを導入して、エラー、情報、デバッグ、またはトレースのいずれかのレベルを指定します。

セキュリティの強化:

  • .spec.enableSuperuserAccess を導入して、パスワード認証を通じて postgres ユーザーによるネットワーク アクセスを有効/無効にします。

修正:

  • クラスターが回復不能な状態になり、人間の介入が必要になった場合に、ユーザーに適切に通知する

バージョン 1.7.1

リリース日: 2021 年 8 月 11 日

特徴:

  • 同期レプリケーションに関して構成よりも自己回復を優先し、クラスターが自己回復操作中に要件を満たすことができない場合にオペレーターが minSyncReplicas および maxSyncReplicas 設定を一時的にオーバーライドできるようにします。

  • initdb ブートストラップ メソッドの一部として postInitSQL オプションを導入し、クラスターが作成された直後にスーパーユーザーとして実行されるSQLクエリのリストを指定します。

修正:

  • プライマリの準備ができていない場合にオペレーターがフェイルオーバーできるようにします (1.7.0 で導入されたバグ)。

  • LOCAL 同期コミット レベルを使用して管理クエリを実行する

  • PGAudit で複数行のログ エントリを正しく解析する

バージョン 1.7.0

リリース日: 2021 年 7 月 28 日

特徴:

  • JSON 出力で直接利用できる pgaudit と呼ばれる新しいタイプの logger を使用して、PGAudit にネイティブ サポートを追加します。

  • 以下を通じて、監視機能と可観測性機能を強化します。

  • pg_stat_statements および auto_explain 拡張機能のネイティブ サポート - Prometheus エクスポーターの target_databases オプションは、1 つ以上のデータベースでユーザー定義のメトリック クエリを実行します (シェルのようなパターン マッチングによるデータベースの自動検出を含む) - manual_switchover_required メトリックの公開primaryUpdateStrategy が supervised に設定されているクラスターで手動切り替えが必要かどうかを迅速に報告する

  • pg_audit 、auto_explain 、pg_stat_statements のshared_preload_libraries を透過的に処理

  • pg_stat_statements 、pgaudit 、または auto_explain オプションが postgresql パラメーター セクションに追加された場合の PostgreSQL 用の shared_preload_libraries の自動構成

  • cnpg.io/reload ラベルをサポートして、構成マップとシークレットの自動リロードを細かく制御します。これには、Prometheus エクスポーターのカスタム モニタリング/アラート メトリックに使用されるものや、証明書を保存するために使用されるものも含まれます。

  • reload コマンドを kubectl の cnp プラグインに追加して、インスタンスで調整ループをトリガーします。

  • additionalPodAffinity および additionalPodAntiAffinity を介してポッド アフィニティおよび非アフィニティ構成の制御を改善

  • 少なくともプライマリ インスタンスを常に実行することを要求することにより、プライマリ インスタンスに別の PodDisruptionBudget を導入する

セキュリティの強化:

  • .spec.certificates.clientCASecret および spec.certificates.replicationTLSSecret オプションを追加して、PostgreSQL サーバーのカスタム クライアント認証局と証明書を定義し、クライアント証明書の認証と PostgreSQL ノード間の安全な通信に使用します。

  • .spec.backup.barmanObjectStore.endpointCA オプションを追加して、Barman のバックアップ オブジェクト ストアのエンドポイントのカスタム証明機関バンドルを定義します。

修正:

  • Prometheus エクスポーターでヒストグラムを正しく解析する

  • オペレーターがクラスター用に作成した調整サービス

バージョン 1.6.0

リリース日: 2021 年 7 月 12 日

特徴:

  • レプリカ モード ( 実験的 ): クラスターをソース クラスターのレプリカとして作成できるようにします。レプリカ クラスタには、指定されたプライマリ と任意の数のスタンバイがあります。

  • .spec.postgresql.promotionTimeout パラメータを追加して、インスタンスをプライマリに昇格させるときに待機する最大秒数を指定します。デフォルトは 40000000 秒です。

  • .spec.affinity.podAntiAffinityType パラメータを追加します。 preferred (デフォルト) に設定すると preferredDuringSchedulingIgnoredDuringExecution が使用され、required に設定すると requiredDuringSchedulingIgnoredDuringExecution になります。

変更点:

  • オペレータが新しいポッドを作成するのを妨げていた PVC とポッドを削除するときの競合状態を修正しました。

  • マネージャーが構成変更時に PostgreSQL の再起動の必要性を検出できない競合状態を修正しました。

  • 注釈のないクラスターでの kubectl-cnp のパニックを修正しました。

  • 一部のログ メッセージのレベルを debug に下げました。

  • サーバー CA および TLS インジェクションの E2E テスト。

バージョン 1.5.1

リリース日: 2021 年 6 月 17 日

変化:

  • Red Hat OpenShift の Operator Deployment での自動更新を妨げる CRD 検証のバグを修正

  • Secret を使用してオペレーターの構成を渡すことを許可します。

バージョン 1.5.0

リリース日: 2021 年 6 月 11 日

特徴:

  • pg_basebackup ブートストラップ メソッドを導入して、Kubernetes の外部であっても、同じメジャー バージョンの既存の PostgreSQL インスタンスのコピーとして新しい PostgreSQL クラスターを作成します。

  • Cluster リソースの Affinity セクションに Kubernetes の容認のサポートを追加し、ユーザーが必要なテイントを使用して Kubernetes ノードに PostgreSQL インスタンスを配布できるようにします

  • <image>:<tag>@sha256:<digestValue> 形式を使用して、イメージ名へのダイジェストの指定を有効にし、より決定論的で反復可能な展開を実現します。

セキュリティの強化:

  • サーバー証明書とそれに署名した関連認証機関の秘密を定義することにより、TLS 証明書をカスタマイズして PostgreSQL サーバーを認証します。

  • require から verify-ca への内部および自動的に管理されるストリーミング レプリカの WAL レシーバー プロセスの sslmode を上げる

変更点:

  • kubectl の cnp プラグインの promote サブコマンドを拡張して、ポッドの名前全体ではなくノード番号のみを受け入れるようにします

  • クラスター名に DNS-1035 検証スキームを採用 (サービス名はそこから継承されます)

  • スタンバイ インスタンスのクローンを作成するとき、または pg_basebackup メソッドを使用してブートストラップするときに、ストリーミングレプリケーション接続を強制します。

  • 物理ベースのバックアップに関して、Backup リソースを beginWal 、endWal 、beginLSN 、endLSN 、startedAt 、および stoppedAt と統合します。

  • ドキュメンテーションの改善: - オペレーターおよびオペランド コンテナーによって公開されるポートのリストを提供します - データベース ワークロード用のストレージと PostgreSQL のベンチマークを行うための cnp-bench Helm チャートとガイドラインを導入します

  • E2E テストの機能強化: - Kubernetes 1.21 のテスト - オペレーターの高可用性のテストを追加 - ノード ドレインのテストを追加

  • 以下を含むマイナーなバグ修正: - 回復操作中の pg_ctl 開始のタイムアウトが短すぎる - オペレーターが PVC 上の直接イベントを監視していない - barmanObjectStore バックアップの immediateCheckpoint および jobs パラメーターの処理を修正 - バックアップからの回復時にログを空にする

バージョン 1.4.0

リリース日: 2021 年 5 月 18 日

特徴:

  • JSON 形式の PostgreSQL エラー メッセージの標準出力ロギング

  • Prometheus エクスポータに PostgreSQL メトリクスの基本セットを提供

  • restart コマンドを kubectl の cnp プラグインに追加して、特定の PostgreSQL クラスターのポッドをロールアウト方式で再起動します。

セキュリティの強化:

  • ポッドの readOnlyRootFilesystem セキュリティ コンテキストを設定します

変更点:

  • 重要: 以前に YAML マニフェストを使用して CloudNativePG オペレーターをデプロイしたことがある場合は、新しいバージョンをインストールする前に、既存のオペレーターのデプロイを削除する必要があります。これは、オペレーターが直接管理するラベルとラベル セレクターの変更による他の Kubernetes API との競合を避けるために必要です。 1.4.0 へのアップグレードの詳細については、CloudNativePG のドキュメントを参照してください。

  • オペレーターによって自動的に定義されるラベルを修正し、名前を control-plane: controller-manager から app.kubernetes.io/name: cloudnative-pg に変更します

  • Prometheus エクスポータの TCP ポートに metrics 名を割り当てます。

  • cnp_metrics_exporter を application_name として PostgreSQL のメトリクス エクスポーター接続に設定します。

  • 利用可能な場合は、postgres データベースの代わりに、Prometheus エクスポーターのクエリを監視するためにアプリケーション データベースを使用します。

  • ドキュメントの改善: - 監視クエリのカスタマイズ - オペレーターのアップグレード手順

  • E2E テストの強化

  • 以下を含むマイナーなバグ修正: - pg_basebackup を呼び出すときに -R を使用しないようにする - ステータスを取得するときにエラー ログからスタック トレースを削除する

バージョン 1.3.0

リリース日: 2021 年 4 月 23 日

特徴:

  • ラベルと注釈の継承

  • すべてのコンテナにリソース制限を設定する

セキュリティの強化:

  • ポッドの実行を名前空間に割り当てられた UID および SELinux コンテキストに制限するための、Red Hat OpenShift での制限付きセキュリティ コンテキスト制約のサポート

  • オペレーターによって明示的に定義された Pod セキュリティ コンテキストは、非ルート、非特権、および特権エスカレーションなしで実行されます。

変更点:

  • ポート 9187 でリッスンする Prometheus エクスポーター エンドポイント (ポート 8000 は、API サーバーとのインスタンス調整用に予約されています)

  • ドキュメントの改善

  • GKE 環境を含む E2E テストの機能強化

  • マイナーなバグ修正

バージョン 1.2.1

リリース日: 2021 年 4 月 6 日

  • ScheduledBackup はバックアップの所有者ではなくなりました。つまり、ScheduledBackup オブジェクトが削除されてもバックアップは削除されません。

  • RHSA-2021:1024 を解決するための ubi8-minimal イメージの更新 (セキュリティ アドバイザリ: 重要)

バージョン 1.2.0

リリース日: 2021 年 3 月 31 日

  • Prometheus の postgres_exporter と互換性のある構文を使用して、ConfigMap および Secret オブジェクトとしてカスタム監視クエリの実験的サポートを導入

  • オペレーター ライフサイクル マネージャー (OLM) の展開をサポートし、その後 OperatorHub.io に存在します。

  • 米国国防総省 (DoD) の国防情報システム局 (DISA) およびインターネット セキュリティ センター (CIS) からのガイドラインを適用し、Dockle を使用してパイプラインで直接検証することにより、コンテナーのセキュリティを強化します。

  • AKS での E2E テストを改善する

  • マイナーなバグ修正

バージョン 1.1.0

リリース日: 2021 年 3 月 3 日

  • kubectl cnp status を追加して、JSON および YAML 出力を含むクラスターのステータスをきれいに印刷します

  • kubectl cnp certificate を追加して、クライアント アプリケーションの TLS 認証を有効にします

  • -ro サービスを追加して、接続を利用可能なホット スタンバイ レプリカのみにルーティングし、クラスターのプライマリ インスタンスからの読み取り専用クエリのオフロードを有効にします。

  • クラスターを maxSyncReplicas よりも低い値にスケールダウンするロールバック

  • 以前のプライマリーを降格する前にチェックポイントを要求する

  • SIGTERM 上の PostgreSQL プロセスに SIGINT シグナル (高速シャットダウン) を送信します。

  • マイナーなバグ修正

バージョン 1.0.0

リリース日: 2021 年 2 月 4 日

CloudNativePG の最初の主要な安定版リリースでは、API グループ postgresql.cnpg.io/v1 に Cluster 、Backup 、および ScheduledBackup が実装されています。これらのリソースを使用して、次の主な機能を備えた Kubernetes 内で PostgreSQL クラスターを作成および管理します。

  • 外部ツールを必要としない、高可用性のための Kubernetes API サーバーとの直接統合

  • セルフヒーリング機能: - 最も整合性のとれたレプリカを昇格させることによるプライマリ インスタンスのフェイルオーバー - レプリカの自動再作成

  • 選択したレプリカの昇格によるプライマリ インスタンスの計画的な切り替え

  • スケールアップ/ダウン機能

  • 任意の数のインスタンスの定義 (最小 1 - 1 つのプライマリ サーバー)

  • アプリケーションをクラスターの唯一のプライマリ サーバーに接続するための read-write サービスの定義

  • アプリケーションを任意のインスタンスに接続してワークロードを読み取るための read サービスの定義

  • PVC テンプレートを使用したローカル永続ボリュームのサポート

  • Pod での永続ボリューム ストレージの再利用

  • PostgreSQL のマイナー バージョンとオペレーターのアップグレードのローリング アップデート

  • TLS 接続とクライアント証明書認証

  • S3 互換オブジェクト ストアへの継続的なバックアップ

  • S3 互換オブジェクト ストア バックアップからのフル リカバリとポイント イン タイム リカバリ

  • 同期レプリカのサポート

  • nodeSelector プロパティによるノード アフィニティのサポート

  • PostgreSQL エラー メッセージの標準出力ロギング