MySQL和协调器在以前的文章,使用DBdeployer管理MySQL, Percona服务器,Ma雷竞技下载官网riaDB沙箱中,我们介绍如何使用DBdeployer支持团队轻松地创建MySQL环境用于测试目的。在这里,我将扩大在彼得所写安装MySQL和码头工人,创造环境与超过一个节点。特别是,我们将设置一个主节点,两个奴隶复制,和一个节点使用协调器

在我们开始之前,让我说,这个项目应仅用于测试或做证据的概念,我们不建议在生产中运行这个。此外,即使Percona单独提供了对这些工具雷竞技下载官网的支持,这个项目是一个内部开发和使用在这里展示的目的。

码头工人组成

码头工人组成是一个工具,它允许我们定义和运行许多容器有一个简单的命令:

YAML文件用于所需的所有相关的定义(docker-compose.yml),像容器名称和图片,要创建和网络。如果需要,在线文档是一个好地方开始熟悉它,因为它是超出了这篇文章的范围。然而,让我们知道如果你想听到更多关于它在未来的博客。此外,可以使用一个特殊的.env文件定义的变量(常量)。

协调器

协调器是一个工具来管理MySQL复制和提供高可用性。再一次,请参考在线文档(或者这篇文章从同业拆借协调器:MySQL复制拓扑管理器)如果你需要更多的了解这个工具因为我们不会在这里讨论。

如果你还没有听说过,这是一个很好的机会让你建立一个测试环境,您可以更深入地检查一下,很容易!所有你需要的是码头工人,码头工人组合安装。

运行的容器

支持团队,我们需要足够灵活以迎合客户的各种版本部署,不用花太多时间设置所需的测试环境。把测试环境快速启动和运行不仅是可取的,但需要。

所有的文件需要运行这个在这个GitHub项目。克隆:

首先,我们需要运行MySQL复制环境。我们可以使用下面的命令:

这里有几个有趣的注意事项。首先,脚本动态地创建一些包装给我们以便访问容器很容易。例如,访问MySQL客户端主节点,只是执行。/ run_mysql_orchestrator_agustin.73b9f7_master;或访问BASH slave01使用。/ run_bash_orchestrator_agustin.73b9f7_slave01。脚本将让你的操作系统的用户名和当前工作目录为容器想出一个独一无二的字符串名称(与其他运行避免碰撞容器)。此外,我们会包装检查集装箱信息(码头工人检查…),检查日志(码头工人日志- f…),它可以方便调试问题。

第二件要注意的是,最后,该脚本提供的输出docker-compose ps这将告诉我们每个容器创建,其状态,和端口重定向。

运行协调器容器

现在我们有三个运行MySQL容器:一个主和两个奴隶指向它。记下主节点的名字,因为我们需要它来当我们开始协调器。在这种情况下,它是replication_agustin.286589_master,最后的输出make.sh脚本的输出。

要部署协调器容器,运行以下命令:

在这种情况下,我们启用了一个端口重定向,所以主机端口32887是映射到协调器容器的端口3000。这是很重要的,这样我们可以访问web UI的协调器。我们决定处理这个问题的最简单方法是让码头工人选择一个随机的(免费的)端口的主机。如果你愿意,你可以很容易地改变这种docker-compose。yml文件。

如果您使用的是远程服务器,您可以使用SSH来做转发到您的本地主机端口3000,如:

在此之后,您将能够访问localhost: 3000在您的浏览器(或localhost: 32887如果部署在本地),应当会看到类似如下:

协调器的web UI显示配置集群

如果你点击集群名称(在我们的例子中,将“percona”默认情况下):雷竞技下载官网

协调器的观点对当前主从设置

从CLI看到相同的,我们可以运行以下命令。注意,我们使用包装器来访问bash协调器容器内。

清理

当你完成测试,你应该调用的脚本下来论点。

所示的错误make.sh预计运行,因为我们使用的是共享的网络,以便看到彼此透明容器。你可以无视他们如果你看到这些消息,只有第一次运行。

协调器和高可用性

协调器有几个在一个高度可用的模式下运行的方法。你可以阅读更多关于它在这里。我们目前的一个方法,使用筏和sqlite(如记录在这里)。

第一步是,有一个MySQL安装工作:

然后,我们就可以开始我们的协调器HA设置(仅以同样的方式,使用另一个码头工人组成项目):

请注意我们现在有三个协调器容器,每个端口重定向到主机。领导者将node1:orchestrator_agustin.5af896_orchestrator_1。再一次,我们可以使用CLI检查拓扑:

或通过web UI(在我的情况下,在创建SSH隧道3000端口,如上所示):

协调器的观点对当前主从设置

测试奴隶促销

因为我们有协调器启动和运行,让我们试着做一个手工奴隶推广:

经过一些秒过去了,最后的状态是成功的web UI中显示(有时你需要等待一些时间,没有经历或重新加载页面缓存,即使)。

清理

删除所有容器和创建脚本,运行以下命令:

总结

我们已经看到如何创建三个MySQL节点和使用与单个节点和协调器节点HA设置。如果你想做任何更改配置提供默认情况下,你可以找到所有cnf_files /子目录下的配置文件,在每一个项目的目录。享受测试!

相关的链接

Shlomi最近的博客上部署测试实例:协调器:什么是新的在CI,测试与开发

5评论
最古老的
最新的<跨度class="wpdiscuz-sort-button wpdiscuz-vote-sort-up" data-sorting="by_vote">大多数投票
内联反馈
查看所有评论
费尔南多

好阿古斯!

躺下睡觉

为什么这不能被用于刺激吗?什么
建议步骤创建类似的刺激吗?谢谢

我已经定制docker-entrypoint。上海来run docker swarm for autodiscovery and Orchestrator tool in this post I don’t understand so much

嗨,睡觉,
在生产中不推荐使用,因为我们还没有设计。我们不仅缺乏一个QA过程,但也没有考虑诸如数据持久性。我们使用这些出于测试目的,并把它们看作一次性。如果你想调整到你的喜欢,你是免费的,但你自己也

爆炸,
我不知道你不明白,或者如果你发送的是一个问题。如果你需要帮助,请让我们知道详细。请注意,您应该使用这些类型的问题的论坛:https://forums.雷竞技下载官网percona.com/。回到这篇文章如果需要,你可以联系更多的参考。