问题描述
我们有一个 AKS 集群,上面部署了一些 helm chart。
在 helm 部署之后,一个节点 (node-A) 上的服务(我们称之为 my-service)不再能够从另一个节点 (node-B) 上的特定 pod (my-pod) 访问。
在部署时,我没有注意到,但可能 pod 从一个节点移动到另一个节点。
写下我的发现和执行路径以帮助他人:
- 尝试从 my-pod 解析(
kubectl exec -it <pod> bash
和curl -v <host>
)other-service(pod 在节点 A 上):这行得通。 - 尝试从节点 B 上的另一个 pod 解析 my-service:不起作用。
- 尝试从节点 A 上的 pod 解析 my-service:这行得通。
结论:节点 B 上的所有 pod 都无法访问 my-service。节点 A 上的所有其他服务都可以从节点 B 上的 pod 访问。
在检查命名空间 kube-proxy
(kube-system
) 中 kubectl get pods -o wide -n kube-system | grep kube-proxy
的特定节点上的日志时,我一遍又一遍地重复出现以下日志行:
I0120 08:05:56.330135 1 reflector.go:185] Listing and watching *v1.Service from k8s.io/client-go/informers/factory.go:135
E0120 08:05:56.330535 1 reflector.go:153] k8s.io/client-go/informers/factory.go:135: Failed to list *v1.Service: Get https://cluster.hcp.francecentral.azmk8s.io:443/api/v1/services?labelSelector=%21service.kubernetes.io%2fheadless%2C%21service.kubernetes.io%2Fservice-proxy-name&limit=500&resourceVersion=0: write tcp 10.240.0.35:52880->51.11.230.223:443: write: broken pipe
重新启动该特定 pod 后,可以再次从 my-pod 访问 my-service。
我对此有疑问:
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)