bitpoke/mysql-operator
bitpoke/mysql-operator has 1,090 GitHub stars and 273 forks. GitHot measured 0 stars in 24 hours and -1 in 7 days. Last checked 2026-11-12 07:13 UTC. Last push 2024-08-08.
Asynchronous MySQL Replication on Kubernetes using Percona Server and Openark's Orchestrator.
측정된 스타 증가
- in 24h
- 0
- in 7 days
- -1
- in 15 days
- 업데이트 지연
- in 1 month
- 업데이트 지연
서로 겹치는 기간의 순증가량이며 일별 합계가 아닙니다. 측정값이 없으면 비워 둡니다. 스타는 관심도를 나타내며 품질을 보장하지 않습니다.
README.md
OriginalMySQL 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.
:beer: :pizza: :coffee: If the operator has helped you out with your projects, please consider sponsoring it to speed up the development. Issues are answered in this repo on a best-effort basis.
:wrench: :nut_and_bolt: :hammer: For paid commercial support, deployment, integration and prioritizing of features, please check the dedicated service provided by Bitpoke.
The operator has been developed by Bitpoke for internal use to run WordPress in a cloud-native app and has been open-sourced for the general public to benefit.
Goals and status
The main goals of this operator are:
- Easily deploy MySQL clusters in Kubernetes (cluster-per-service model)
- Friendly to devops (monitoring, availability, scalability and backup stories solved)
- Out-of-the-box backups (scheduled and on demand) and point-in-time recovery
- 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
It is possible that 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 / 8.0 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.
관련 프로젝트 살펴보기
Asabeneh/30-Days-Of-Python
30 Days of Python 프로그래밍 챌린지는 Python 프로그래밍 언어를 30일 동안 배우기 위한 단계별 가이드입니다. 이 챌린지는 100일 이상 걸릴 수 있습니다. 자신의 속도에 맞춰 진행하세요. 다음 동영상도 도움이 될 수 있습니다: https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 스타grafana/grafana
개방적이고 조합 가능한 옵저버빌리티 및 데이터 시각화 플랫폼입니다. Prometheus, Loki, Elasticsearch, InfluxDB, Postgres 등 여러 소스의 메트릭, 로그, 트레이스를 시각화합니다.
77,859 스타redis/redis
실시간 데이터 기반 애플리케이션을 구축하는 개발자에게 Redis는 가장 선호되고, 가장 빠르며, 기능이 가장 풍부한 캐시, 데이터 구조 서버이자 문서 및 벡터 쿼리 엔진입니다.
77,472 스타apache/superset
Apache Superset는 데이터 시각화 및 데이터 탐색 플랫폼입니다.
75,495 스타