我有一个在 1.11.2-gke.15 上运行的 GKE 集群,我的 pod 无法相互通信。
看起来 DNS 解析是在容器内部进行的
# nslookup myapp.testns.svc.cluster.local
Server: 10.7.5.10
Address: 10.7.5.10#53
Non-authoritative answer:
Name: myapp.testns.svc.cluster.local
Address: 10.7.13.156
然而,当我尝试实际使用该服务时,它似乎不起作用
# telnet myapp.testns.svc.cluster.local 8080
Trying 10.7.13.156...
这个问题似乎是在我将集群从 1.10 升级到 1.11.2 后出现的
我尝试重新启动节点和所有 pod,但没有成功。
我是否遗漏了一些显而易见的东西?
更新 1:
我发现集群中由节点自动缩放器创建的节点之一无法访问。其中的所有 pod 都无法被其他节点中的 pod 访问。
解决方案是手动缩小集群,然后让自动缩放器再次扩大规模,这样新节点就可以访问了。我不确定为什么会发生这种情况,也不知道将来如何防止这种情况发生,所以欢迎提出建议
答案1
看起来这可能是版本 1.11.2-gke.15 的问题,它被报告为私人问题。1.11.2 的新修订版(gke.18)即将推出,可解决此问题。