mysql - Kubernetes MySQL复制-Master服务主机查询

标签 mysql sql docker containers kubernetes

我目前有一个正在运行的 MySQL 主服务器和从服务器,并在 Kubernetes 集群上设置了异步复制。

我正在尝试为意外情况做好计划,如果主服务器宕机,从服务器将弥补空缺,等等。我认为第一步是检查 Dockerfile 和在 Dockerfile 中定义 ENTRYPOINT 的脚本。

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

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

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

enter image description here

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

enter image description here

我的问题:MySQL Slave Pod 如何知道使用主节点的集群 IP 作为 $MYSQL_MASTER_SERVICE_HOST 的值?这是 Kubernetes 的事情还是 SQL 的事情?

谢谢:)

最佳答案

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

When a Pod is run on a Node, the kubelet adds a set of environment variables for each active Service.

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

关于mysql - Kubernetes MySQL复制-Master服务主机查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44428356/

相关文章:

mysql - XAMPP 中的 SQL 查询

php - 仅获取文件名

mysql - 使用另一个表中函数的最大结果更新表

java - 无法从我的表中删除行

docker - 通过 Docker 设置 Jekyll?

security - 为什么 Docker Secrets 被认为是安全的?

PHP:在函数内创建 MYSQL 查询

sql - Postgres 只选择满足条件的列

sql - 如何在 Ruby on Rails 迁移中使用 'gaps' 修复列的​​顺序

docker-compose run 返回/bin/ls 无法执行二进制文件