MySQL Operator enables bulletproof MySQL on Kubernetes. It manages all the necessary resources for deploying and managing a highly available MySQL cluster. It provides effortless backups, while keeping the cluster highly available.
MySQL Operator was developed by the awesome engineering team at Presslabs, a Smart Managed WordPress Hosting platform.
For more open-source projects, check Presslabs Code.
The main goals of this operator are:
The operator is to be considered alpha and not suitable for critical production workloads. We, Presslabs, sucessfully use it at the moment for some non-critical production workloads.
We welcome all contributions in the form of new issues for feature requests, bugs or even pull requests. We are open to discuss ideas on how to improve the operator and would also love to find out where and how it's used. The discussion related to this project should happen on the Kubernetes Community Slack. The current maintainers of this project can be reached via email, too.
To deploy this controller, use the provided helm chart by running:
helm repo add presslabs https://presslabs.github.io/charts helm install presslabs/mysql-operator --name mysql-operator
NOTE: MySQL operator 0.2.x requires at least Kubernetes 1.11.x (or 1.10.x with alpha features) while version 0.1.x is known to work with Kubernetes up 1.9.x. To upgrade, check the 0.2.x upgrade notes as some additional steps are required.
Maybe upgrading the MySQL operator to a newer version requires additional steps. Those steps can be found in the operator's documentation at upgrades section.
kubectl apply -f https://raw.githubusercontent.com/presslabs/mysql-operator/master/examples/example-cluster-secret.yaml kubectl apply -f https://raw.githubusercontent.com/presslabs/mysql-operator/master/examples/example-cluster.yaml
This project uses Percona Server for MySQL 5.7 because of backup improvements (eg. backup locks), monitoring improvements and some serviceability improvements (eg. utility user). Although we could have used MariaDB, our primary focus being WordPress, we wanted a drop-in rather than a fork. In the future we might support MariaDB if that can be implemented in a compatible way.
This project is licensed under Apache 2.0 license. Read the LICENSE file in the top distribution directory for the full license text.