Istio安装失败ingressgateway就绪探针连接拒绝 边车注入异常
排查步骤
1. 优先处理节点通信异常
你遇到的kubectl logs超时是最核心的优先排查点,该报错说明master节点无法访问slave节点的kubelet 10250端口:
- 登录master节点执行
telnet 192.168.0.154 10250验证连通性,不通则按以下顺序排查:- 检查华为云ECS安全组规则,放开master与slave节点之间所有内网端口的出入规则,至少包含:6443、10250、10251、10252、2379-2380,以及你所用CNI插件的专属端口(Flannel需开放8285、8472;Calico需开放4789、5473)
- 检查两台节点的本地防火墙配置,执行
sudo ufw status查看ufw状态,若为开启状态执行sudo ufw disable临时关闭验证
2. 排查Pod网络连通性
Ingressgateway的就绪探针失败,说明集群内部无法访问Pod网段的服务端口:
- 先检查kube-system命名空间下所有CNI相关Pod是否全部处于Running状态,确认CNI插件无异常
- 登录slave节点执行
curl http://10.244.1.4:15021/healthz/ready本地验证端口连通性:- 若本地也无法访问,说明istio-proxy容器启动失败,直接在slave节点用容器运行时查看日志:
- Docker运行时:
sudo docker ps | grep istio-proxy拿到容器ID,再执行sudo docker logs [容器ID]查看具体报错 - Containerd运行时:
sudo crictl ps | grep istio-proxy拿到容器ID,再执行sudo crictl logs [容器ID]查看具体报错
- Docker运行时:
- 若本地也无法访问,说明istio-proxy容器启动失败,直接在slave节点用容器运行时查看日志:
3. 排查Sidecar注入失败问题
开启自动注入后httpbin无法创建Pod,是因为kube-apiserver调用Istio的MutatingWebhook异常:
- 查看kube-apiserver的日志,筛选httpbin相关的报错,一般为调用istiod服务的443端口超时
- 分别在master、slave节点上测试与istiod服务IP的15012、443端口连通性,不通则回到节点安全组/防火墙规则排查
4. 快速验证方法
你可以临时将istio-ingressgateway调度到master节点验证问题根因,执行以下命令(将[k8s-master-hostname]替换为你master节点的真实hostname):
kubectl patch deployment istio-ingressgateway -n istio-system -p '{"spec":{"template":{"spec":{"nodeSelector":{"kubernetes.io/hostname":"[k8s-master-hostname]"}}}}}'
若修改后ingressgateway正常启动,可100%确认是slave节点的网络/安全组配置问题。
完成所有排查修复后,重新执行Istio安装命令即可正常部署ingressgateway,后续可正常运行官方流量管理示例。
内容的提问来源于stack exchange,提问作者Timothy Wu
相关产品推荐
相关产品推荐

