kubernetes 状态集连接

kubernetes stateful set connection

我开始体验有状态集,我在 kubernetes 网站上关注这个 link

http://kubernetes.io/docs/tutorials/stateful-application/run-replicated-stateful-application/

如何将我的 java 应用程序连接到 mysql 数据库状态集(它们都在同一个 kubernetes 集群节点和命名空间中)?我应该连接到什么服务?我应该使用哪个地址? 我试了 mysql-read.default.svc.cluster.local:3306 没用!!!

这个问题被交叉发布到 the Vitess mailing list 并在那里得到解决。事实证明,这是因为用户修改了教程设置,为 root 用户添加了密码。因此,预期无密码登录工作的就绪性探测失败,并且 mysql-read 服务没有有效的端点。

您需要如下更改服务,

StatefulSet 成员的稳定 DNS 条目的无头服务。

api版本:v1 种类:服务 元数据: 姓名:mysql 标签: 应用:mysql 规格: 端口: - 姓名:mysql 端口:3306 选择器: 应用:mysql

类型:LoadBalancer

用于连接到任何 MySQL 实例以进行读取的客户端服务。

对于写入,您必须改为连接到主机:mysql-0.mysql。

api版本:v1 种类:服务 元数据: 姓名:mysql-已读 标签: 应用:mysql 规格: 端口: - 姓名:mysql 端口:3306 选择器: 应用:mysql 类型:负载均衡器

因此,您将拥有外部 ip 来连接您的 mysql master /slave

在命令提示符中:mysql -uroot -h30.12.11.21 -P3306(将主机替换为您的负载均衡器 ip)