인그레스(Ingress)는 쿠버네티스 클러스터 내의 서비스에 대한 외부 접근을 관리하는 API 오브젝트이다. 주로 HTTP와 HTTPS 트래픽을 관리하며, 클러스터 외부의 요청을 내부 서비스로 연결하는 라우팅 규칙을 정의한다. 부하 분산, SSL 종료, 이름 기반 가상 호스팅 등의 기능을 제공하여 복잡한 네트워크 트래픽을 효율적으로 제어하는 역할을 수행한다.

배너 광고

개요

인그레스는 쿠버네티스 API를 통해 정의한 규칙에 기반하여 외부 트래픽을 클러스터 내부의 백엔드 서비스에 매핑한다. 이는 URI, 호스트네임, 경로 등 웹 개념을 이해하는 프로토콜 인지형(protocol-aware) 설정 메커니즘을 이용한다. 인그레스는 클러스터 외부에서 접근 가능한 URL을 서비스에 제공하고, 트래픽을 로드 밸런싱하며, SSL/TLS를 종료하고, 이름 기반의 가상 호스팅을 구성하는 데 사용된다.

인그레스 컨트롤러

인그레스 리소스 자체는 라우팅 규칙을 정의하는 선언적 객체일 뿐이며, 이를 실제로 실행하기 위해서는 인그레스 컨트롤러(Ingress Controller)가 필요하다. 클러스터 내에서 적어도 하나의 인그레스 컨트롤러가 실행 중이어야 인그레스가 정상적으로 동작한다.

주요 인그레스 컨트롤러의 종류는 다음과 같다.

  • 공식 지원: AWS, GCE(Google Cloud Engine) 인그레스 컨트롤러
  • 서드파티: NGINX, Traefik, Apache APISIX, AKS 애플리케이션 게이트웨이 등

서비스 노출 방식 비교

애플리케이션을 외부로 노출하는 방법에는 인그레스 외에도 여러 옵션이 존재한다.

방식특징
ClusterIP클러스터 내부 IP를 사용하여 내부에서만 접근 가능함
NodePort각 노드의 특정 포트를 통해 서비스를 외부로 노출함
LoadBalancer클라우드 공급자의 로드 밸런서를 사용하여 외부 IP를 할당함
Ingress하나의 IP로 여러 서비스를 노출하며, L7 영역의 지능형 라우팅을 제공함

현재 상태 및 향후 전망

인그레스 API는 쿠버네티스 v1.19 버전에서 안정화(Stable) 단계에 도달하였다. 현재 인그레스 API는 동결(Frozen)된 상태로, 안정성은 보장되나 향후 새로운 기능 추가나 변경은 이루어지지 않는다. 쿠버네티스 프로젝트는 인그레스를 제거할 계획은 없으나, 보다 확장된 기능을 제공하는 게이트웨이 API(Gateway API) 사용을 권장하고 있다.

참고 자료

5
인그레스(Ingress) | Kubernetes인그레스(Ingress) | Kubernetes # 인그레스(Ingress) URI, 호스트네임, 경로 등과 같은 웹 개념을 이해하는 프로토콜-인지형(protocol-aware configuration) 설정 메커니즘을 이용하여 HTTP (혹은 HTTPS) 네트워크 서비스를 사용 가능하게 한다. 인그레스 개념은 쿠버네티…http://www.k8s.io/ko/docs/concepts/services-networking/ingress/Kubernetes Ingress란 무엇인가요? | IBMKubernetes Ingress란 무엇인가요? | IBM # Kubernetes Ingress란 무엇인가요? ## 작성자 IBM Chief Architect IBM Blog ## Kubernetes Ingress 정의 Kubernetes Ingress는 Kubernetes 클러스터의 서비스에 대한 외부 사용자의 액세스…https://www.ibm.com/kr-ko/think/topics/kubernetes-ingress인그레스 컨트롤러 | Kubernetes인그레스 컨트롤러 | Kubernetes # 인그레스 컨트롤러 클러스터에서인그레스가 동작하려면 인그레스 컨트롤러가 실행 중이어야 한다. 적어도 하나의 인그레스 컨트롤러를 선택하고 이를 클러스터 내에 설정해야 한다. 이 페이지는 배포할 수 있는 일반적인 인그레스 컨트롤러를 나열한다. #### 참고: 쿠버네티스 프로젝트는인…https://kubernetes.io/ko/docs/concepts/services-networking/ingress-controllersIngress의 모든것Ingress의 모든것 # Ingress의 모든것 kubernetes msa mont-kim aws eks pod ingress ingress controller cert-manger let's encrypt # Ingress의 모든것 안녕하세요 오늘은 쿠버네티스에서 사용되는 Ingress의 개념과, Ingress Co…https://montkim.com/about-ingressKubernetes Ingress 컨트롤러란 무엇인가요? | IBMKubernetes Ingress 컨트롤러란 무엇인가요? | IBM # Kubernetes Ingress 컨트롤러란 무엇인가요? ## 작성자 Staff Writer IBM Think Staff Editor IBM Think ## Kubernetes Ingress 컨트롤러란 무엇인가요? Kubernetes Ingress…https://www.ibm.com/kr-ko/think/topics/ingress-controller

관련 문서