DevOps/Kubernetes

[Kubernetes] No Ingressclass resource with name nginx found 문제 해결하기 (Helm stable repo)

Henu 2022. 3. 31. 19:37
 

Stable 및 Incubator 차트를 위한 새로운 공간

헬름 - 쿠버네티스 패키지 매니저

helm.sh

 

결론

helm repo remove stable

helm repo add bitnami https://charts.bitnami.com/bitnami

stable은 더 이상 업데이트를 하지 않는다.

bitnami repo를 쓰던가 따로 찾아서 쓰기로 생각했다.

 

 

서론

 

helm을 사용하려면 로컬에 helm repo 를 등록해야 한다.

그래서 주로 사용하는 repo면서, 책에서도 소개한 repo 면서, Helm 공식 사이트에서도 소개하는 repo인 stable을 설치하기 위해서는 다음 명령어를 입력하면 된다.

 

helm repo add stable https://charts.helm.sh/stable --force-update

 

이렇게 stable 레포의 add가 완료되어, helm install nginx-ingress stable/nginx-ingress 를 수행했을 것이다.

 

 

아마 아래와 같이 nginx-ingress-controller 파드의 에러 때문에 ingress-controller를 설치할 수가 없을 것이다.

 

 

본론

 

그래서 IngressClasses 에러가 왜 뜨냐고?

 

 

GitHub - helm/charts: ⚠️(OBSOLETE) Curated applications for Kubernetes

⚠️(OBSOLETE) Curated applications for Kubernetes. Contribute to helm/charts development by creating an account on GitHub.

github.com

 

깃허브를 보면 알겠지만 stable repo는 업데이트를 멈춘지 2년이 넘었다.

 

그 사이에 K8s 진영에서는 apiVersion을 업데이트하면서 이전 버전의 apiVersion을 지원하지 않게 되었다.

 

대표적으로 networking.k8s.io/v1beta1, extensions/v1beta1 같이 beta가 들어간 버전들의 지원을 중단했다.

 

지원이 중단되면서 발생한 단적인 예로 networking.k8s.io/v1 의 Ingress.rules에 설정하는 serviceName과 servicePort가 사라진 것을 볼 수 있다.

 

그래서 결론은 stable에서는 버전에 맞지 않는 api를 쓰기 때문에 잡다한 에러가 많이 생길 것으로 예상 된다는 것이다.

 

Deprecated API Migration Guide

As the Kubernetes API evolves, APIs are periodically reorganized or upgraded. When APIs evolve, the old API is deprecated and eventually removed. This page contains information you need to know when migrating from deprecated API versions to newer and more

kubernetes.io