RadonDB MySQL Kubernetes 于 10 月 22 日公布了第四个版本 2.1.0 [1]。该版本也是由 Operator 形式实现的第二个版本。
该项目标开源,意在为宽广的 K8s 和 MySQL 开发者们,提供一款企业级的 MySQL on K8s 高可用解决方案。
致谢
首先感激 @andyli029 @hustjieke @zhyass @runkecheng @acekingke @molliezhang 提交的批改。
| 什么是 RadonDB MySQL?
RadonDB MySQL 是一款基于 MySQL 的开源、高可用、云原生集群解决方案。反对一主多从高可用架构,并具备平安、主动备份、监控告警、主动扩容等全套治理性能。目前曾经在生产环境中大规模的应用,用户蕴含 银行、保险、传统大企业等。服务高可用由曾经开源的 MySQL 集群高可用工具 Xenon 来实现。
随着近几年国内外云原生技术蓬勃发展,数据库容器化实现技术也趋于成熟。各大 K8s 社区用户对 MySQL on K8s 高可用版本的需要呼声一直。 社区决定将 RadonDB MySQL 残缺的移植到 K8s 平台(RadonDB MySQL Kubernetes),并于往年将其正式开源。
RadonDB MySQL Kubernetes 反对在 Kubernetes 和 KubeSphere 上装置部署和治理,主动执行与运行 RadonDB MySQL 集群无关的工作。
RadonDB MySQL Kubernetes 从 2.0.0 开始,曾经由 Helm 迁徙至 Operator 形式实现,并且齐全兼容 1.0 版本的所有性能个性。
代码仓库地址:
- https://github.com/radondb/ra…
- https://github.com/radondb/xenon
| 新版本性能一览
1. 减少 MySQL 集群服务监控
开启监控性能后,将创立监控服务并主动对接 Prometheus。
2. 基于 S3 的数据库备份复原
只有领有 S3 对象存储的 bucket 与 API key,间接将 Pod 的数据库内容备份到 S3 对象存储中,也能够从 S3 对象存储中的备份复原出新的数据库集群。
3. 欠缺数据库账户治理
通过 CR 治理 MySQL 用户。对 CR 的增删改将主动转化为对相应用户的操作,反对针对数据库,表受权。
4. 反对磁盘动静扩容
可批改 yaml 存储容量,主动降级扩容存储,并降级数据库集群。
5. 优化优雅启停逻辑
6. 丰盛集群状态粒度
反对集群中间状态显示,例如:初始化中,更新中等;新增集群状态已敞开。
7. 反对外网服务拜访
8. 优化代码和迭代更新
9. 欠缺单元测试
10. 丰盛工作流和 Travis CI 反对主动构建镜像,格局查看,单元测试
| RoadMap
后续 RadonDB MySQL Kubernetes 的技术路线:
- 反对更多形式的数据库备份复原
- StatefulSet 欠缺为 Multi StatefulSet
- 反对更细粒度的配置更新
- 反对 MySQL 8.0
- 形象欠缺内部调用 API
- 进一步晋升服务质量,缩小非凡场景下启停工夫
- 欠缺周期调度 job 性能更高效反对反复工作
- 反对在线迁徙
期待更多开发者参加到开源我的项目中来!
以下是 2.1.0 和 2.0.0 版本残缺的 Release Notes。
2.1.0 Release Notes
Features
- Add serviceMonitor for operator #169 #174
- Backup to S3 and restore from S3 #116 #144 #197
- Add ci for images management and greeting. #207
- Support user management through crd. #175 #198 #228
- Support extranet access service. #251 #252
- Make the cluster state cover more scenarios. #253 #264
Improvements
- Change the related name of qingcloud to the name related to radondb. #190
- Format the code with gofumpt #212 #213
- Simplify backup code #226 #227
- Modify the default name and password #191 #233
- Optimize the logic of creating sqlrunner. #229 #230
- Remove the helm version deployment document link and fix operator deployment document. #241
- Add user management tutorial. #245 #260
- Change kind type cluster to mysqlcluster #249 #261
Bug fixes
- Fix the bug for preUpdate #184 #185
- Fix the bug for status reset leader #178 #180
- Fix default mysql version 5.7.33 to 5.7.34 #205
- Fix the bug which historyLimit do not work #222 #223
- Fix the bug for infinite loop #201, #219 #206
- Xenon postStart script loop forever #201
- Fix the bug which historyLimit do not work #222 #223
- Fix make test fail by init sidercar test #256 #259
- Fix typo randondb to radondb #266 #267
- Fix the problem of password conflict between backup and user management of root user. #257 #268
2.0.0 Release Notes
Improvements
- Add post-start and pre-stop script #155
- Add PreStop for xenon container #145
- Move the charts images and change the key word #140 #142
- Support roll update #133 #121
- Unit test for container, cluster #131 #130
- Add the document about the deployment of operator version #132 #127
- Update the path of helm chart #126 #129
- Update mysql version to 5.7.34 #124 #123
- Add status api to support update the cluster status #120 #119
- Add operator sidecar #120 #117
- Update the config files, helm files, the Dockerfile, Makefile #120
- Update kubebuilder from v2 to v3 #114 #113
- Modify the repo #112
- Adjust the dir for operator #111
- Add operator init #123 #109
- Add rolling update feature code annotation #165
- Add ignore dir
vendor
andtestbin
#153 #154
Bug Fixes
- Fix the auditLog container #181 #179
- Fix the incorrect description about MetricsOpts #177
- Fix the bug about PostStartHookError that command ‘sh -c /scripts/post-start.sh’ exited with 126 #171
- Fix the path from docker to radondb #167
- Fix the bug about the pods‘s status when the yaml have been changed #166 #164 #161 #158
- Fix the bug that xenoncli cannot create user #163 #162
- Fix the bug about reflect.SliceHeader vet error when go 1.16.6 #141 #139
- Move the init.sql to mysql config dir radondb #128
- Fix the bug that
innodb_buffer_pool_size
cannot be set correctly when its size greater than int32 #125
欢送大家下载体验!
参考及下载链接
[1]. Release Notes: https://github.com/radondb/ra…
[2]. RoadMap: https://github.com/radondb/ra…
相干浏览
- Xenon:后 MHA 时代的抉择
- Xenon 实现 MySQL 高可用架构 部署篇
- Xenon 实现 MySQL 高可用架构 罕用操作篇
- 在 Kubernetes 上部署 RadonDB MySQL 集群
- 基于 K8s 的新一代 MySQL 高可用架构实现计划