问题现象
创建或添加 Ingress 资源时报错“xxx failed calling webhook xxx”。
原因分析
创建或添加 Ingress 资源时,需要通过服务(默认为:ingress-nginx-controller-admission)验证 Ingress 的合法性。若链路出现问题(例如:服务被删除、Ingress controller 被删除),会导致验证失败,Ingress 资源将被拒绝添加。
解决方案
- 按照 Webhook 链路检查资源是否均存在且正常工作,链路为 ValidatingWebhookConfiguration > Service > Pod。
- 确认 Ingress Controller Pod 的 admission 功能已打开,且能够正常从外部访问到该 Pod。
- 若 Ingress Controller 已被删除或不需要 Webhook 功能,可直接将 ValidatingWebhookConfiguration 资源删除。