我们已将 Azure 上的 Kubernates 服务集群升级到最新版本 1.12.4。此后,我们突然意识到 pod 和节点无法再通过私有 IP 进行通信:
kubectl get pods -o wide -n kube-system -l component=kube-proxy
NAME READY STATUS RESTARTS AGE IP NODE
kube-proxy-bfhbw 1/1 Running 2 16h 10.0.4.4 aks-agentpool-16086733-1
kube-proxy-d7fj9 1/1 Running 2 16h 10.0.4.35 aks-agentpool-16086733-0
kube-proxy-j24th 1/1 Running 2 16h 10.0.4.97 aks-agentpool-16086733-3
kube-proxy-x7ffx 1/1 Running 2 16h 10.0.4.128 aks-agentpool-16086733-4
如您所见,节点 aks-agentpool-16086733-0 具有私有 IP 10.0.4.35 。当我们尝试检查此节点上的 pod 日志时,我们收到以下错误:获取https://aks-agentpool-16086733-0:10250/containerLogs/emw-sit/nginx-sit-deploy-864b7d7588-bw966/nginx-sit?tailLines=5000×tamps=true:拨号 tcp 10.0.4.35:10250:i/o 超时
我们也在这个节点上安装了 Tiller (Helm),如果尝试连接 Tiller,我们会从客户端 PC 收到这样的错误:
shmits-imac:~ andris.shmits01$ helm version
Client: &version.Version{SemVer:"v2.12.3", GitCommit:"eecf22f77df5f65c823aacd2dbd30ae6c65f186e", GitTreeState:"clean"}
Error: forwarding ports: error upgrading connection: error dialing backend: dial tcp 10.0.4.35:10250: i/o timeout
有人知道为什么 pod 和节点通过私有 IP 失去连接吗?
答案1
请检查集群控制平面安全组值是否与升级前后相同。安全组的更改将导致控制平面和 Pod 之间的通信问题。