管理 Kubernetes 上运行的缓存和数据库等有状态应用程序是一项艰巨的任务。使用 Kubernetes API,您可以通过将操作知识和实践直接编码到按需代码中来构建自我管理的基础架构。例如,当 MySQL 容器 pod 发生故障时,您可以使用 Operator 进行响应并采取适当的措施使系统恢复。

Operator 是构建在 Kubernetes 之上的控制器,可以自动化和简化特定的复杂操作。它们的存在是为了向最终用户提供卓越的可扩展性以及高可用性和监控功能。

在 Kubernetes 中运行数据库变得与 Operator 无缝连接,因为它们弥合了有状态数据库和在 Kubernetes 中运行的无状态应用程序之间的差距。它们使用声明性配置格式更容易打包、部署和管理生产就绪的 MySQL 集群。它们还有助于备份、扩展和恢复,并且可以在现有 Kubernetes 集群内的任何位置运行。

MySQL Operator 有很多解决方案,可以让在 Kubernetes 上运行 MySQL 成为一种愉快的体验。其中包括甲骨文、Percona、Bitpoke 和 GrdsCloud。其中,哪些更稳定?哪些更快?哪些提供更好的功能?

本文我们将比较这些用于 Kubernetes 的顶级 MySQL Operators,并总结区分它们的特性。

官方 Oracle MySQL 运算符

Oracle MySQL Operator 是一个稳定可靠的数据库管理系统,通常被视为流行 Web 主机(包括 WordPress)的默认安装。

Oracle MySQL Operator 的主要特性包括:

  • 自我修复解决方案:Oracle MySQL Operator 可以创建和扩展在 Kubernetes 中运行的 MySQL InnoDB 集群。它利用 Group Replication 插件创建可以在单主模式下运行的容错组,在这种模式下,在任何给定时间,只有一个服务器会批准升级。这些组还可以在多主模式下运行,所有服务器将同时接受升级。这个多主复制插件提供了强大的随处更新优势以及内置的冲突识别和解决、组成员身份和自动分布式恢复能力。

  • 备份和恢复:按需创建备份或使用调度程序功能在预设时间将数据库自动备份到对象存储。用户还可以从现有备份中恢复数据库。

  • 架构:利用 InnoDB 和 Group Replication 在 Kubernetes 上创建和扩展 MySQL 集群。如果集群实例死亡,MySQL Operator 会自动将它们恢复到集群中。Kubernetes Persistent Volume Claims 允许您将数据存储在网络链接存储或本地磁盘上。

  • 性能:它使用自定义资源定义来扩展 Kubernetes API。MySQL Operator 用户可以使用这些第三方资源对象进行交互。

  • 易用性:使用此 Operator 创建 MySQL 集群轻而易举。只需定义 YAML 文件并使用 kubectl 直接提交给 Kubernetes。Operator 将监视 MySQL 集群资源并采取措施创建 MySQL 集群。

Oracle MySQL Operator 的文档 也非常全面。为了安全起见,它支持从私有注册表访问。

Oracle MySQL Operator 是一个简单、直接的 Kubernetes 控制器,它密切监视 API 服务器以查找链接到 MySQL 的自定义资源定义并采取相应的操作。它使用 Prometheus 指标进行监控和警报。唯一的缺点是备份只能存储在 S3 或 S3 兼容存储上。

Percona

Percona MySQL 是一个综合性的操作符,它为高要求、资源密集型的应用程序提供支持。它提供各种性能优化工具以及 XtraDB 作为其存储引擎。XtraBackup 和 XtraDB Cluster 提供了许多与该引擎兼容的工具,使 DBA 的日常管理任务更加轻松。

Percona MySQL Operator 的主要特点是:

  • **部署和扩展:**您可以创建跨多个可用区的 Percona XtraDB 集群环境,而不会出现任何故障点。为了可扩展性,您可以更改大小参数以添加或删除 XtraDB 集群成员。

  • 安全性:Percona 提供强大的安全功能,例如自动密码轮换、传输中的数据加密以及对私有注册表访问的支持。

  • 架构:Percona XtraDB Cluster 通过将 Percona Server for MySQL 与 XtraDB 引擎和 Percona XtraBackup 与 Galera 库集成来提供同步的多主复制。

Percona 的架构

这是 Percona 架构的快速概述。使用节点关联,Operator 通过在单独的节点上运行 Percona XtraDB Cluster 实例来提供高可用性。如果一个节点发生故障,一个 pod 会自动重新加入另一个节点。

同样,它使用 PVC (PersistentVolumeChain) 自动为 pod 提供存储。

与其他运算符相比,Percona MySQL Operator 的文档非常详细。

Bitpoke

Bitpoke MySQL Operator 管理用于在 Kubernetes 中部署和管理高可用性 MySQL 集群的所有基本资源。此外,它还有助于简化数据库操作,例如扩展、备份和故障转移。为了适合您的使用案例,您可以为多个站点创建一个集群或为每个站点创建一个集群。

Bitpoke MySQL Operator 对 DevOps 友好,这意味着它简化了监控、可扩展性、可用性和备份流程。它支持时间点恢复和备份(按需和计划),还支持集群内和集群间的克隆。

Bitpoke MySQL Operator 的主要优势包括:

  • 架构:Bitpoke MySQL Operator 使用 Percona Server 和 Openark 的 Orchestrator 在 Kubernetes 上提供异步 MySQL 复制。

  • 易用性:Bitpoke MySQL Operator 入门简单快捷。用户只需访问安装了 Helm 和 kubectl 的 Kubernetes 集群。

借助此README 图表,您可以将控制器与协调器 集群一起部署。 Bitpoke MySQL Operator 的文档已经足够了。在安全性方面,不幸的是,Bitpoke 缺乏可靠的安全功能:它只提供 SSL 支持。

GrdsCloud

GrdsCloud MySQL Operator 可帮助您在 Kubernetes 等基于容器的环境中运行无状态 MySQL。您无需更改 MySQL 数据库的权限,因此管理和扩展可用于生产的 MySQL 集群变得更加容易。

GrdsCloud MySQL Operator 的主要特点是:

  • 易于构建:安装 GrdsCloud MySQL Operator 后,您可以快速构建和管理在 Kubernetes 中运行的容器化 MySQL 集群。这可以在基本的声明性配置的帮助下完成。用户可以轻松定义 cpu/io/memory 格式的参数。

  • 灾难恢复:该控制器包括媒体恢复和备份任务调度程序,使日常数据库管理活动更容易。

  • 高可用性:它运行全自动数据库检查以识别故障。数据库中发生的更改会实时记录在二进制日志中。MySQL Operator 将处理这些更新,并在数据库出现故障时自动重新执行或修复二进制日志。根据情况,它会分配一个新的主实例。这将帮助用户获得高可用的 MySQL 集群。

  • SlowSQL Analyst:为了获得有价值的见解,Grds MySQL Operator 自动收集和分析应用程序 SQL 并相应地提供优化建议。

与其他文档 相比,GrdsCloud 的文档并不详细。此外,GrdsCloud 对传输中的敏感数据缺乏强大的安全功能。它是一个很好的运营商,但它不支持深入的洞察力和 AutoPilot 功能。

总结

在 Kubernetes 上运行 MySQL 集群并不像听起来那么简单,尤其是不仅仅是扩展和配置。这就是为什么使用 Operator 非常有用,因为它可以为最终用户自动化这些流程。应用程序的最佳选择最终取决于数据库的规模、资源和大小需求。有时,这也取决于 DBA 的品味。

翻译

Choosing a Kubernetes Operator for MySQL

关注

本文首发于微信公众号【进击云原生】,扫码关注,了解更多咨询,更有免费资源供您学习

四款 MySQL Operator 助你容器数据库相关推荐

  1. 四款常见数据库同步软件汇总,Mysql数据同步软件

    SyncNavigator v8.6.2(数据库同步软件)下载地址 SyncNavigator是一款功能强大的数据库同步软件,适用于SQL SERVER, MySQL,具有自动/定时同步数据.无人值守 ...

  2. 访问Oracle数据库的四款工具软件介绍

    本文由Markdwon语法编辑器编辑完成. 1. Oracle数据库介绍: 关于Oracle数据库,以及它和MySQL, SQL Server等其他数据库的介绍和区别,可以查看以下来自知乎的链接. h ...

  3. 四款常见数据库比较同步软件汇总

    下载网站:www.SyncNavigator.CN  客服QQ1793040 ---------------------------------------------------------- 关于 ...

  4. Mysql数据库(四)——mysql索引相关知识

    Mysql数据库(四)--mysql索引相关知识 一.索引的概念 二.索引的优缺点 1.优点 2.缺点 三.创建索引的原则 四.索引的分类和创建方法 1.普通索引 ①.直接创建索引 ②.修改表方式创建 ...

  5. 第四模块MySQL数据库

    第四模块MySQL数据库 从今天开始,我们将进入系列课程的 第四模块 的学习,这个模块就是给大家讲解MySQL数据库. 以前,在开发程序时,我们会把很多的数据和信息存储到某个文件夹中的文件中,例如:u ...

  6. 肝了三天的四万字MySQL数据库知识总结

    mysql数据库知识梳理总结 即使再小的帆也能远航~ 一. 目录 数据库介绍 数据库安装 SQL概念 DDL DML操作表中的数据 DQL单表查询 数据库备份和还原 DCL 数据库表的约束 表与表之间 ...

  7. MySQL数据库,从入门到精通:第十四篇——MySQL视图详解

    MySQL数据库,从入门到精通:第十四篇--MySQL视图详解 第 14 篇_视图 1. 常见的数据库对象 2. 视图概述 2. 1 为什么使用视图? 2. 2 视图的理解 3. 创建视图 3. 1 ...

  8. MySQL数据库,从入门到精通:第四篇——MySQL中常用的运算符及其用法

    MySQl学习(MySQL数据库,从入门到精通:第四篇--MySQL中常用的运算符及其用法 第四篇_MySQL中常用的运算符及其用法运算符 1. 算术运算符 1.加法与减法运算符 2.乘法与除法运算符 ...

  9. Gogs这款开源项目助你秒建Git服务!

    一.简介 以前使用 Gitlab 搭建过 Git 服务的小伙伴都知道,这个 GitLab 方案占用内存比较大,没有个8G 内存,很难流畅运行,而且部署起来也不容易.所以今天的主角他来了,Gogs 是一 ...

最新文章

  1. C++零碎知识点(一)
  2. 千锋python全套视频教程400全集-千锋出品全套python视频教程,400大全集,你了解吗?...
  3. php7.2 开启mcy扩展,phper必知必会(二)
  4. 项目管理中的客户需求变更时需求分析和解决方法
  5. C++新旧类型转换小记
  6. wireshark-win64-3.4.0安装_万达讲堂轴承安装后易损坏的原因,点进来,告诉你!
  7. “9元课程”拼凑起来的暑假和K12在线教育企业的生死营销战
  8. 这文字的起始位置_如何用AE快速制造文字特效视频的效果?3分钟教你学会
  9. Java数据类型转换超详解
  10. Ubuntu 安装 Libmodbus
  11. excel合并计算机操作,电脑把多个Excel文件合并成一个文件的方法
  12. 开启fiddler之后电脑就断网
  13. MATLAB解二元二次方程+画图 = 画隐式方程的图像
  14. 锦标赛选择法(遗传算法)
  15. LC365. 水壶问题
  16. 需求与商业模式创新-需求9-原型
  17. 【python】如何画简单的图
  18. Android三级列表
  19. 计算机win10内存,win10系统电脑可用内存异常的解决方法
  20. 金立android怎么升级包,金立S6升级刷机教程[多图]

热门文章

  1. 关于生活垃圾分类,可以使用垃圾分类小程序进行辅助识别
  2. Vue3电影中后台开发纪实(一):脚手架创建项目
  3. Vue3电影中后台开发纪实(六):权限管理
  4. Springer期刊下 作者照片及作者介绍在LaTex中如何实现
  5. 离子交换树脂技术介绍
  6. java微信企业号40029,全局错误码
  7. Android扫雷实训小结,扫雷课程实训报告.doc
  8. 微博html5版赵丽颖,人红是非多,赵丽颖微博设置半年可见引热议,“劈叉梗”再被提起...
  9. javascript 红黑树算法与说明
  10. Qt 点击ToolButton按钮弹出新的窗口