EDB Cloud-Native PostgreSQL

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_connectionsmax_prepared_transactionsmax_locks_per_transactionmax_wal_sendersmax_worker_processes

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

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

  • プーラーのauthQuerySecretと証明書の不透明なシークレットのサポート

  • デフォルトの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ファイルのアーカイブを開始したことを示します

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

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

  • Secret を使用して、MONITORING_QUERIES_SECRET 構成変数を介してデフォルトのモニタリングクエリーを追加するサポートを追加します。

  • ユーザーがAppArmorを使用してコンテナの権限を制限できるようにしますAppArmorサポートで展開されたKubernetesクラスターで

  • kubectlcnp プラグインに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の初期化障害を引き起こす可能性のある競合状態を修正

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

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

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

バージョン1.12.0

発売日 2022年1月11日

特徴

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

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

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

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

  • PgBouncerの準備状況プローブを追加します

  • 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アーカイブとリストア backupObjectStore.maxParallel オプションを導入して、大量の書き込みシステムでWAL生成に追いつくことができます。PostgreSQLのarchive_command によると、両方の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 のリソース要求と制限の変更を処理します

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

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

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

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

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

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

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

修正

  • Livenessプローブは、PostgreSQLサーバーの起動プロセスを正しく処理するようになりました。これは、少数の顧客から報告された問題を修正し、一貫した状態に到達するためにWALファイルを復旧する必要がある再起動したスタンバイサーバーに影響しますが、livenessプローブのタイムアウトがキックインする前にそれを行うことができず、ポッドを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 ブートストラップ方法でカスタマイズできるオプションのリストをdataChecksumsencodinglocaleCollatelocaleCTypewalSegmentSize に制限します。これにより、options 配列は時代遅れになり、v2 APIで削除される予定です

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

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

  • 障害後のバックアップの再試行

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

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

  • PVCのステータス初期化または準備ができていることを報告する新しいアノテーションを導入します

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

  • ClusterBackup 、および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_commandwal-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で必要

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

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

  • マイナーなバグ修正

バージョン1.8.0

発売日 2021年9月13日

特徴

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

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

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

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

    1. ディスク上のWALファイルの数と計算された合計サイズb_tran_3 アーカイブステータスフォルダー内の.ready および.done ファイルの数b_tran_6レプリカモードのフラグ

    2. 要求された最小/最大同期の数レプリカ、および予想および実際に観察されたレプリカ

  • 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 拡張機能のネイティブサポート

    • 1つ以上のデータベースでユーザー定義のメトリッククエリーを実行するPrometheusエクスポータのtarget_databases オプションシェルのようなパターンマッチングを介したデータベースの自動検出を含む)

    • primaryUpdateStrategysupervised に設定されたクラスターに手動スイッチオーバーが必要かどうかを迅速に報告するためのmanual_switchover_required メトリックの公開

  • pg_auditauto_explain 、およびpg_stat_statementsshared_preload_libraries の透過的ハンドル

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

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

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

  • additionalPodAffinity およびadditionalPodAntiAffinity を介してポッドアフィニティおよびアンチアフィニティ構成の制御を向上させます

  • 任意の時点で、少なくとも1つのプライマリインスタンスを実行する必要があることにより、プライマリインスタンス用に別個の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でのオペレーター展開での自動更新を防止するCRD検証のバグを修正

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

バージョン1.5.0

発売日 2021年6月11日

特徴

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

  • Cluster リソースのAffinity セクションにKubernetesの許容範囲のサポートを追加し、ユーザーは必要なテイントを持つKubernetesノードにPostgreSQLインスタンスを分散できます。

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

セキュリティの強化

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

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

変更点

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

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

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

  • 物理ベースのバックアップに関してBackup リソースをbeginWalendWalbeginLSNendLSNstartedAtstoppedAt と統合

  • ドキュメントの改善

    • オペレーターとオペランドによって公開されるポートのリストを提供します container

    • データベースワークロードのストレージとPostgreSQLのベンチマークのためのcnp-bench helpmチャートとガイドラインを紹介します

  • E2Eテストの機能強化

    • Kubernetes 1.21

    • をテストする オペレーターの高可用性のテストを追加します

    • ノードドレインのテストを追加します

  • マイナーバグ修正、以下を含むマイナーバグ修正

    • リカバリ操作中のpg_ctl startへのタイムアウトが短すぎます b_tran_8 オペレーターがPVCsで直接イベントを監視していない

    • barmanObjectStore バックアップのimmediateCheckpoint およびjobs パラメーターの処理を修正します

    • バックアップから復旧するときに空のログ

バージョン1.4.0

発売日 2021年5月18日

特徴

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

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

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

セキュリティの強化

  • ポッドの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エクスポータのモニタリングクエリーにアプリケーションデータベースを使用します

  • ドキュメントの改善

    • モニタリングクエリーのカスタマイズ

    • Operatorのアップグレード手順

  • E2Eテストの機能強化

  • マイナーバグ修正など

    • pg_basebackup

    • を呼び出すときに-R の使用を回避します ステータスを取得するときにエラーログからスタックトレースを削除します

バージョン1.3.0

発売日 2021年4月23日

特徴

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

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

セキュリティの強化

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

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

変更点

  • ポート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 ManagerOLM展開をサポートし、その後のOperatorHub.ioでのプレゼンス

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

  • AKSでのE2Eテストの改善

  • マイナーなバグ修正

バージョン1.1.0

発売日 2021年3月3日

  • JSONおよびYAML出力を含むクラスターのステータスを整形印刷するためにkubectl cnp status を追加

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

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

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

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

  • SIGINT 信号高速シャットダウンをSIGTERM のPostgreSQLプロセスに送信します

  • マイナーなバグ修正

バージョン1.0.0

発売日 2021年2月4日

CloudNativePGの最初のメジャー安定リリースは、APIグループpostgresql.cnpg.io/v1ClusterBackup 、およびScheduledBackup を実装します。これらのリソースを使用して、次の主な機能を使用してKubernetes内でPostgreSQLクラスターを作成および管理します。

  • 外部ツールを必要とせずに、高可用性を実現するKubernetes APIサーバーとの直接統合

  • 最も調整されたレプリカ

    • レプリカの自動再作成を促進することによるプライマリインスタンスの

    • フェイルオーバーを介した自己修復機能

  • 選択したレプリカの昇格によるプライマリインスタンスの計画的なスイッチオーバー

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

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

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

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

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

  • ポッドの永続ボリュームストレージの再利用

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

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

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

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

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

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

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