[k8s] ingress 리소스가 적용되지 않는 현상 해결 (feat: kubeadm)

sang yun Lee·2023년 9월 17일
0

k8s

목록 보기
7/21

문제


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

원인


ValidatingWebhookConfigurationingress-nginx-admission 리소스가 검증에서 실패를 야기하고 있었다.

그러나 검증에 실패하는 이유는 아직 명확하게 파악하지는 못하였다.
어떤 이는 방화벽 문제를 고쳐서 해결했다는 의견이 있었으나 내 상황 (클라우드 k8s 가 아닌 점) 과 다른 부분이 있는 듯 보였다.

레퍼런스


2개의 댓글

comment-user-thumbnail
2024년 8월 30일

https://github.com/kubernetes/ingress-nginx/issues/5968

CA=$(kubectl -n ingress-nginx get secret ingress-nginx-admission -ojsonpath='{.data.ca}')
kubectl patch validatingwebhookconfigurations ingress-nginx-admission --type='json' -p='[{"op": "add", "path": "/webhooks/0/clientConfig/caBundle", "value":"'$CA'"}]'

동일 증상이었는데 지우기싫어서 이렇게하니까 됐습니다.

1개의 답글