数据库容器化的技术可行性
关于 数据库是否适合部署在 Kubernetes 上?这个问题已经有了答案。以往对有状态服务不适合部署在 Kubernetes,数据库性能及安全性等疑问,都可以通过以下几篇文章从技术可行性的角度来得到解答。
业内文章参考
Percona:《Kubernetes Operator 对数据库的重要性》[1] TiDB:《TiDB on Kubernetes 最佳实践》[2]
什么是 RadonDB MySQL Kubernetes?
RadonDB MySQL Kubernetes 是基于 MySQL 的开源、高可用、云原生集群解决方案。支持主备高可用架构,并具备安全、自动备份、监控告警、自动扩容等全套管理功能。
其实现了在 Kubernetes 、KubeSphere 和 Rancher 上安装部署和管理,自动执行与运行 MySQL 集群有关的任务。
简单的说:如果你需要一款在 Kubernetes 上运行的,并自带高可用的 MySQL Operator,那就请试试 RadonDB MySQL Kubernetes 吧!
Github:https://github.com/radondb/radondb-mysql-kubernetes
网站:https://radondb.com/
文档:https://radondb.com/docs/mysql/
核心功能
MySQL 高可用 无中心化自动选主 主备秒级切换 集群切换的数据强一致性 集群管理 监控告警 数据备份 日志管理 账户管理
架构图
通过 Raft 协议实现无中心化领导者自动选举 通过 Semi-Sync 基于 GTID 模式同步数据 通过 Xenon 提供高可用能力

了解更多:
高可用是如何实现的?
通过上面的介绍,我们得知 RadonDB MySQL Kubernetes 通过 Xenon 实现高可用功能。
Xenon [ˈziːnɒn] 是一款由 RadonDB 开源社区开源的 MySQL 集群高可用工具。基于 Raft 协议进行无中心化选主,实现主从秒级切换;基于 Semi-Sync 机制,保障数据不丢失,实现数据强一致性;并结合 MySQL(5.7 及以上版本)并行复制特性,实现 Binlog 并行回放,大大降低从库延迟。

结合架构图,可看出 Xenon 就是基于 Raft + Semi-Sync + GTID 实现的高可用,保证大多数节点接收到数据。
而 Raft 基于心跳管理,如果从节点超时收不到主节点的心跳,会尝试发起选举,若得到超过半数(非 IDLE 节点)的选票,则会当选为主节点。
Github:https://github.com/radondb/xenon
了解更多:
版本信息及下载地址
1.x 版本直接由 Helm 包管理工具部署,目前已停止维护!
2.x 版本由 Operator 的方式实现并兼容 1.x 所有功能。
强烈建议使用 2.x 最新版本!!!
发版信息汇总:https://radondb.com/docs/mysql/v2.2.0/release/list/#content
下载地址:https://github.com/radondb/radondb-mysql-kubernetes/releases
未来有哪些开发规划?
可用性
支持单节点及节点扩缩容 支持自动订正集群复制状态 支持读写分离代理及服务暴露 支持不参与选举的只读实例 支持在线数据迁移 支持创建远程灾备集群 完善 SSL 传输加密
可观测性
内置 prometheus
,grafana
,altertmanager
等可选组件grafana
监控面板作为服务导出与访问altertmanager
自定义告警支持集群托盘状态展示(orchestrator 实现) 支持慢日志、错误日志展示及投递服务
可维护性
支持小版本升级(如:5.7.22 到 5.7.33) 支持 5.7 到 8.0 的跨版本升级 支持物理增量备份及备份信息展示 支持时间点恢复 PITR 集成数据库可视化管理工具,提供网页客户端
RadonDB 的前世今生
社区还有很多朋友会直接将 RadonDB MySQL Kubernetes 称为 RadonDB,这里再对项目名称做一个说明。
RadonDB 原为青云科技于 2018 年开源的分布式数据库,其分布式组件 Radon 暂时停止维护。
目前 RadonDB 为社区品牌,不再特指某款数据库项目。社区主要的运营项目为:
RadonDB MySQL Kuberentes - MySQL 容器化 RadonDB PostgreSQL Operator - PostgreSQL 容器化 RadonDB ClickHouse Operator - ClickHouse 容器化 Xenon - MySQL 高可用组件
详见:https://github.com/radondb
参考链接
1.《Kubernetes Operator 对数据库的重要性》:https://www.percona.com/blog/2020/10/08/the-criticality-of-a-kubernetes-operator-for-databases/
2.《TiDB on Kubernetes 最佳实践》:https://pingcap.com/zh/best-practice-detail/tidb-on-kubernetes-best-practice




