Istio清理后仍触发Sidecar注入,如何排查标签读取方?
排查K8s中读取
istio-injection标签的注册资源 你遇到的问题核心是Istio卸载后残留了MutatingWebhookConfiguration资源,这个资源会监听Pod创建事件,读取命名空间的istio-injection=true标签来执行Sidecar注入逻辑。当对应的Istio webhook服务已经被删除后,K8s控制器调用这个不存在的webhook就会报错,导致部署卡住。
以下是具体的检查步骤:
检查集群中残留的Istio相关MutatingWebhookConfiguration:
kubectl get mutatingwebhookconfigurations | grep istio通常会看到类似
istio-sidecar-injector的资源,这就是在读取istio-injection标签的对象。查看该webhook的详细配置,确认它和标签的关联:
kubectl describe mutatingwebhookconfigurations <webhook-name>在输出的
NamespaceSelector字段中,会明确看到匹配istio-injection=true标签的规则,证明这个webhook在监听带该标签的命名空间下的Pod创建。同时检查ValidatingWebhookConfiguration,Istio的验证类webhook也可能残留:
kubectl get validatingwebhookconfigurations | grep istio若需要彻底清理,直接删除残留的webhook资源即可:
kubectl delete mutatingwebhookconfigurations <webhook-name> kubectl delete validatingwebhookconfigurations <webhook-name>
注:istioctl x uninstall --purge偶尔会因为资源依赖或网络波动未完全清理webhook资源,导致后续部署触发无效的webhook调用。
内容的提问来源于stack exchange,提问作者David S.
相关产品推荐
相关产品推荐

