radondb-mysql-kubernetes

Open Source,High Availability Cluster,based on MySQL

APACHE-2.0 License

Stars
353
Committers
16

English | 简体中文


What is RadonDB MySQL

RadonDB MySQL is an open-source, cloud-native, and high-availability cluster solution based on MySQL. It adopts the architecture of one leader node and multiple replicas, with management capabilities for security, automatic backups, monitoring and alerting, automatic scaling, and so on.

RadonDB MySQL Kubernetes supports installation, deployment and management of RadonDB MySQL clusters on Kubernetes, KubeSphere and Rancher, and automates tasks involved in running RadonDB MySQL clusters.

Features

🧠 High-availability MySQL: Automatic decentralized leader election, failover within seconds, and strong data consistency in cluster switching

✏️ Cluster management

💻 Monitoring and alerting

✍️ S3 backups and NFS backups

🎈 Log management

👨 Account management

🎨 Others

Architecture

  1. Automatic decentralized leader election by the Raft protocol

  2. Synchronizing data by Semi-Sync replication based on GTID mode

  3. Supporting high-availability through Xenon

Roadmap

Version Features Mode
3.0 Automatic O&M Multiple node roles Disaster recovery SSL transmission encryption Operator
2.0 Node management Cluster upgrade Backup and recovery Automatic failover Automatic node rebuilding Account management (API) Operator
1.0 Cluster management Monitoring and alerting Log management Account management Helm

Quick start

👀 This tutorial demonstrates how to deploy a RadonDB MySQL cluster (Operator) on Kubernetes.

Preparation

📦 Prepare a Kubernetes cluster.

Steps

Step 1: Add a Helm repository.

helm repo add radondb https://radondb.github.io/radondb-mysql-kubernetes/

Step 2: Install Operator.

Set the release name to demo and create a Deployment named demo-mysql-operator.

helm install demo radondb/mysql-operator

Notice

This step also creates the CRD required by the cluster.

Step 3: Deploy a RadonDB MySQL Cluster.

Run the following command to create an instance of the mysqlclusters.mysql.radondb.com CRD and thereby create a RadonDB MySQL cluster by using the default parameters. To customize the cluster parameters, see Configuration Parameters.

kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml

📖 For more information, see the documentation:

Who are using RadonDB MySQL

License

RadonDB MySQL is based on Apache 2.0 protocol. See License.

Welcome to join us ❤️

😊 Website: https://radondb.com/

😁 Forum: Please join the RadonDB section of kubesphere Developer Forum.

🦉 Community WeChat group: Please add the group assistant radondb to invite you into the group.

For any bugs, questions, or suggestions about RadonDB MySQL, please create an issue on GitHub or feedback on the forum.