본문 바로가기
devops/Kubernetes

kubernetes Ingress 란?

by 아이티.파머 2025. 10. 30.
728x90

kubernetes 에서 ingress 란?

http/https, ssl 및 라우팅을 해주는 기능을 담당한다. 이는 외부에서 클러스터 내부 어플리케이셔네 접근하는 진입경로 역활을 한다.

kubernates ingress 를 사용하기 위해서는 ingress controller service , ingress controller 와 resource에 대해 알아야 한다.

 

그림으로 보면 다음과 같다.

 

(1) 외부 클라이언트가 Pod(Application)에 접근 하기 위해 Host(HTTP/HTTPS) 를 입력하여 접근요청을 Ingress Controller 의 외부 IP로 보낸다.

(2) Ingress Controller Service에서 요청이 들어온걸 확인하고 HA로 구서된 Nginx Ingress Controller Pod-1, Pod-2 로 LoadBalancing 한다.

(3) Nginx Ingress Controller 에서 해당 요청을 받아, 등록된 리소스가 있는지 확인한다.

  • kind: Ingress지속적인 감시 진행 , 생성/변경/삭제 감지
  • Ingress Controller 는 resoure 를 주기적으로 감시하고 정책이 변경된게 있는지 확인한다.
  • 감지/변경을 확인하고 Controller 내부의 Nginx 설정을 동적으로 업데이트한다.

(4) 등록된 리소스 정보를 보고 이동해야할 Pod로 트레픽을 분기해준다.

  • 요청받은 host 및 path 정보에 따라 분기 시켜준다.

인그레스를 설치하게 되면 Ingress service와 ingress controller가 설치되며 HA구성시 ingress controller가 2개 이상 설치되게 된다.

- ingress controller service 
  ㄴ ingerss controller - pod1
  ㄴ ingress controller - pod2
  ㄴ ingerss controller - pod...

ingress controller service는 LoadBalancer or NodePort type 으로 외부 로드벨런스가 트레픽을 인그레스 컨트롤러 서비스 보냈을때, 이서비스는 ingress controller pod(…) 들로 트레픽을 분산한다.

이후 ingress controller pod는 ingress resource(config-map) 정보에 따라 Application Pod로 round-robin 정책에의에 트래픽을 분산한다.

 

 

그럼 Nginx의 Config정보는 언제 감시되고 언제 업데이트 되나?

ingress controller의 정책에 의해 실시간으로 감지되고 변경된 결과가 있으면 Nginx의 /etc/nginx/conf.d 파일을 재정의 하고 reload 한다.

'devops > Kubernetes' 카테고리의 다른 글

Spring boot KEDA 예제  (0) 2025.10.12
helm으로 argo cd install (nginx ingress 사용)  (0) 2025.10.11
kubernetes namespage  (0) 2024.04.25
kubernetes nodeport 란? k8s 네트워크 구성  (1) 2024.04.25
kubernetes minikube install  (0) 2024.04.25