Kubernetes
에서 Ingress 리소스
를 추가하려 했는데 다음과 같이 에러가 발생했다.
리소스 추가 요청
$ kubectl apply -f ingress.yaml
결과:
Error from server (InternalError): error when creating "argo.ingress.yaml": Internal error occurred: failed calling webhook "validate.nginx.ingress.kubernetes.io": failed to call webhook: Post "https://ingress-nginx-controller-admission.ingress-nginx.svc:443/networking/v1/ingresses?timeout=10s": dial tcp 10.107.89.209:443: connect: connection refused
그래서 원인을 찾아보았다.
아래와 같이 검증하는 리소스를 제거해줌으로써 해결하였다.
kubectl delete -A ValidatingWebhookConfiguration ingress-nginx-admission
근본적인 해결방법은 아닌 것 같다.
추후에 해결 방법을 찾기 위해 일단 관련 리소스의 yaml
을 저장해놓았다. (링크)
# 리소스 정보를 yaml파일로 변환
$ kubectl get validatingwebhookconfiguration ingress-nginx-admission -oyaml > ingress-nginx-admission.yaml
ValidatingWebhookConfiguration
의 ingress-nginx-admission
리소스가 검증에서 실패를 야기하고 있었다.
그러나 검증에 실패하는 이유는 아직 명확하게 파악하지는 못하였다.
어떤 이는 방화벽 문제를 고쳐서 해결했다는 의견이 있었으나 내 상황 (클라우드 k8s 가 아닌 점) 과 다른 부분이 있는 듯 보였다.
https://github.com/kubernetes/ingress-nginx/issues/5968
동일 증상이었는데 지우기싫어서 이렇게하니까 됐습니다.