リリースハイライト
Percona Operator for MySQL based on Percona XtraDB Clusterのこのリリースには、次の新機能と改善点が含まれています:
PMM3 のサポート
Operatorは、PMM 3とネイティブに統合されており、Percona Distribution for MySQLデプロイメントの健全性とパフォーマンスを監視できると同時に、PMM 3が提供する強化されたパフォーマンス、新機能、そして改善されたセキュリティを活用できます。
オペレーターはPMM2とPMM3の両方をサポートしていることに注意してください。使用するPMMバージョンの決定は、オペレーター設定で指定する認証方法によって異なります。PMM2はAPI キーを使用し、PMM3はサービスアカウントトークンを使用します。Operator設定に両方の認証方法が含まれており、値が空でない場合は、PMM3が優先されます。
PMMを使用するために、PMMクライアントイメージがPMM Serverバージョンと互換性があることを確認してください。適切なクライアントイメージについては、Percona認定イメージをご確認ください。
PMMによる監視の設定方法については、ドキュメントを参照してください。
PMMでのマルチリージョンまたはマルチネームスペースのデプロイメントにおけるクラスターのモニタリング強化
異なるデータセンターにデプロイされたクラスターにカスタム名を定義できるようになりました。この名前は、Percona Management and Monitoring (PMM) Serverがクラスターが接続されていることを正しく認識し、それらを1つのデプロイメントとしてモニタリングするのに役立ちます。同様に、PMM Serverは、異なるネームスペースに同じ名前でデプロイされたクラスターを別々のものとして識別し、ダッシュボードにパフォーマンス指標を正しく表示します。
カスタム名を割り当てるためには、クラスターのCustom Resourceマニフェストで次の設定を定義します:
spec: pmm: customClusterName: testClusterName |
ユーザーシークレットを一致させることなく、より回復力のあるデータベース復元を実現
復元を実行するために、バックアップとターゲットクラスター間でユーザーシークレットを一致させる必要がなくなりました。Operatorには、復元されたデータベースのユーザーパスワードをローカルシークレットのパスワードに変更する復元後のステップが追加されました。また、不足しているシステムユーザーを作成し、不足している権限を追加します。
このフローは、同じクラスターに復元するか全く新しいクラスターに復元するかに関係なく、同じです。
復元用のシークレットを取得する際のこの大きな障害がなくなることで、災害復旧プロセスがよりスムーズになり、より信頼性が高まります。この機能強化により、Kubernetes上のデータベース管理がより堅牢になり、オペレーターにとって使いやすくなります。
クラウドストレージでのスケジュールされたバックアップの管理を効率化するためのバックアップ保持の改善
新しいバックアップ保持設定により、バックアップのストレージ内での管理方法とKubernetesでの保持方法をより細かく制御できます。
deleteFromStorageフラグを使用すると、AWS S3またはAzure Blobストレージからの自動削除を無効にし、代わりにネイティブのクラウドライフサイクルポリシーに依存することができます。これにより、バックアップのクリーンアップがより効率的になり、柔軟なストレージ戦略との整合性が向上します。
従来のkeepオプションは非推奨となり、互換性のために新しい保持ブロックにマッピングされました。backup.schedule.retention設定の使用を開始することをお勧めします:
schedule: - name: "sat-night-backup" schedule: "0 0 * * 6" retention: count: 3 type: count deleteFromStorage: true storageName: s3-us-west |
backup.schedule.keepとbackup.schedule.retentionの両方が定義されている場合、backup.schedule.retentionが優先されます。
Operatorのバージョンを識別するためのラベルを追加
Custom Resource Definition (CRD) は、過去の3つのOperatorバージョンと互換性があります。どのOperatorバージョンがアタッチされているかを把握できるように、全てのCustom Resource Definitionにラベルを追加しました。ラベルは、現在のOperatorバージョンを識別し、CRDを更新する必要があるかどうかを判断するのに役立ちます。ラベルを表示するためには、kubectl get crd perconaxtradbclusters.pxc.percona.com --show-labels を実行します。
Percona XtraDB Cluster 8.4でクロスサイトレプリケーションがサポートされるようになりました
Percona XtraDB Cluster 8.4.xでクロスサイトレプリケーションが利用可能になり、このデータベースバージョンにおけるOperatorの制限の1つが解除されました。この機能強化により、マルチサイトデプロイメントが可能になり、分散環境全体の耐障害性が向上するため、OperatorにおけるPercona XtraDB Cluster 8.4の一般提供に向けた大きな一歩となります。
非推奨、名称変更、および削除
- pxc.expose.loadBalancerIP、haproxy.exposePrimary.loadBalancerIP、haproxy.exposeReplicas.loadBalancerIP、proxysql.expose.loadBalancerIPキーは、非推奨となりました。loadBalancerIPフィールドは、クラウドプロバイダー間で動作が一貫していないことと、デュアルスタックのサポートが不足していることから、Kubernetesのアップストリームでも非推奨となっています。そのため、その使用は強く推奨されません。
代わりに、クラウドプロバイダー固有のアノテーションを使用することをお勧めします。それは、ロードバランサーのIP割り当てを管理するための、より予測可能で移植性の高い動作を提供します。
pxc.expose.loadBalancerIP、haproxy.exposePrimary.loadBalancerIP、haproxy.exposeReplicas.loadBalancerIP、proxysql.expose.loadBalancerIPキーは、将来のリリースで削除される予定です。
- backup.schedule.keepフィールドは非推奨となり、リリース 1.21.0以降で削除されます。代わりに、以下のように、backup.schedule.retentionを使用することをお勧めします:
schedule:
- name: "sat-night-backup"
schedule: "0 0 ** 6"
retention:
count: 3
type: count
deleteFromStorage: true
storageName: s3-us-west - Percona XtraBackupおよびLogcollectorの新しいリポジトリ
Operatorは、percona-xtrabackupおよびlogcollectorコンポーネントに公式のPercona Dockerイメージを使用するようになりました。Operatorとデータベースをアップグレードする際は、新しいイメージリポジトリにご注意ください。正確なイメージ名については、Percona認定イメージをご確認ください。
- Helmチャートの変更点:
- PMM3がデフォルトになりました。PMM2を引き続き使用するためには、pmm.tagを2.44.1に設定してください。
- OpenShift 4.19でHelmチャートを使用してデフォルトのマニフェストでOperatorをインストールまたはアップグレードする場合は、DockerHub percona-xtradb-clusterリポジトリからのダウンロードが成功することを保証するためには、docker.ioレジストリプレフィックスを使用する必要があります。詳細については、「OpenShift 4.19の使用に関する考慮事項」セクションをご覧ください。
既知の制限
OpenShift 4.19の使用に関する考慮事項
OpenShift 4.19以降、DockerHubとRed Hat Marketplaceで同じリポジトリ名を共有するリポジトリにおいて、完全修飾名ではないイメージがプルされる方法が変更されました。デフォルトでは、タグはRed Hat Marketplaceからプルされます。完全修飾名ではないイメージ名を指定すると、ImagePullBackOffエラーが発生する可能性があります。
- OLM インストール:イメージは完全修飾名で提供され、Red Hat Marketplace/DockerHubレジストリからプルされます。
- デフォルトマニフェストを使用した手動インストール/アップデート:Dockerhub percona-xtradb-clusterリポジトリからのダウンロードが成功することを保証するためには、イメージにはdocker.io レジストリプレフィックスを使用する必要があります。
手動でインストールまたはアップデートする場合は、以下の手順に従ってください。
<OpenShift 4.19にインストール>
- Operatorリポジトリのクローン作成:
$ git clone -b v1.18.0 https://github.com/percona/percona-xtradb-cluster-operator
$ cd percona-xtradb-cluster-operator - deploy/bundle.yamlファイルを編集します。
・OperatorのDeploymentカスタムリソースを見つけます。
・spec.imageフィールドを次のように更新します。docker.io/percona/percona-xtradb-cluster-operator:1.18.0 - 更新されたdeploy/bundle.yamlファイルを適用します。
$ oc apply --server-side -f deploy/bundle.yaml - Percona XtraDB Clusterをインストールします:
$ oc create -f deploy/secrets.yaml
<Operatorを1.18.0にアップデート>
- Operatorによって管理されている全てのクラスターで、initContainer.imageが設定されているかどうかをを確認します。
・定義されている場合:次の手順をスキップしてください。
・定義されていない場合:手順 2に進みます。 - initContainer.imageが未定義のクラスターにパッチを適用し、イメージパスのdocker.ioレジストリでこのイメージを定義します:
$ kubectl patch pxc cluster1 --type=merge --patch '{
"spec": {
"initcontainer": {
"image": "docker.io/percona/percona-xtradb-cluster-operator:1.17.0"
}
}
}'
重要!このコマンドはクラスターの再起動をトリガーします。クラスターが再起動し、Readyステータスを報告するまでお待ちください。
- Operatorデプロイメントを更新し、イメージパスにdocker.ioレジストリ名を指定します:
$ kubectl patch deployment percona-xtradb-cluster-operator \
-p'{"spec":{"template":{"spec":{"containers":[{"name":"percona-xtradb-cluster-operator","image":"docker.io/percona/percona-xtradb-cluster-operator:1.18.0"}]}}}}' - Custom Resourceのバージョンとデータベースクラスターを更新します。パスにdocker.ioレジストリ名を含むinitContainerイメージを指定します。PXBとlogcollectorの変更されたリポジトリに注意してください:
$ kubectl patch pxc cluster1 --type=merge --patch '{
"spec": {
"crVersion": "1.18.0",
"initContainer": "docker.io/percona/percona-xtradb-cluster-operator:1.18.0",
"pxc":{ "image": "docker.io/percona/percona-xtradb-cluster:8.0.42-33.1" },
"proxysql": { "image": "docker.io/percona/proxysql2:2.7.3" },
"haproxy": { "image": "docker.io/percona/haproxy:2.8.15" },
"backup": { "image": "docker.io/percona/percona-xtrabackup:8.0.35-34.1" },
"logcollector": { "image": "docker.io/percona/fluentbit:4.0.1" },
"pmm": { "image": "docker.io/percona/pmm-client:2.44.1-1" }
}}'
}
}'
変更履歴
新機能
- K8SPXC-1284 - ピアリストDNS SRVルックアップのプロトコルを設定する機能を追加
- K8SPXC-1599 - loadBalancerClassサービスタイプの設定と、クラウドプロバイダーのデフォルトのロードバランサーではなくカスタム実装のロードバランサーの使用が可能になりました
改善点
- K8SPXC-1375 - ユーザーがバックアップのクリーンアップをクラウドライフサイクルポリシーに委任できるように、新しい保持設定を追加しました
- K8SPXC-1376 - 一致するSecretリソースがない場合でもバックアップから復元する機能を追加しました
- K8SPXC-1399 - 災害復旧システムの設定方法とサイト間のワークロード転送方法に関するドキュメントを追加しました
- K8SPXC-1415 - 公式のpercona-xtrabackup Dockerイメージを使用するように、percona-xtrabackupイメージを更新しました
- K8SPXC-1430 - delete-sslファイナライザーの設定に応じて、自動生成された証明書の処理を改善しました
- K8SPXC-1448、K8SPXC-1449 - EKS用のカスタムストレージクラスを使用することでpvc-resizeテストを改善し、エラーを削減し、サイズ変更時のクォータ処理を改善しました
- K8SPXC-1450 - クォータに達した時に値を元に戻すことでストレージサイズを縮小する際のPVCサイズ変更動作を改善しました
- K8SPXC-1472 - loadBalancerIPフィールドはそのアップストリームで非推奨となったため非推奨となりました
- K8SPXC-1513 - バージョンサービスにPXC 8.4のサポートを追加しました
- K8SPXC-1529 - default_authentication_pluginの代わりにauthentication_policyの使用を追加することで、MySQL 8.4.0でのクロスサイトレプリケーションのサポートを追加しました
- K8SPXC-1553 - PMM v3のサポートを追加しました
- K8SPXC-1560 - helmのアップグレード後にCRDが自動的にアップグレードされないことに関する警告を出力に追加しました
- K8SPXC-1566 - プロキシをバイパスしてデータベースポッドを起動することにより、プロキシポッドなしでのreplicationChannelの調整が改善されました
- K8SPXC-1569 - Custom Resource Definitions (CRD)にラベルを追加して、それにアタッチされたOperatorバージョンを識別できるようにしました
- K8SPXC-1597 - クラスターが正常な状態を報告するまでジョブを延期することで、異常な状態のクラスターのスケジュールされたバックアップの動作を改善します
- K8SPXC-1605 - Azureストレージにバックアップオブジェクト/フォルダーが存在するかどうかを確認するためのAzure CLIを導入しました
- K8SPXC-1612 - PMMイメージ用のimagePullSecretsを追加しました
- K8SPXC-1615 - pmm-adminコンポーネントにカスタムクラスター名を定義する機能を追加しました
- K8SPXC-1624 - 非推奨のファイナライザーコードを削除しました
- K8SPXC-1669 - ストレージのデフォルトエンドポイントURLが提供されていない場合に、リージョンからそのURLを生成することでバックアップフローを改善します
- K8SPXC-1677 - OpenShift 4.19のデフォルトマニフェストのイメージをプルする際の動作の変更と、インストールおよび更新手順の更新をドキュメント化します
修正されたバグ
- K8SPXC-1312 - Custom Resourceの変更時にポイントインタイムリカバリデプロイメントでラベルが自動的に更新されない問題を修正しました
- K8SPXC-1347 - サーバーで必要な場合にTLSを使用するように設定することで、サーバーとポイントインタイムリカバリジョブ間のTLS設定の不一致によりポイントインタイムリカバリが失敗する問題を修正しました。
- K8SPXC-1382 - 明示的に指定した場合にのみcredentialSecretを使用し、代わりにIAMロールに依存することにより、credentialsSecretなしでIAMプロファイルを使用するとAWSでバックアップが失敗する問題を修正しました。
- K8SPXC-1541 - クラスター全体モードで、空の文字列 “”とカンマ区切りの名前空間の両方を考慮するように、Telemetryモジュールを修正しました
- K8SPXC-1548 - オブジェクトパスを削除する前にURLデコードすることで、Google Cloud Storage上の古いバックアップを削除する際の問題を修正しました
- K8SPXC-1631 - クラスターの準備完了後にOperatorがpod-0を再起動する問題を修正しました。この問題は、ConfigMapとStatefulSetが互いに近すぎる場所に作成され、Kubernetes APIがStatefulSetを作成する前に新しく作成されたConfigMapを返すことができないために発生します。この問題は、ConfigMapの調整が完了した後にStatefulSetを調整することで修正されます。
- K8SPXC-1664 - HAProxyによってPXCノードを追加する際にPXCノードをチェックするための適切なスクリプトの使用を修正しました
サポートされているソフトウェア
Operatorは、以下のソフトウェアを使用して開発およびテストされています:
- Percona XtraDB Cluster バージョン 8.4.5-5.1 (テクニカルプレビュー)、8.0.42-33.1、および 5.7.44-31.65
- Percona XtraBackup バージョン 8.4.0-3、8.0.35-34.1、および 2.4.29
- HAProxy 2.8.15-1
- ProxySQL 2.7.3
- Fluent-bit 4.0.1 ベースの LogCollector
- PMM Client 2.44.1 および 3.3.1
その他のオプションも動作する可能性がありますが、テストは行われていません。
サポートされているプラットフォーム
Percona Operatorは、CNCF認定の全てのKubernetesディストリビューションとの互換性を考慮して設計されています。リリースプロセスには、主要なクラウドプロバイダープラットフォームとOpenShiftを対象としたテストと検証が含まれています。Operator バージョン 1.16.0の詳細は以下をご覧ください:
- Google Kubernetes Engine (GKE) 1.30 - 1.33
- Amazon Elastic Container Service for Kubernetes (EKS) 1.30 - 1.33
- Azure Kubernetes Service (AKS) 1.30 - 1.33
- OpenShift 4.15 - 4.19
- Minikube 1.36.0 based on Kubernetes 1.33.1
このリストには、リリースプロセスの一環としてPercona Operatorが具体的にテストされているプラットフォームのみが記載されています。その他のKubernetesのフレーバーおよびバージョンは、Kubernetes自体が提供する後方互換性に依存します。
Percona認定イメージ
Percona Operator for MySQL based on Percona XtraDB Clusterで使用できるPerconaの認定Dockerイメージを以下の表でご確認ください。
Operator バージョン 1.18.0でリリースされたイメージ:
イメージ | ダイジェスト |
---|---|
percona/percona-xtradb-cluster-operator:1.18.0 (x86_64) | 0eca0b096482c7d09792c15fee00dbdcd0fbf3cd487dab60eb2774b025681e85 |
percona/percona-xtradb-cluster-operator:1.18.0 (ARM64) | bdb7a0ff6b78e98b16f8b521e91682202b6d404202283b34b8168013d5c06356 |
percona/haproxy:2.8.15 | 49e6987a1c8b27e9111ae1f1168dd51f2840eb6d939ffc157358f0f259819006 |
percona/proxysql2:2.7.3 | 51fedf9de05e4f130d5b08388511536fb1e1050a24ffc21bedb0f0b61a236567 |
percona/percona-xtrabackup:8.4.0-3.1 | 01071522753ad94e11a897859bba4713316d08e493e23555c0094d68da223730 |
percona/percona-xtrabackup:8.0.35-34.1 | 2dc127b08971051296d421b22aa861bb0330cf702b4b0246ae31053b0f01911e |
percona/percona-xtrabackup:2.4.29 | 11b92a7f7362379fc6b0de92382706153f2ac007ebf0d7ca25bac2c7303fdf10 |
percona/fluentbit:4.0.1 | a4ab7dd10379ccf74607f6b05225c4996eeff53b628bda94e615781a1f58b779 |
percona/pmm-client:3.3.1 | 29a9bb1c69fef8bedc4d4a9ed0ae8224a8623fd3eb8676ef40b13fd044188cb4 |
percona/pmm-client:2.44.1-1 | 52a8fb5e8f912eef1ff8a117ea323c401e278908ce29928dafc23fac1db4f1e3 |
percona/percona-xtradb-cluster:8.4.5-5.1 | 918c54c11c96bf61bb3f32315ef6b344b7b1d68a0457a47a3804eca3932b2b17 |
percona/percona-xtradb-cluster:8.0.42-33.1 | 476851339090e44bb72760ae718fc36beb73a6028a29459e849271649018d546 |
percona/percona-xtradb-cluster:8.0.41-32.1 | d9c84884a12631306d5a33a079e30bf7b65d3d380b07b397d7b1b6a642cc6bff |
percona/percona-xtradb-cluster:8.0.39-30.1 | 6a53a6ad4e7d2c2fb404d274d993414a22cb67beecf7228df9d5d994e7a09966 |
percona/percona-xtradb-cluster:8.0.36-28.1 | b5cc4034ccfb0186d6a734cb749ae17f013b027e9e64746b2c876e8beef379b3 |
percona/percona-xtradb-cluster:8.0.35-27.1 | 1ef24953591ef1c1ce39576843d5615d4060fd09458c7a39ebc3e2eda7ef486b |
percona/percona-xtradb-cluster:5.7.44-31.65 | 36fafdef46485839d4ff7c6dc73b4542b07031644c0152e911acb9734ff2be85 |
percona/percona-xtradb-cluster:5.7.42-31.65 | 9dab86780f86ec9caf8e1032a563c131904b75a37edeaec159a93f7d0c16c603 |
percona/percona-xtradb-cluster:5.7.39-31.61 | 9013170a71559bbac92ba9c2e986db9bda3a8a9e39ee1ee350e0ee94488bb6d7 |
percona/percona-xtradb-cluster:5.7.36-31.55 | c7bad990fc7ca0fde89240e921052f49da08b67c7c6dc54239593d61710be504 |
percona/percona-xtradb-cluster:5.7.34-31.51 | f8d51d7932b9bb1a5a896c7ae440256230eb69b55798ff37397aabfd58b80ccb |
Percona Operator for MySQL based on Percona XtraDB Cluster 1.18.0 リリースノート(Percona社ウェブサイト):
https://docs.percona.com/percona-operator-for-mysql/pxc/ReleaseNotes/Kubernetes-Operator-for-PXC-RN1.18.0.html
Perconaサポート・コンサルティング
Perconaサポート・コンサルティングサービスはPercona Serverをご利用頂いているお客様が安心してお使い頂くために専門的なサポートを提供するサービスです。