问题描述
我之前已经使用 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
- 删除了所有编织豆荚
- 通过 istioctl x uninstall --purge 重新安装 istio
- 开启所有虚拟机防火墙
- sudo iptables -P 输入接受 sudo iptables -P 转发接受 sudo iptables -P 输出接受 须藤 iptables -F
- 重启所有节点
- 手动 istio pod 注入
设置
- k8s 版本:1.21.2
- istio:1.10.3
- HA 设置
- CNI:编织
- CRI:容器
解决方法
对于为什么会发生这种情况,我没有明确的答案。但是kube-apiserver不能通过服务IP访问istiod,我用的是istiod pod IP可以连接。
因为我无法控制 VM 和较低的网络层,并且不确定它们是否已更改某些内容(因为它之前可以正常工作)。
我通过将 CNI 从编织改为法兰绒来完成这项工作