调用 webhook“validate.nginx.ingress.kubernetes.io”失败:在 Kubernetes 中应用入口时出错

时间:2021-07-29 12:47:44

标签: nginx kubernetes kubernetes-ingress kubernetes-pod

我正在使用 kubeadm 创建我的 Kubernetes 单节点集群。应用入口 ngnix 控制器后,当我尝试应用入口文件时出现以下错误。

我在应用入口时收到以下错误:

Error from server (InternalError): error when creating "ingress.yaml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": dial tcp 10.101.247.233:443: connect: connection refused

我目前正在使用入口 nginx 控制器。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

这通常是因为ValidatingWebhookConfiguration的配置有问题。当您部署 nginx 控制器时,它会部署多个资源,其中之一就是此验证,其功能是验证您稍后创建的所有入口。有时可能会发生通信问题,即使具有正确的入口结构,您也会收到该错误。

我的建议:

  • 检查您的入口结构是否正确
  • 备份当前验证并删除它,检查问题是否已解决(即使这可能不是最好的解决方案,但它肯定会起作用) 您可以通过以下方式实现:
    kubectl get ValidatingWebhookConfiguration -o yaml > ./validating-backup.yaml

    kubectl delete ValidatingWebhookConfiguration <name of the resource>

小心,因为 ValidatingWebhookConfiguration 是集群范围的

最后,如果您想保留 ValidatingWebhookConfiguration,最好的选择可能是使用 helm 重新部署整个 Ingress Controller,以确保它得到正确部署。以下是使用该验证的原因:link

来源: