【问题标题】:Kubernetes MySQL replication - Master service host inquiryKubernetes MySQL 复制 - 主服务主机查询
【发布时间】:2017-11-09 17:37:03
【问题描述】:

我目前在 Kubernetes 集群上设置了具有异步复制功能的工作 MySQL 主服务器和从服务器。

我正在尝试计划一个应急方案,如果主人倒下,奴隶会收拾残局,什么都不会。我认为第一步是查看 Dockerfile 和定义 Dockerfile 中 ENTRYPOINT 的脚本。

当我kubectl get svc 时,这是我获得的有关服务的信息。

这告诉我在集群上,master 有一个 IP 10.0.156.209

现在,当我浏览 MySQL slave Docker 映像的帮助程序脚本 docker-entrypoint.sh 时,我注意到有助于设置主从方案的这一行(我修剪该行只是为了突出这一点)

当我启动到 Kubernetes 上的 slave pod 时,环境变量 $MYSQL_MASTER_SERVICE_HOST 设置为 10.0.156.209

我的问题: MySQL slave pod 是如何知道使用 master 的集群 IP 作为 $MYSQL_MASTER_SERVICE_HOST 的值的?这是 Kubernetes 的事情还是 SQL 的事情?

谢谢你:)

【问题讨论】:

    标签: mysql sql docker containers kubernetes


    【解决方案1】:

    这些环境变量由 Kubernetes 为每个服务自动创建。见:https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/#environment-variables

    当 Pod 在 Node 上运行时,kubelet 会为每个活动的 Service 添加一组环境变量。

    另一方面,Kubernetes 上的 mysql 是一个复杂的话题。您可能不想推出自己的解决方案。你看过Vitess吗?

    【讨论】:

    • 感谢您的快速回复。当我在做一些基础教程时,我一定错过了这一点?是的,到目前为止,这有点痛苦。我会调查 Vitess :) 谢谢你的建议!
    猜你喜欢
    • 2015-06-07
    • 2015-09-07
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多