kubernetes - 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 也是如此。
解决方案
推荐阅读
- c# - 无法在 RequestFilterAttribute 中获取请求正文
- android - 使用 PackagingOptions 的目的是什么?
- azure-databricks - Azure Databricks:尝试运行 Spline 来捕获 Spark 沿袭?
- python - 如何在线程中使用 win32com(Excel 应用程序)?
- google-cloud-platform - SSH 未连接到机器 (GCP)
- php - 如何选择字符串的第 n 个字符
- android - Android 12 Beta 无法使用 CustomTabsIntent 查看 PDF 链接
- sql - 尝试使用 Snowflake sql 将一列拆分为多列
- java - 如何从 bash 命令行执行 testng xml 文件?
- google-apps-script - 如何从网络应用程序获取域内的谷歌个人资料信息?谷歌应用脚本