一、项目简介

RadonDB MySQL Kubernetes 是基于 Kubernetes 的企业级 MySQL 高可用集群解决方案,核心特性包括:

  1. Raft协议去中心化选举
    通过内置Raft共识算法实现自动领导者选举,当主节点故障时,集群可在秒级内完成故障转移,保障业务连续性。

  2. GTID半同步复制
    基于GTID(全局事务标识)的半同步复制机制,确保数据强一致性,同时兼顾性能与可靠性。

  3. Xenon高可用组件
    集成Xenon中间件,实现自动故障检测、脑裂防护及数据同步优化,构建金融级高可用架构。
    在这里插入图片描述

二、安装前准备

1. Kubernetes集群部署

可以尝试使用fastdp-ops快速部署K8s集群,支持单节点/多节点模式,兼容主流操作系统。

2. 镜像加速配置

国内从 Docker Hub 拉取镜像有时会遇到困难拉取失败。虽然可以配国内镜像源加速拉取镜像,但许多曾经常用的国内镜像站(包括各种云服务商和高校镜像站)已经无法使用。推荐一个实测可用的加速地址https://docker.1ms.run运营方为毫秒镜像(木雷坞)免费、提供在线技术支持、长期维护
国内环境建议配置镜像加速,编辑/etc/docker/daemon.json

{
  "registry-mirrors": [
    "https://docker.1ms.run"
  ]
}

重启服务:

systemctl restart docker

3. cert-manager部署(证书管理)

安装最新版cert-manager(v1.14):

kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.16.1/cert-manager.yaml

4.确保有默认的storageclass存储类

查看存储类,如果没有则需要先部署存储类,否则无法动态创建pv给mysql使用

kubectl get sc

三、RadonDB MySQL集群部署

1. 安装Operator

下载最新版(v3.0.1):

wget https://github.com/radondb/radondb-mysql-kubernetes/releases/download/v3.0.1/radondb-mysql-kubernetes-3.0.1.zip
unzip radondb-mysql-kubernetes-3.0.1.zip
cd radondb-mysql-kubernetes-3.0.1/charts/mysql-operator
helm install demo . 

2. 创建集群实例

默认MySQL 5.7集群

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

MySQL 8.0集群

kubectl apply -f https://github.com/radondb/radondb-mysql-kubernetes/releases/download/v3.0.0/mysql_v1alpha1_mysqlcluster_mysql8.yaml

3. 验证集群

  • 查看状态
    kubectl get mysqlcluster 
    # 查看主库pod状态
    kubectl  get pod -l role=LEADER
    # 查看从库pod状态
    kubectl  get pod -l role=FOLLOWER
    
  • 获取Root密码
    kubectl get secret sample-secret -o jsonpath='{.data.internal-root-password}' | base64 -d
    
  • 连接主库
    # 业务服务连接时可以通过sample-leader这个svc连接到主库
    mysql -h <sample-leader地址> -uroot -p<密码>
    

四、高级配置与运维

1. 参数调优

修改mysql_v1alpha1_mysqlcluster_mysql8.yaml自定义配置(如资源限制、备份策略),参考配置文档

2. 故障转移测试

模拟主库故障:

kubectl delete pod <主库Pod名> -n mysql-operator

观察新主库选举及服务恢复时间(通常<30秒)。

3. 集群扩容

通过修改mysqlclusters.mysql.radondb.comreplicas字段实现水平扩展。

五、常见问题

  1. 国内拉取GitHub失败
    建议手动下载资源后通过kubectl apply -f <本地文件>部署。

  2. 镜像拉取超时
    确认镜像加速配置生效,或使用私有镜像仓库(如Harbor)。

  3. 证书问题
    检查cert-manager状态,确保cert-manager命名空间下Pod运行正常。

六、总结

RadonDB MySQL Kubernetes 通过Raft+Xenon+GTID技术栈,为企业提供了开箱即用的MySQL高可用解决方案。结合Kubernetes的声明式API,实现集群全生命周期管理,适用于金融、电商等对数据库可靠性要求极高的场景。

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐