リリースハイライト
自動ボリュームサイズ変更の一般提供
以前のリリースでテクニカルプレビューとして導入された、PerconaXtraDBClusterカスタムリソースのresources.requests.storageオプションの値を変更するだけで永続ボリュームのサイズを変更できる機能が、一般提供に変わりました。
haproxy-replicaサービスがリーダーインスタンスのみを循環できるようにする
デフォルトでは、haproxy-replicaサービスは、データベースクラスターの全てのPodへの接続をラウンドロビン方式で誘導します。新しいhaproxy.exposeReplicas.onlyReadersカスタムリソースオプションを使用すると、この動作を変更できます。これをtrueに設定すると、現在のMySQLプライマリインスタンス(ライター)がリストから除外され、リーダーインスタンスのみが残ります。デフォルトでは、このオプションはfalseに設定されており、haproxy-replicasはアクティブなライターを含む全てのPodにトラフィックを送信します。この機能は、Kubernetesレベルで読み取りと書き込みのMySQLトラフィックを分割することによって、アプリケーションロジックを簡素化するのに役立ちます。
また、haproxy.exposeReplicas.onlyReadersの値を変更すると、HAProxy Podが再起動されることに注意してください。
オーバーロードされたallowUnsafeConfigurationsフラグの修正
以前のOperatorバージョンでは、allowUnsafeConfigurationsカスタムリソースオプションは、安全でないパラメータを使用してクラスターを設定できるようにするために使用されました(Percona XtraDB Clusterインスタンスが3つ未満でクラスターを起動するなど)。実際、このオプションをtrueに設定すると、ユーザーの明示的な意図なしに、様々な安全機能が削減されました:TLSが無効になる、不健全なクラスターでのバックアップが許可されるなど。
このリリースでは、安全性を緩める機能をきめ細かく制御するための別のunsafeFlagsカスタムリソースセクションが導入されました:
unsafeFlags:
tls: false |
適切なオプションがfalseに設定され、Operatorが安全でないパラメータを検出すると、クラスターのステータスがエラーに設定され、ログにエラーメッセージが出力されます。
また、unsafeFlags.tlsおよびtls.enabledカスタムリソースオプションをtrueまたはfalseに設定することで、TLS設定を有効または無効にできるようになりました。
新機能
- K8SPXC-1330: 新しいhaproxy.exposeReplicas.onlyReadersカスタムリソースオプションにより、haproxy-replicasサービスは、プライマリ(ライター)インスタンスを回避して、MySQLクラスターのリーダーインスタンスにリクエストを転送します。
- K8SPXC-1355: ファイナライザーの名前が変更され、完全修飾ドメイン名(FQDN)が含まれるようになりました。これにより、同じKubernetes環境内の他のファイナライザー名との潜在的な競合が回避されます。
改善点
- K8SPXC-1357: HAProxy Podは、Operatorユーザーのパスワードが変更されても再起動しなくなりました。これは、MySQLへの永続的な接続を持つアプリケーションにとって便利です。
- K8SPXC-1358: allowUnsafeConfigurationsカスタムリソースオプションを削除し、unsafeFlagsサブセクションでのきめ細かな安全性制御を優先します。
- K8SPXC-1368: Percona XtraDB Cluster VolumesのKubernetes PVC DataSourcesは、カスタムリソースのpxc.volumeSpec.persistentVolumeClaim.dataSourceサブセクションを介して正式にサポートされるようになりました
- K8SPXC-1385: 動的ボリュームのサイズ変更は、リソースクォータとPVCストレージ制限がチェックするようになりました。
- K8SPXC-1423: percona.com/delete-pxc-pvcファイナライザーは、オペレーターによって作成された一時的なシークレットも削除できるようになりました。
修正されたバグ
- K8SPXC-1067: haproxyカスタムリソースサブセクションのgracePeriod、nodeSelector、priorityClassName、runtimeClassName、schedulerNameフィールドを変更しても、haproxy StatefulSetに変更が反映されないバグを修正しました。
- K8SPXC-1338: Percona XtraDB Clusterのローリング再起動中にバイナリログコレクター Podが不要な再起動を行うバグを修正しました。
- K8SPXC-1364: Percona XtraDB Clusterのカスタム設定でproxy_protocol_networksオプションが有効になっている時にログローテーション機能が動作しないバグを修正しました。
- K8SPXC-1365: 複数の名前空間がwatchNamespaceオプションで指定されている場合に名前空間を作成できないpxc-operator Helmチャートのバグを修正しました。
- K8SPXC-1371: 1.14.0リリースのPercona XtraDB Clusterバージョンが間違っており、Helmチャートのアップグレード時にデータベースをダウングレードしようとするpxc-db Helmチャートのバグを修正しました。
- K8SPXC-1380: 復元ジョブ Podのリソースリクエストの値がリソース制限の値で上書きされるバグを修正しました。
- K8SPXC-1381: HAProxyチェックスクリプトがPXCインスタンスの「オフライン」状態の可能性を全て正しく識別していなかったため、アプリケーションがクエリを処理できないインスタンスに接続していたバグを修正しました。
- K8SPXC-1382: s3.credentialsSecretカスタムリソースオプションが存在しない場合、S3ストレージへのバックアップの作成が自動的に失敗するバグを修正しました。
- K8SPXC-1396: xtrabackupユーザーは自身の権限レベルで利用可能な権限を他のユーザーに付与する権利がなかったため、アクセスが拒否されたためにポイントインタイムリカバリが失敗しました。
- K8SPXC-1408: Operatorは、binlogギャップが検出された場合、PiTRの復元のみをブロックするのではなく、全ての復元(PiTRのない復元を含む)をブロックするバグを修正しました。
- K8SPXC-1418: cert-managerによって生成されたCA証明書の有効期限が、内部および外部通信に使用される証明書を含む、他の生成された証明書にOperatorが使用する3年間ではなく1年間になるバグを修正しました。
非推奨、名前変更、削除
- 今後は、allowUnsafeConfigurationsカスタムリソースオプションは非推奨となり、代わりにunsafeFlagsサブセクションのいくつかのオプションが採用されます。また、今後は、Operatorは安全なデフォルトを自動的に設定しなくなります。allowUnsafeConfiguration=falseおよび安全でないと見なされる設定(pxc.size<3またはtls.enabled=falseなど)で既存のクラスターをアップグレードすると、ログにエラーが出力され、値が修正されるまでクラスターはエラー状態になります。
- ファイナライザーの名前が変更され、完全修飾ドメイン名が含まれるようになりました:
- delete-pxc-pods-in-orderの名前がpercona.com/delete-pxc-pods-in-orderに変更されました
- delete-sslの名前がpercona.com/delete-sslに変更されました
- delete-proxysql-pvcの名前がpercona.com/delete-proxysql-pvcに変更されました
- delete-pxc-pvcの名前がpercona.com/delete-pxc-pvcに変更されました
- pxc-operator HelmチャートにcreateNamespaceオプションが追加され、デフォルトでfalseに設定されました。これにより、ユーザーが明示的に許可しない限り、名前空間は作成されなくなります
サポートされているプラットフォーム
Operatorは、Percona XtraDB Cluster バージョン 8.0.36-28.1および5.7.44-31.65を使用して開発およびテストされました。他のオプションも機能する可能性がありますが、テストされていません。その他のソフトウェアコンポーネントには次のものがあります:
- Percona XtraBackup バージョン 8.0.35-30.1および2.4.29-1
- HAProxy 2.8.5
- ProxySQL 2.5.5
- fluent-bit 3.1.4に基づくLogCollector
- PMM Client 2.42.0
次のプラットフォームはテスト済みで、Operator 1.15.0によって正式にサポートされています:
- Google Kubernetes Engine (GKE) 1.27 - 1.30
- Amazon Elastic Container Service for Kubernetes (EKS) 1.28 - 1.30
- Azure Kubernetes Service (AKS) 1.28 - 1.30
- OpenShift 4.13.46 - 4.16.7
- Minikube 1.33.1 based on Kubernetes 1.30.0
- Kubernetes 1.30.0 に基づく Minikube 1.33.1
このリストには、リリースプロセスの一環としてPercona Operatorが具体的にテストされているプラットフォームのみが含まれています。その他のKubernetesフレーバーとバージョンは、Kubernetes自体が提供する下位互換性に依存します。
Percona Operator for MySQL based on Percona XtraDB Cluster 1.15.0 リリースノート(Percona社ウェブサイト):
https://docs.percona.com/percona-operator-for-mysql/pxc/ReleaseNotes/Kubernetes-Operator-for-PXC-RN1.15.0.html
Perconaサポート・コンサルティング
Perconaサポート・コンサルティングサービスはPercona Serverをご利用頂いているお客様が安心してお使い頂くために専門的なサポートを提供するサービスです。