Distributing workloads over machines has long been a complicated issue where different teams, like sysadmins, DBAs, application developers, etc., stepped on each other’s feet. In recent times however Cloud Native Architectures and Kubernetes became a standard across multiple industries.

Kubernetes is a standardized environment for managing workloads across different machines, which is supported both for on premise deployment as by all major cloud providers. Kubernetes works by deploying containerized workloads by providing declarative descriptions of the demanded state and the Kubernetes system then tries its best to deploy the requested workloads and keeping things in the desired state in case of mistakes.

Originally Kubernetes was focused on simple stateless microservices but quickly grew to cover other workloads as well and therefore can be used for a wide range of solutions. However some services, like databases, need a special treatment. The obvious example being the continuous maintenance of the replication configuration, even if Kubernetes rearranges the system, for instance after an hardware failure. For dealing with this kind of service Kubernetes can be extended with operators, which tie a special kind of service to the Kubernetes platform.

With the recent release of MySQL 8.0.29 the MySQL development team is proud to announce that the new MySQL Operator for Kubernetes reached it’s qualification as GA.

The MySQL Operator for Kubernetes supports the lifecycle of a MySQL InnoDB Cluster inside a Kubernetes Cluster. This goes from simplifying the deployment of MySQL Server and MySQL Router instances, including management of TLS certificates and replication setup, over ongoing management of those as well as support for backups, be it one-of backups or following a schedule.

Architecture Diagram of MySQL Operator for Kubernetes


When deploying the MySQL Operator will run inside the Kubernetes Cluster and  watch for changes to the desired state or reality and will bring them together by configuring the desired Kubernetes principals. To make best use of the Kubernetes platform it will lean on Kubernetes’s StatefulSet, Deployments, Jobs and related primitives. The operator also ensures security by defaulting to TLS communication, encouraging usage of TLS certificates and restricting the container’s capabilities.

Being a GA product the MySQL Operator for Kubernetes is available to our customers as part of the MySQL Enterprise Edition, as well as the MySQL Community Edition.

For more information watch this blog for further articles to come which will introduce different features, check the GitHub project page and documentation.