Kubernetes MySQL复制 – 主服务主机查询

我目前有一个在Kubernetes集群上设置了asynchronous复制的MySQL master和slave。

如果主人倒下了,我正在试图规划一个紧急情况,奴隶会捡起松弛的东西。 我想第一步是查看在Dockerfiles中定义ENTRYPOINT的Dockerfiles和脚本。

当我kubectl get svc ,这是我得到的关于服务的信息。 在这里输入图像说明

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

现在,当我通过辅助脚本docker-entrypoint.sh为MySQL 奴隶 Docker镜像docker-entrypoint.sh ,我注意到这一行有助于设置主从场景(为了突出显示,我修剪了这一行)

在这里输入图像说明

当我启动到Kubernetes上的从属群时,环境variables$MYSQL_MASTER_SERVICE_HOST被设置为10.0.156.209

在这里输入图像说明

我的问题: MySQL从服务器群是如何知道使用主群集IP作为$MYSQL_MASTER_SERVICE_HOST的值的? 这是一个Kubernetes的事情或SQL的东西?

谢谢 :)

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

当Pod在节点上运行时,kubelet将为每个活动的Service添加一组环境variables。

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