All Projects → bitpoke → mysql-operator

bitpoke / mysql-operator

Licence: Apache-2.0 license
Asynchronous MySQL Replication on Kubernetes using Percona Server and Openark's Orchestrator.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects
Dockerfile
14818 projects
python
139335 projects - #7 most used programming language
Smarty
1635 projects

Projects that are alternatives of or similar to mysql-operator

Kudo
Kubernetes Universal Declarative Operator (KUDO)
Stars: ✭ 849 (+4.81%)
Mutual labels:  operator, kubernetes-operator, kubernetes-controller
K8up
Kubernetes and OpenShift Backup Operator
Stars: ✭ 130 (-83.95%)
Mutual labels:  operator, kubernetes-operator
td-redis-operator
一款强大的云原生redis-operator,经过大规模生产级运行考验,支持分布式集群、支持主备切换等缓存集群解决方案…The powerful cloud-native redis-operator, which has passed the test of large-scale production-level operation, supports distributed clusters and active/standby switching ...
Stars: ✭ 327 (-59.63%)
Mutual labels:  operator, kubernetes-operator
Mongodb Enterprise Kubernetes
MongoDB Enterprise Kubernetes Operator
Stars: ✭ 232 (-71.36%)
Mutual labels:  operator, kubernetes-operator
K8s Mediaserver Operator
Repository for k8s Mediaserver Operator project
Stars: ✭ 81 (-90%)
Mutual labels:  operator, kubernetes-operator
Postgres Operator
Production PostgreSQL for Kubernetes, from high availability Postgres clusters to full-scale database-as-a-service.
Stars: ✭ 2,166 (+167.41%)
Mutual labels:  operator, kubernetes-operator
Argocd Operator
A Kubernetes operator for managing Argo CD clusters.
Stars: ✭ 151 (-81.36%)
Mutual labels:  operator, kubernetes-operator
cmak-operator
CMAK (prev. Kafka Manager) for Kubernetes
Stars: ✭ 45 (-94.44%)
Mutual labels:  operator, kubernetes-operator
microcks-ansible-operator
Kubernetes Operator for easy setup and management of Microcks installs
Stars: ✭ 21 (-97.41%)
Mutual labels:  operator, kubernetes-operator
kubegres
Kubegres is a Kubernetes operator allowing to deploy one or many clusters of PostgreSql instances and manage databases replication, failover and backup.
Stars: ✭ 1,107 (+36.67%)
Mutual labels:  operator, kubernetes-operator
Container Security Operator
Identify image vulnerabilities in Kubernetes pods
Stars: ✭ 68 (-91.6%)
Mutual labels:  operator, kubernetes-operator
kotary
Managing Kubernetes Quota with confidence
Stars: ✭ 85 (-89.51%)
Mutual labels:  kubernetes-operator, kubernetes-controller
Cluster Operator
cluster-operator creates, configures and helps manage StorageOS cluster on Kubernetes
Stars: ✭ 50 (-93.83%)
Mutual labels:  operator, kubernetes-operator
Harbor Operator
Kubernetes operator for Harbor service components
Stars: ✭ 130 (-83.95%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just few lines of code.
Stars: ✭ 971 (+19.88%)
Mutual labels:  operator, kubernetes-operator
Eunomia
A GitOps Operator for Kubernetes
Stars: ✭ 130 (-83.95%)
Mutual labels:  operator, kubernetes-operator
Metering Operator
The Metering Operator is responsible for collecting metrics and other information about what's happening in a Kubernetes cluster, and providing a way to create reports on the collected data.
Stars: ✭ 320 (-60.49%)
Mutual labels:  operator, kubernetes-operator
Kopf
A Python framework to write Kubernetes operators in just a few lines of code
Stars: ✭ 488 (-39.75%)
Mutual labels:  operator, kubernetes-operator
pulp-operator
Kubernetes Operator for Pulp 3. Under active development.
Stars: ✭ 32 (-96.05%)
Mutual labels:  operator, kubernetes-operator
sieve
Automatic Reliability Testing for Kubernetes Controllers
Stars: ✭ 183 (-77.41%)
Mutual labels:  operator, kubernetes-operator

MySQL Operator

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 is maintained and developed by Bitpoke, a self managed WordPress hosting app running cloud-native.

Goals and status

The main goals of this operator are:

  1. Easily deploy MySQL clusters in Kubernetes (cluster-per-service model)
  2. Friendly to devops (monitoring, availability, scalability and backup stories solved)
  3. Out-of-the-box backups (scheduled and on demand) and point-in-time recovery
  4. Support for cloning in cluster and across clusters.

Contributing

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.

Documentation

  • Getting started provides an overview over deploying and using the MySQL operator
  • Deploy a MySQL cluster describes in detail how a cluster can be installed and configured
  • Configure backups shows how to configure and take backups of a cluster
  • Recurrent backups describes how to setup recurrent backups for the cluster
  • Restore a cluster explains how to restore a cluster from a backup
  • How to integrate the operator with your deployment setup. This presents a simple way of using the MySQL operator and helm to deploy your application
  • Orchestrator shows you how to access the orchestrator for more details.

Controller deploy

To deploy this controller, use the provided helm chart by running:

helm repo add bitpoke https://helm-charts.bitpoke.io
helm install mysql-operator bitpoke/mysql-operator

For more information about chart values see chart README. This chart will deploy the controller together with an orchestrator cluster.

NOTE: MySQL operator 0.6.x requires at least Kubernetes 1.19.x to upgrade, check the 0.6.x upgrade notes as some additional steps may be required.

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.

Controller upgrade

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.

Deploying a cluster

kubectl apply -f https://raw.githubusercontent.com/bitpoke/mysql-operator/master/examples/example-cluster-secret.yaml
kubectl apply -f https://raw.githubusercontent.com/bitpoke/mysql-operator/master/examples/example-cluster.yaml

Roadmap to v1.0

  • Integration with Google Cloud Marketplace, OperatorHub.io, AWS Marketplace
  • CRD Validation and webhooks
  • SSL support
  • Default integrated with MySQL 8.0
  • Proxy SQL integration
  • Backup policies
  • Physical backups
  • HA Orchestrator integration
  • Prometheus metrics exporter
  • Lag mitigation
  • Query limits

Tech considerations

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.

License

This project is licensed under Apache 2.0 license. Read the LICENSE file in the top distribution directory for the full license text.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].