RadonDB MySQL Kubernetes released its fourth version 2.1.0 on October 22 [1]. This version is also the second version implemented as Operator.

The open source project aims to provide an enterprise-level MySQL on K8s high availability solution for K8s and MySQL developers.

Thank you

First of all, thank @andyli029 @hustjieke@zhyass @Runkecheng@acekingke@mollieZhang for submitting the modification.

| what is RadonDB MySQL?

RadonDB MySQL is an open source, high availability, cloud native cluster solution based on MySQL. Supports a high availability architecture with one master, multiple slave, and a full set of management functions such as security, automatic backup, alarm monitoring, and automatic capacity expansion. At present, it has been used on a large scale in the production environment, including banks, insurance, traditional large enterprises and so on. High availability of services is implemented by Xenon, an open source MySQL cluster high availability tool.

With the rapid development of cloud native technology at home and abroad in recent years, database containerization technology is becoming mature. Users in the K8s community are demanding a high availability version of MySQL on K8s. The community decided to fully port RadonDB MySQL to THE K8s platform (RadonDB MySQL Kubernetes) and officially open source it this year.

RadonDB MySQL Kubernetes supports installation, deployment and management on Kubernetes and KubeSphere to automatically perform tasks related to running the RadonDB MySQL cluster.

RadonDB MySQL Kubernetes from 2.0.0 has been implemented by Helm to Operator mode and is fully compatible with all features of version 1.0.

Code repository address:

  • Github.com/radondb/rad…
  • Github.com/radondb/xen…

| new version function index

1. Add MySQL cluster service monitoring

After the monitoring function is enabled, a monitoring service is created and connected to Prometheus automatically.

2. Database backup and restoration based on S3

As long as you have the BUCKETS and API keys of S3 object storage, you can directly back up the Pod database content to S3 object storage or restore a new database cluster from the backup in S3 object storage.

3. Improve database account management

Manage MySQL users through CR. Adding, deleting, and modifying A CR will automatically translate into operations for corresponding users, supporting database and table authorization.

4. Dynamic disk expansion is supported

You can modify the YAML storage capacity to automatically expand storage capacity and upgrade database clusters.

5. Optimize elegant start-stop logic

6. Enrich the granularity of cluster status

The intermediate cluster status can be displayed. For example, the cluster is being initialized or updated. The new cluster has been shut down.

7. Support access to external services

8. Optimize code and iterate on updates

9. Refine unit tests

10. Rich workflow and Travis CI support for automatic image building, format checking, and unit testing

| RoadMap

RadonDB MySQL Kubernetes

  1. Supports more methods of database backup and recovery
  2. StatefulSet improved to Multi StatefulSet
  3. Support for more granular configuration updates
  4. Supports MySQL 8.0
  5. Abstraction improves the external call API
  6. Further improve service quality and reduce the start-stop time in special scenarios
  7. Improve the periodic job scheduling function to efficiently support repetitive work
  8. Online migration

Expect more developers to participate in open source projects!

Here are the full Release Notes versions 2.1.0 and 2.0.0.

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 and testbin# 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’ 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

Welcome to download and experience!

References and download links

[1]. The Release Notes: github.com/radondb/rad…

[2]. RoadMap: github.com/radondb/rad…

reading

  • Xenon: A post-MHA option
  • Xenon implements MySQL high availability architecture deployment
  • Xenon implements MySQL high availability architecture
  • Deploy the RadonDB MySQL cluster on Kubernetes
  • K8s based on a new generation of MySQL high availability architecture implementation scheme