Reputation: 73
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
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:
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:
Personal experience
https://kubernetes.io/docs/reference/access-authn-authz/extensible-admission-controllers/
Upvotes: 3