这个问题的原因其实比较简单,在sidecar容器istio-proxy里,Envoy不能访问Pilot的原因是集群DNS无法解析istio-pilot.istio-system这个服务名字。在容器里看到resolv.conf配置的DNS服务器地址是172.19.0.10,这个是集群默认的kube-dns服务地址。

但是客户删除、重建了kube-dns服务,且没有指定服务IP地址,这实际上导致集群DNS的地址改变了,这也是所有的sidecar都无法访问Pilot的原因。

最后,通过修改kube-dns服务,指定IP地址,sidecar恢复正常。
