在Kubernetes中为MySQL生产容器设置复制

时间:2019-11-22 05:43:19

标签: mysql docker kubernetes openshift

用例:一个MySQL实例将在具有所需数据库的生产环境中运行。我需要将该运行中的容器配置为主服务器,并再启动一个MySQL实例作为从服务器。

挑战:在将运行中的MySQL实例配置为主角色时遇到问题。该问题无法创建复制用户,也无法将主/从配置附加到my.cnf文件。原因是,

  1. 要创建复制用户或在容器中执行任何自定义SQL命令,我们必须将initdb.sql和必需的SQL命令放入docker-entrypoint-initdb.d内。因此,在容器启动时,它执行docker-entrypoint-initdb.d中存在的文件并执行它,如果尚未创建数据库,则如果数据库已经创建,它将跳过执行驻留在docker-entrypoint-initdb.d中的.sql文件。这是未能配置master的根源,因为MySQL正在生产环境中运行数据库。因此,我无法采用此解决方案来配置为MySQL。
  2. 面对此问题后,我们计划将配置SQL命令放在.sh中,并保留在docker-entrypoint-initdb.d中,并通过修补部署来执行它们。在这种情况下,执行.sh文件时,我们会遇到一些权限问题。

我需要为kubernetes世界中的MySQL实例配置复制(主从)。我浏览了很多文章,以了解如何实现此目的。正如我所期望的和上面解释的那样,没有任何结果。与此同时,我发现了一个自定义映像(bitnami / mysql),它支持设置复制,我不想使用它,因为最终我将无法在生产环境中实现它。

因此,如果有人通过建议任何解决此问题的方法来帮助我,将不胜感激。

非常感谢您!!!

0 个答案:

没有答案