본문 바로가기
Q&A해결2026년 4월 20일1분 읽기

Kubernetes 1.36 업그레이드 후 Ingress가 IngressClass를 인식 못 합니다

인
인프라초보
조회 560댓글 1

Kubernetes 1.34 → 1.36으로 업그레이드했더니 기존 Ingress들이 모두 IngressClass를 못 찾는 상태가 됐습니다. kubectl get ingress는 멀쩡한데 실제 라우팅이 안 됩니다.

로그에 "no IngressClass available with name 'nginx'"가 떨어집니다. nginx-ingress controller도 정상 동작 중이고 IngressClass 리소스도 있습니다.

1.36에서 뭐가 바뀐 건가요?

댓글 1

김김영삼6개월 전

1.36에서 Ingress-NGINX가 공식 EOL되었고 (3월 24일), 함께 기본 IngressClass 어노테이션 처리가 바뀌었습니다. 두 가지 동시 점검이 필요합니다.

1) IngressClass 리소스 자체가 살아있는지

kubectl get ingressclass

# 정상이면 이런 모양이어야 함
# NAME CONTROLLER PARAMETERS AGE
# nginx k8s.io/ingress-nginx <none> 1y

업그레이드 과정에서 IngressClass가 사라지거나 controller 라벨이 바뀐 케이스가 의외로 많습니다.

2) Ingress 리소스에 ingressClassName이 명시됐는지

레거시 어노테이션 kubernetes.io/ingress.class: nginx는 1.36에서 더 이상 권장되지 않습니다. 명시적 필드로 바꾸세요.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: api-ingress
spec:
ingressClassName: nginx # ← 이 필드 필수
rules:
- host: api.example.com
http: ...

실무 처방:

  1. 모든 Ingress 일괄 점검 — kubectl get ingress -A -o jsonpath='{range .items[*]}{.metadata.namespace}/{.metadata.name}: {.spec.ingressClassName}{"\n"}{end}'
  2. ingressClassName이 비어있는 것들은 helm 또는 kustomize 템플릿 수정
  3. IngressClass 리소스의 controller 필드가 실제 동작 중인 컨트롤러와 일치하는지 확인

더 큰 그림 — Gateway API 마이그레이션

1.36에서 Gateway API 1.4가 GA됐습니다. 그리고 Ingress-NGINX 자체는 더 이상 새 CVE 패치를 받지 않습니다. 인터넷에 노출된 Ingress-NGINX 인스턴스를 1주 이내에 다음 중 하나로 마이그레이션 권장:

  • NGINX Gateway Fabric — F5/NGINX 공식 후속 프로젝트, 마이그레이션 문서 가장 충실
  • Envoy Gateway — CNCF Incubating, 단순 교체용
  • 클라우드 매니지드 — AWS ALB Controller, GKE Gateway, AKS Application Gateway

긴급 임시 조치: 외부 노출 차단(WAF·VPN 뒤로 이동) + IngressClass·ingressClassName 정리. 그 다음 Gateway API 전환 일정 잡으세요.

Ctrl+Enter로 등록