FAQ | MySQL 容器化项目

2023年 10月 10日 32.2k 0

社区将用户在了解学习开源项目时遇到的一些高频问题整理成 FAQ,分几篇发出。本篇为第一篇【FAQ | 认知篇】。

数据库容器化的技术可行性

关于 数据库是否适合部署在 Kubernetes 上?这个问题已经有了答案。以往对有状态服务不适合部署在 Kubernetes,数据库性能及安全性等疑问,都可以通过以下几篇文章从技术可行性的角度来得到解答。

  • 《是否应该在 Kubernetes 上运行数据库?》
  • 《数据库可以上 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 提供高可用能力

了解更多:

  • 《MySQL on K8s 开源开放的高可用容器编排方案》
  • 《MySQL Operator 01 | 架构设计概览》
  • 《MySQL Operator 02 | 脚手架选型 & 工程创建》

高可用是如何实现的?

通过上面的介绍,我们得知 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

了解更多:

  • 《Xenon:后 MHA 时代的选择》
  • 《关于 Xenon 高可用的一些思考》
  • 《基于 K8s 的新一代 MySQL 高可用架构实现方案》

版本信息及下载地址

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

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论