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_processesClusterオブジェクトに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リソースとコントローラーを導入して、ローカル PostgreSQLClusterの接続プーラーとして使用される 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 エクスポーターを強化します。
ディスク上の 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-benchHelm チャートとガイドラインを導入します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 エラー メッセージの標準出力ロギング