Ingress 컨트롤러

Ingress 컨트롤러 (Ingress Controllers)

참고:

쿠버네티스 프로젝트는 Ingress 대신 Gateway를 사용할 것을 권장해요. Ingress API는 동결(frozen)됐어요.

즉, 다음을 의미해요.

  • Ingress API는 일반 사용 가능(GA)이며, GA API에 대한 안정성 보장을 받아요. 쿠버네티스 프로젝트는 Ingress를 쿠버네티스에서 제거할 계획이 없어요.
  • Ingress API는 더 이상 개발되지 않으며, 앞으로 변경이나 업데이트가 없을 거예요.

출처: 문서

본문

Ingress 컨트롤러

쿠버네티스 프로젝트는 AWS와 GCE ingress 컨트롤러를 지원하고 유지 관리해요.

서드파티 ingress 컨트롤러

  • AKS Application Gateway Ingress Controller: Azure Application Gateway를 구성하는 ingress 컨트롤러.
  • Alibaba Cloud API Gateway Ingress: Alibaba Cloud Native API Gateway를 구성하는 ingress 컨트롤러이자, Higress의 상용 버전.
  • Apache APISIX ingress controller: Apache APISIX 기반의 ingress 컨트롤러.
  • Avi Kubernetes Operator: VMware NSX Advanced Load Balancer로 L4-L7 로드 밸런싱 제공.
  • BFE Ingress Controller: BFE 기반의 ingress 컨트롤러.
  • BunkerWeb Ingress Controller: nginx 기반 WAF(웹 애플리케이션 방화벽)인 BunkerWeb용 ingress 컨트롤러.
  • Cilium Ingress Controller: Cilium 기반의 ingress 컨트롤러.
  • Citrix ingress controller: Citrix Application Delivery Controller와 함께 동작.
  • Contour: Envoy 기반의 ingress 컨트롤러.
  • Emissary-Ingress API Gateway: Envoy 기반의 ingress 컨트롤러.
  • EnRoute: ingress 컨트롤러로 실행될 수 있는 Envoy 기반 API 게이트웨이.
  • F5 BIG-IP Container Ingress Services for Kubernetes: Ingress를 사용해 F5 BIG-IP 가상 서버를 구성할 수 있게 해줌.
  • FortiADC Ingress Controller: 쿠버네티스 Ingress 리소스를 지원하고 쿠버네티스에서 FortiADC 객체를 관리할 수 있게 해줌.
  • Gloo: API 게이트웨이 기능을 제공하는 Envoy 기반 오픈소스 ingress 컨트롤러.
  • Higress: ingress 컨트롤러로 실행될 수 있는 Envoy 기반 API 게이트웨이.
  • HAProxy Ingress Controller for Kubernetes: HAProxy용 ingress 컨트롤러.
  • Istio Ingress: Istio 기반의 ingress 컨트롤러.
  • Kong Ingress Controller for Kubernetes: Kong Gateway를 구동하는 ingress 컨트롤러.
  • Kusk Gateway: Envoy 기반의 OpenAPI 중심 ingress 컨트롤러.
  • N42 Gateway: HAProxy용 Ingress 및 Gateway API 컨트롤러.
  • NGINX Ingress Controller for Kubernetes: NGINX 웹서버(프록시)와 함께 동작.
  • ngrok-operator: 쿠버네티스 Service에 보안 공개 접근을 추가하기 위해 Ingress와 Gateway API를 모두 지원하는 ngrok용 컨트롤러.
  • OCI Native Ingress Controller: OCI Load Balancer를 관리할 수 있게 해주는 Oracle Cloud Infrastructure용 Ingress 컨트롤러.
  • OpenNJet Ingress Controller: OpenNJet 기반의 ingress 컨트롤러.
  • Pomerium Ingress Controller: 컨텍스트 인식 접근 정책을 제공하는 Pomerium 기반.
  • Skipper: 서비스 구성을 위한 HTTP 라우터 및 리버스 프록시. 쿠버네티스 Ingress 같은 사용 사례를 포함하며, 사용자 지정 프록시를 구축하기 위한 라이브러리로 설계됨.
  • Traefik Kubernetes Ingress provider: Traefik 프록시용 ingress 컨트롤러.
  • Tyk Operator: 커스텀 리소스로 Ingress를 확장해 API 관리 기능을 Ingress에 제공. 오픈소스 Tyk Gateway 및 Tyk Cloud 제어 플레인과 함께 동작.
  • Voyager: HAProxy용 ingress 컨트롤러.
  • Wallarm Ingress Controller: WAAP(WAF)와 API 보안 기능을 제공하는 Ingress 컨트롤러.

여러 Ingress 컨트롤러 사용하기

클러스터 안에서 ingress class를 사용해 원하는 만큼의 ingress 컨트롤러를 배포할 수 있어요. 자신의 ingress class 리소스의 .metadata.name을 주목하세요. Ingress를 만들 때는 Ingress 객체의 ingressClassName 필드를 지정하려면 그 이름이 필요해요(IngressSpec v1 참조). ingressClassName은 더 오래된 어노테이션 방식의 대체품이에요.

Ingress에 대해 IngressClass를 지정하지 않고, 클러스터에 기본으로 표시된 IngressClass가 정확히 하나 있다면, 쿠버네티스는 클러스터의 기본 IngressClass를 그 Ingress에 적용해요. IngressClass에 ingressclass.kubernetes.io/is-default-class 어노테이션을 문자열 값 "true"로 설정하면 그 IngressClass를 기본으로 표시해요.

이상적으로 모든 ingress 컨트롤러가 이 사양을 충족해야 하지만, 다양한 ingress 컨트롤러는 조금씩 다르게 동작해요.

참고:

더 알아보기 (Learn more)

  • Ingress에 대해 더 배워 보세요.
  • Gateway에 대해 배워 보세요.