首页 > 解决方案 > Kubernetes 的 Pod 无法访问外部 MySQL 服务器

问题描述

我在 Hetzner 的云基础设施上部署了一个 HA k8s 集群。我使用 i cilium (1.9.0) 的 CNI,而我的云控制器管理器是 Hetzner 的 CNI(hcloud-ccm,部署了私有网络支持)。网络似乎工作正常,除了当我在一个 pod 中执行并尝试通过以下方式连接到我的数据库时:

mysql -uroot -h123.123.123.123 -ppassword

我收到以下错误:

ERROR 1045 (28000): Access denied for user 'root'@'static.176.165.55.162.clients.your-server.de'(使用密码:YES)

我已经检查了 mysql 并且确定 mysql.user 表中存在 'root'@'%' 的条目,所以这不是问题。

我还尝试使用端点创建无选择器服务。
在这种情况下,nslookup test-mysql正确返回的内容如下:

Server:     10.96.0.10
Address:    10.96.0.10#53

Name:   test-mysql.default.svc.cluster.local
Address: 123.123.123.123

然而试图通过以下方式访问mysql:

mysql -uroot -htest-mysql -ppassword

产量:

ERROR 1045 (28000): Access denied for user 'root'@'static.176.165.55.162.clients.your-server.de'(使用密码:YES)

我从来没有见过这个问题,也不知道从哪里开始。我什至不明白为什么它会解析为这样的主机名。Coredns 原木很好,CCM 和 Cilium 也是如此。

标签: kubernetesdns

解决方案


推荐阅读