调用 webhook“namespace.sidecar-injector.istio.io”失败

let*_*ive 7 kubernetes istio

我之前已经使用 istio ingressgateway 进行了部署。我不知道 istio 或 k8s 方面有任何更改。

当我尝试部署时,我在副本集端看到一个错误,这就是它无法创建新 Pod 的原因。

创建错误:发生内部错误:调用 webhook“namespace.sidecar-injector.istio.io”失败:发布“https://istiod.istio-system.svc:443/inject?timeout=10s”:拨打 tcp 10.104.136.116 :443: 连接:没有到主机的路由

当我尝试进入 api-server 并 ping 10.104.136.116(istiod 服务 IP)时,它只是挂起。

到目前为止我已经尝试过:

  • 删除所有 coredns pod
  • 删除所有 istiod pod
  • 删除了所有编织 Pod
  • 通过 istioctl x uninstall --purge 重新安装 istio
  • 关闭所有虚拟机防火墙
  • sudo iptables -P 输入接受 sudo iptables -P 转发接受 sudo iptables -P 输出接受 sudo iptables -F
  • 重新启动所有节点
  • 手动 Istio Pod 注入

设置

  • k8s版本:1.21.2
  • 伊斯蒂奥:1.10.3
  • 高可用性设置
  • CNI:编织
  • CRI:containerd

Ric*_*pie 1

就我而言,这是由于防火墙造成的。按照此 Istio 调试指南,我发现该kubectl get --raw /api/v1/namespaces/istio-system/services/https:istiod:https-webhook/proxy/inject -v4命令超时,而所有其他集群内部调用都正常。

诊断此问题的最佳方法是暂时打开涉及0.0.0.0/0端口的AWS 安全组15017,然后重试。如果错误不再显示,则您知道需要修复此部分。

我将 EKS 与 Amazon VPC CNI v1.12.2-eksbuild.1 结合使用