Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/radondb/radondb-mysql-kubernetes
Open Source,High Availability Cluster,based on MySQL
https://github.com/radondb/radondb-mysql-kubernetes
cloud-native daas data-as-a-service data-cloud database-as-a-service golang high-availability high-available high-performance k8s kubernetes kubesphere kubesphere-platforms mysql mysql-operator operator radondb-mysql raft rancher-compose stability
Last synced: 29 days ago
JSON representation
Open Source,High Availability Cluster,based on MySQL
- Host: GitHub
- URL: https://github.com/radondb/radondb-mysql-kubernetes
- Owner: radondb
- License: apache-2.0
- Created: 2021-03-09T09:00:06.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-08-13T08:25:20.000Z (3 months ago)
- Last Synced: 2024-10-02T07:41:04.023Z (about 1 month ago)
- Topics: cloud-native, daas, data-as-a-service, data-cloud, database-as-a-service, golang, high-availability, high-available, high-performance, k8s, kubernetes, kubesphere, kubesphere-platforms, mysql, mysql-operator, operator, radondb-mysql, raft, rancher-compose, stability
- Language: Go
- Homepage:
- Size: 17.9 MB
- Stars: 353
- Watchers: 13
- Forks: 83
- Open Issues: 109
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
> English | [简体中文](README_zh.md)
Open-source cloud-native database on Kubernetes----
# 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](https://kubernetes.io/), [KubeSphere](https://kubesphere.com.cn/) and [Rancher](https://rancher.com), 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**](docs/en-us/backup_and_restoration_s3.md) and [**NFS backups**](docs/en-us/backup_and_restoration_nfs.md)
🎈 **Log management**
👨 **Account management**
🎨 [**Others**](docs/en-us/)
## 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](https://github.com/radondb/xenon.git)
## 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.
```plain
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](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/) named `demo-mysql-operator`.
```plain
helm install demo radondb/mysql-operator
```
> **Notice**> This step also creates the [CRD](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) 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](https://github.com/radondb/radondb-mysql-kubernetes/blob/main/docs/zh-cn/config_para.md).
```plain
kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/latest/download/mysql_v1alpha1_mysqlcluster.yaml
```📖 For more information, see the documentation:
* [Deploy RadonDB MySQL on Kubernetes](https://github.com/radondb/radondb-mysql-kubernetes/blob/main/docs/en-us/deploy_radondb-mysql_operator_on_k8s.md)
* [Deploy RadonDB MySQL on KubeSphere](https://github.com/radondb/radondb-mysql-kubernetes/blob/main/docs/en-us/deploy_radondb-mysql_operator_on_kubesphere.md)
* [Deploy RadonDB MySQL on Rancher](https://github.com/radondb/radondb-mysql-kubernetes/blob/main/docs/en-us/deploy_radondb-mysql_operator_on_rancher.md)
* [All documents](https://radondb.com/en/docs/mysql/)# Who are using RadonDB MySQL
![](docs/images/%E5%AE%A2%E6%88%B7%E6%A1%88%E4%BE%8B.png)
## License
RadonDB MySQL is based on Apache 2.0 protocol. See [License](https://github.com/radondb/radondb-mysql-kubernetes/blob/main/LICENSE).
## Welcome to join us ❤️
😊 Website: [https://radondb.com/](https://radondb.com/en/)
😁 Forum: Please join the [RadonDB](https://kubesphere.com.cn/forum/t/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](https://github.com/radondb/radondb-mysql-kubernetes/issues) on GitHub or feedback on the [forum](https://kubesphere.com.cn/forum/t/RadonDB).
![Alt](https://repobeats.axiom.co/api/embed/19bb69a6ba32252bdcbdbfb393cfbebd070b3b9f.svg "Repobeats analytics image")