この記事はMySQL Operator for Kubernetes Reaches General Availability! (2022/5/12掲載)の翻訳版です。本記事に関する最新情報は別途ご確認ください。
ワークロードの分散は、システム管理者やDBA、アプリケーション開発者など、それぞれのチームを悩ませる複雑な問題でした。しかし、最近ではクラウドネイティブアーキテクチャとKubernetesが様々な業界において標準となりました。
Kubernetesは異なるマシン間でワークロードを管理するための標準的な環境であり、オンプレミスでも主要なクラウドプロバイダーでもサポートされています。また、要求された状態を宣言的に記述することでコンテナ化されたワークロードをデプロイし、記述に誤りがあったとしても要求されたワークロードをデプロイするために機能し、望ましいとされた状態を維持します。
従来Kubernetesはシンプルなステートレスマイクロサービスにフォーカスしていましたが、他のワークロードもカバーするようになったため、幅広いソリューションに使用することができるようになりました。しかし、データベースのように特別な扱いが必要なサービスもあります。例えば、ハードウェアの故障などでKubernetesがシステムの配置を変更した場合でも、レプリケーションの設定を継続的に維持する場合です。このようなサービスに対応するために、Kubernetesはオペレーターで拡張することができ、特別なサービスをKubernetesプラットフォームと連携させます。
この度MySQL 8.0.29のリリースに伴い、MySQL開発チームは新しいMySQL Operator for Kubernetesが一般公開(GAステータス)に到達したことを発表しました。
MySQL Operator for Kubernetesは、Kubernetes Cluster内のMySQL InnoDB Clusterのライフサイクルをサポートします。これは、TLS証明書の管理やレプリケーションの設定も含めたMySQLサーバーとMySQL Routerインスタンスデプロイの簡易化、さらにバックアップのサポート(単発のバックアップやスケジュールされたバックアップなど)にまで及びます。

MySQL Operatorは、デプロイ時にKubernetes Clusterの内部で動作し、望ましい状態と現状の変化を監視し、必要なKubernetesプリンシパルを構成することで統合します。Kubernetesプラットフォームを最大限に活用するには、KubernetesのStatefulSet、Deployments、Jobsおよび関連するプリミティブを活用します。また、オペレーターはTLS通信をデフォルトとしており、推奨されているTLS証明書の使用やコンテナの機能を制限することによって、セキュリティを確保します。
一般公開となったMySQL Operator for Kubernetesは、MySQL Enterprise EditionおよびMySQL Community Editionの一部として、お客様に提供されます。
詳細については、GitHubのプロジェクトページやドキュメントをご覧ください。
このブログでも様々な機能を紹介していきます。

