nimramubashir
nimramubashir

Reputation: 73

Failed calling webhook "validate.nginx.ingress.kubernetes.io": error while applying the ingress in Kubernetes

I'm creating my Kubernetes single node cluster using kubeadm. After applying the ingress ngnix controller, I'm getting the following error when I try to apply the ingress file.

I'm getting the following error while applying the ingress:

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

I'm currently using the ingress nginx controller. How can I resolve this issue?

Upvotes: 3

Views: 11954

Answers (1)

Mauro
Mauro

Reputation: 170

This usually happens because there is a problem in the configuration of the ValidatingWebhookConfiguration. When you deploy the nginx controller it deploys multiple resources, one of those is this validation, which function is to validate all the ingress that you create later on. Sometimes it might happen that there is a communication problem and you get that error even having the correct structure for the ingress.

My recommendations:

  • Check if the structure of your ingress is correct
  • Backup the current validation and delete it, check if the problem is solved (even though this might not be the best solution for sure it will work) You can achieve this by doing:
    kubectl get ValidatingWebhookConfiguration -o yaml > ./validating-backup.yaml

    kubectl delete ValidatingWebhookConfiguration <name of the resource>

be carefull since the ValidatingWebhookConfiguration is cluster wide

Finally, if you want to keep the ValidatingWebhookConfiguration, the best option might to redeploy the whole Ingress Controller using helm, so you ensure it gets correctly deployed. Here is they why that validation is used: link

Sources:

Upvotes: 3

Related Questions