← 문제 라이브러리
K8s 중급 K8S 030 · 19분

새 Ingress가 외부 도메인에서 404: 다른 인그레스 컨트롤러가 가져감

클러스터에는 외부 공개용(nginx-external)과 사내용(nginx-internal) 인그레스 컨트롤러가 따로 있습니다.

검수된 문제무료
시나리오

클러스터에는 외부 공개용(nginx-external)과 사내용(nginx-internal) 인그레스 컨트롤러가 따로 있습니다. 오늘 새 고객 포털을 외부에 공개하려고 Ingress를 만들었는데, portal.acme.dev에 접속하면 nginx의 기본 404 페이지만 나옵니다. 파드와 Service는 정상이고, 클러스터 안에서 Service로 직접 호출하면 포털 첫 화면이 잘 나옵니다. Ingress 매니페스트는 사내 관리 도구의 것을 복사해 호스트 이름만 고쳤습니다.

단서
kubectl get ingress,ingressclass
NAME     CLASS            HOSTS              ADDRESS      PORTS
portal   nginx-internal   portal.acme.dev    10.0.8.20    80, 443

NAME             CONTROLLER
nginx-external   k8s.io/ingress-nginx
nginx-internal   k8s.io/ingress-nginx
외부에서 확인
$ dig +short portal.acme.dev
34.120.18.77   # 외부 로드밸런서(nginx-external)

$ curl -sI https://portal.acme.dev | head -1
HTTP/2 404
Service 와 endpoint
$ kubectl get endpoints portal
NAME     ENDPOINTS
portal   10.2.4.11:8080,10.2.4.12:8080

과제 원인을 좁히고, 서비스를 되살리는 순서(검증 포함)와 재발 방지책을 적어 보세요.

먼저 볼 것
  • Ingress 리소스를 실제로 처리하는 컨트롤러가 어느 것인지
  • 앱 문제와 라우팅 문제 구분하기
점검 체크리스트
  1. kubectl get ingress 의 CLASS와 ADDRESS
  2. DNS가 가리키는 로드밸런서가 어느 컨트롤러의 것인지
  3. Service endpoint가 채워져 있는지