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と証明書のOpaque secretsのサポート

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

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

コンテナイメージ:

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

セキュリティの強化:

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

修正:

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

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

  • primary_conninfo のキーによるソートを強制して、13より前のPostgreSQLバージョンでのランダムリスタートを回避

  • 調整時に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 プラグインのstatusコマンドを追加情報で改善します。クラスターのステータスを示す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 Podの起動中の競合状態を修正

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

  • レプリカとしてクラスターに参加する前に、降格したばかりのプライマリポッドの余分なリスタートを削除します

  • バックアップから回復するときにレプリケーションに敏感なPostgreSQL構成パラメーターを正しく処理します

  • クラスター作成中のPostgreSQL構成の欠落している検証を修正

バージョン1.12.0

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

特徴:

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

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

  • .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アーカイブの両方の間に実行される並列ジョブの最大数を設定するbackupObjectStore.maxParallel オプションを導入することにより、データベースが高書き込みシステムでWAL生成についていくことができますWAL復元(restore_command による)。パラレル復元オプションを使用すると、必要なWALファイルを取得してシーケンシャルではなくパラレルで再生することにより、新しく昇格したスタンバイをより迅速に準備完了状態にすることができます

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

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

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

  • switchoverDelay オプションを追加して、前のプライマリがグレースフルにシャットダウンし、新しいプライマリを昇格する前にすべてのWALファイルをアーカイブする時間を制御する(デフォルトでは、CloudNativePGは特権データの耐久性を無期限に待機します)

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

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

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

  • クラスターレベルで定義されたラベルとアノテーションを、ポッドを含む関連するリソースに伝播します(削除はサポートされていません)

  • Kubeletによって追い出されたポッドを自動的に削除します

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

  • 特定のPostgresクラスターでdisabled に設定されている場合、調整ループの実行を防止するcnpg.io/reconciliationLoop アノテーションを導入します

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

修正:

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

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

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

  • 提供されたものを使用して、OpenShiftおよびOLMインストールでのPublic Key Infrastructure(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 Containerストレージなど)を呼び出さないようにするために、 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日

特徴:

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

修正:

  • スタンバイプロモーション中に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で必要

  • statusの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 2.13 for Barman Cloudで導入された機能を利用して、バックアップとリカバリのためにAzure Blob Storageをネイティブにサポート

  • liveness probeはpg_isready に依存します

  • リカバリ対象時刻のタイムスタンプ指定にRFC3339フォーマットをサポート

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

  • OpenShift 4.5に代わるOpenShift 4.8のサポートを追加します

  • PostgreSQL 14(ベータ版)のサポート

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

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

セキュリティの強化:

  • パスワード認証を介してpostgres ユーザーとのネットワークアクセスを有効/無効にする.spec.enableSuperuserAccess を導入

修正:

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

バージョン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 拡張機能のネイティブサポート - 1つ以上のデータベースでユーザー定義のメトリッククエリを実行するためのPrometheusエクスポーターのtarget_databases オプション(シェルのようなパターンマッチングによるデータベースの自動検出を含む) - 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 ラベルをサポートして、構成マップとシークレットの自動リロードを細かく制御します。

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

  • additionalPodAffinity およびadditionalPodAntiAffinity を介したPodアフィニティおよびアンチアフィニティ構成の制御を改善します

  • 少なくともプライマリインスタンスをいつでも実行することを要求することにより、プライマリインスタンスに別個の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 Deploymentsでの自動更新を妨げるCRD検証のバグを修正

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

バージョン1.5.0

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

特徴:

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

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

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

セキュリティの強化:

  • サーバー証明書とそれに署名した関連する認証局のシークレットを定義することにより、PostgreSQLサーバーを認証するTLS証明書をカスタマイズします

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

変更点:

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

  • クラスター名(サービス名が継承される)にDNS-1035検証スキームを採用

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

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

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

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

  • マイナーなバグ修正。

バージョン1.4.0

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

特徴:

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

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

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

セキュリティの強化:

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

変更点:

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

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

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

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

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

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

  • E2Eテストの機能強化

  • マイナーなバグ修正、以下を含む: - pg_basebackup を呼び出すときに-R を使用しないでください

バージョン1.3.0

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

特徴:

  • ラベルとアノテーションの継承

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

セキュリティの強化:

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

  • 非ルート、非特権、特権エスカレーションなしで実行するようにオペレーターによって明示的に定義されたポッドセキュリティコンテキスト

変更点:

  • ポート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オブジェクトとしてのカスタムモニタリングクエリの実験的サポートを導入

  • Operator Lifecycle Manager(OLM)展開をサポートし、その後OperatorHub.ioに存在します

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

  • 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つのプライマリサーバー)

  • アプリケーションをクラスターの唯一のプライマリサーバーに接続するための 読み取り/書き込み サービスの定義

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

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

  • PodでのPersistent Volumesストレージの再利用

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

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

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

  • S3互換オブジェクトストアバックアップからの完全復旧とポイントインタイム復旧

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

  • nodeSelector プロパティを介したノードアフィニティのサポート

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