kubernetes - 调用 webhook 失败“namespace.sidecar-injector.istio.io”
问题描述
我之前已经让我的部署与 istio ingressgateway 一起工作。我不知道在 istio 或 k8s 方面所做的任何更改。
当我尝试部署时,我在副本集方面看到一个错误,这就是它无法创建新 pod 的原因。
创建错误:发生内部错误:调用 webhook "namespace.sidecar-injector.istio.io" 失败:发布 "https://istiod.istio-system.svc:443/inject?timeout=10s": dial 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 INPUT ACCEPT sudo iptables -P FORWARD ACCEPT sudo iptables -P OUTPUT ACCEPT sudo iptables -F
- 重新启动所有节点
- 手动 istio pod 注入
设置
- k8s版本:1.21.2
- istio:1.10.3
- 高可用性设置
- CNI:编织
- CRI:容器化
解决方案
对于为什么会发生这种情况,我没有明确的答案。但是 kube-apiserver 无法通过服务 IP 访问 istiod,当我使用 istiod pod IP 时它可以连接。
因为我无法控制虚拟机和较低的网络层,并且不确定它们是否改变了某些东西(因为它以前可以工作)。
我通过将我的 CNI 从编织更改为法兰绒来完成这项工作
推荐阅读
- python - 计算numpy数组的所有子数组之间的相对距离
- reactjs - IE11 中的 Debounce '对象不支持此操作'
- security - 如何在 Ignite 日志中禁用打印用户数据
- apigee - PreFlow 策略中的条件
- c++ - Libfreenect:为什么深度回调函数不执行?
- python - 如何使用 futures = session.get(url, headers=header for headers1) 对挂起的标头项目运行重试
- json - 将过程的结果(集)反转为 json 格式
- swift - 快速查找特定位置的视图
- python - pycryptodome:对象类型
无法传递给 C 代码 - 虚拟环境 - python - 在查找 Sigmoid 函数的导数时出现错误(numpy.ndarray 不可调用)