雷竞技下载官网Percona Operator for MySQL支持组复制gydF4y2BaPercona有两个操作员在Kubernetes上部署雷竞技下载官网MySQL:gydF4y2Ba

我们写了gydF4y2Ba一篇博文gydF4y2Ba在过去的文章中解释了为MySQL创建新的操作符的思想过程和推理。我们的目标是提供在Kubernetes中运行MySQL的生产级解决方案,并支持各种复制配置:gydF4y2Ba

  • 同步复制gydF4y2Ba
    • 使用Per雷竞技下载官网cona XtraDB集群gydF4y2Ba
    • 使用组复制gydF4y2Ba
  • 异步复制gydF4y2Ba

在最新的0.2.0版本的Percona Operator for 雷竞技下载官网MySQL(基于Percona Server for MySQL)中,我们添加了gydF4y2Ba组复制gydF4y2Ba支持。在这篇博客文章中,我们将简要回顾我们的实现的设计,并了解如何设置它。gydF4y2Ba

设计gydF4y2Ba

这是一个运行MySQL集群和组复制的高级设计:gydF4y2Ba

MySQL集群的组复制gydF4y2Ba

MySQL路由器gydF4y2Ba充当所有请求的入口点,并将流量路由到节点。gydF4y2Ba

下面是操作员如何在Kubernetes中部署这些组件的深入介绍:gydF4y2Ba
kubernetes部署gydF4y2Ba

从右到左:gydF4y2Ba

  1. StatefulSetgydF4y2Ba部署一个配置了组复制的MySQL节点集群。每个节点都有自己的存储。gydF4y2Ba
  2. 部署gydF4y2Ba对象用于无状态的MySQL路由器。gydF4y2Ba
  3. 部署是通过服务公开的。我们在这里使用了各种TCP端口:gydF4y2Ba
    1. MySQL协议端口gydF4y2Ba
      1. 6446 -读/写,将流量路由到主节点gydF4y2Ba
      2. 6447 -只读,在replica之间实现负载均衡gydF4y2Ba
    2. MySQL X协议-可以用于CRUD操作,例如异步调用。端口遵循相同的逻辑:gydF4y2Ba
      1. 6448 -读/写gydF4y2Ba
      2. 6449 -只读gydF4y2Ba

行动gydF4y2Ba

前提条件:需要Kubernetes集群。Minikube就可以了。gydF4y2Ba

本文中使用的文件可以在gydF4y2Ba这个Github回购gydF4y2Ba。gydF4y2Ba

部署操作符gydF4y2Ba

请注意gydF4y2Ba- - - - - -gydF4y2Ba服务器gydF4y2Ba-gydF4y2Ba一边gydF4y2Ba标志,如果没有它,你将得到错误:gydF4y2Ba

我们的操作符遵循OpenAPIv3模式以进行适当的验证。不幸的是,这增加了自定义资源定义清单的大小,因此,需要我们使用gydF4y2Ba- - - - - -gydF4y2Ba服务器gydF4y2Ba-gydF4y2Ba一边gydF4y2Ba国旗。gydF4y2Ba

部署集群gydF4y2Ba

我们现在已经准备好部署集群了:gydF4y2Ba

我创建了gydF4y2Ba此自定义资源清单gydF4y2Ba特别针对这个演示。需要注意的重要变量:gydF4y2Ba

  1. 10行:gydF4y2BaclusterTypegydF4y2Ba:gydF4y2Ba集团gydF4y2Ba-gydF4y2Ba复制gydF4y2Ba-指示操作员这将是一个具有组复制的集群。gydF4y2Ba
  2. 第31-47行:都是关于MySQL路由器的。一旦组复制被启用,操作员将自动部署路由器。gydF4y2Ba

获取状态gydF4y2Ba

查看集群是否准备就绪的最好方法是检查自定义资源状态:gydF4y2Ba

如你所见,的确如此gydF4y2Ba准备好了gydF4y2Ba。你还可以看到gydF4y2Ba初始化gydF4y2Ba如果集群还没有准备好或gydF4y2Ba错误gydF4y2Ba如果出了问题。gydF4y2Ba

在这里,您还可以看到可以连接到的端点。在我们的例子中,它是负载均衡器的一个公共ip地址。如上面的设计部分所述,有多个端口公开:gydF4y2Ba

连接集群gydF4y2Ba

要连接,我们首先需要用户。缺省情况下,系统存在一个root用户,密码随机生成。密码存储在Secret对象中。你总是可以用下面的命令获取密码:gydF4y2Ba

我将使用端口6446,这将授予我读/写访问权,并通过MySQL路由器直接引导我到主节点:gydF4y2Ba

组复制正在进行gydF4y2Ba

让我们看看组复制是否真的有效。gydF4y2Ba

以如下命令列出集群成员:gydF4y2Ba

现在我们将删除一个Pod (MySQL节点),它也恰好有一个Primary角色,看看会发生什么:gydF4y2Ba

一个节点没有了。gydF4y2Ba我的gydF4y2Ba-gydF4y2Ba集群gydF4y2Ba-gydF4y2BamysqlgydF4y2Ba-gydF4y2Ba1gydF4y2Banode被提升为Primary角色。我仍然使用端口6446和相同的主机连接到数据库,这表明MySQL路由器正在做它的工作。gydF4y2Ba

一段时间后,Kubernetes将重新创建Pod,节点将自动再次加入集群:gydF4y2Ba

恢复阶段可能需要一些时间,这取决于数据的大小和更改的量,但最终,它将恢复ONLINE:gydF4y2Ba

接下来是什么?gydF4y2Ba

我们很快就会发布一些令人兴奋的功能和特性:gydF4y2Ba

  • 对具有组复制的集群的备份和恢复支持gydF4y2Ba
    • 我们在操作符中有备份和恢复,但它们目前不能与组复制一起工作gydF4y2Ba
  • raybet雷竞技竞猜在线官网Percona监控与管理(PMM)中MySQL路由器的监控雷竞技下载官网gydF4y2Ba
    • 即使运算符gydF4y2Ba很好地集成了gydF4y2Ba使用PMM,可以只监视MySQL节点,但不能监视MySQraybet雷竞技竞猜在线官网L路由器。gydF4y2Ba
  • 在操作系统中自动升级MySQL和数据库组件gydF4y2Ba
    • 我们在所有其他操作符中都有它,在这里添加它是合乎逻辑的gydF4y2Ba

雷竞技下载官网Percona是一家开源公司,我们重视我们的社区和贡献者。我们非常鼓励您为Percona Software做出贡献。雷竞技下载官网请参阅我们的gydF4y2Ba贡献gydF4y2Ba带领及参观我们的gydF4y2Ba社区网页gydF4y2Ba。gydF4y2Ba

订阅gydF4y2Ba
通知的gydF4y2Ba
客人gydF4y2Ba

0gydF4y2Ba评论gydF4y2Ba
内联反馈gydF4y2Ba
查看所有评论gydF4y2Ba