
개요
NGINX Ingress Controller 는 NGINX 및 NGINX Plus 용 Kubernetes Ingress Controller를 구현합니다.
목차
1. Ingress 란?
2. Ingress Controller 란?
3. NGINX Ingress Controller
1. Ingress 란?
Ingress는 Kubernetes에서 실행되는 애플리케이션에 대한 HTTP Load Balancer를 구성할 수 있는 Kubernetes 리소스로, 하나 이상의 서비스로 표시됩니다. 이러한 Load Balancer는 이러한 애플리케이션을 Kubernetes 클러스터 외부의 클라이언트에 제공하는 데 필요합니다.
Ingress 리소스는 다음 기능을 지원합니다.
- Content-based 라우팅:
- Host-based 라우팅: 예를 들어 호스트 헤더
foo.example.com
를 사용하여 한 서비스 그룹으로 요청을 라우팅하고 호스트 헤더bar.example.com
를 다른 그룹으로 라우팅합니다. - Path-based 라우팅: 예를 들어
/service A
로 시작하는 URI를 사용하여 service A로 요청을 라우팅하고/service B
로 시작하는 URI를 사용하여 service B로 요청을 라우팅합니다.
- Host-based 라우팅: 예를 들어 호스트 헤더
- 각 호스트 이름에 대한 TLS/SSL Termination (예:
foo.example.com
).
Ingress 리소스에 대한 자세한 내용은 Ingress 사용 설명서를 참조하십시오.
2. Ingress Controller 란?
Ingress Controller는 클러스터에서 실행되고 Ingress 리소스에 따라 HTTP Load Balancer를 구성하는 애플리케이션입니다. Load Balancer는 클러스터에서 실행되는 소프트웨어 Load Balancer이거나 외부에서 실행되는 하드웨어 또는 클라우드 Load Balancer 일 수 있습니다. Load Balancer마다 다른 Ingress Controller 구현이 필요합니다.
NGINX의 경우 Ingress Controller는 Load Balancer와 함께 Pod에 배포됩니다.
3. NGINX Ingress Controller
NGINX Ingress Controller는 NGINX 및 NGINX Plus 모두에서 작동하며 표준 Ingress 기능(content-based 라우팅 및 TLS/SSL Termination)을 지원합니다.
또한 여러 NGINX 및 NGINX Plus 기능을 Annotation 및 ConfigMap 리소스를 통해 Ingress 리소스에 대한 확장으로 사용할 수 있습니다. NGINX Ingress Controller는 HTTP 외에 Websocket, gRPC, TCP 및 UDP 애플리케이션의 Lodad Balancing을 지원합니다. 지원되는 기능 및 사용자 정 옵션에 대해 자세히 알아보려면 ConfigMap 및 Annotation 문서를 참조하세요.
Ingress의 대안으로 NGINX Ingress Controller는 VirtualServer 및 VirtualServerRoute 리소스를 지원합니다. 트래픽 분할 및 고급 content-based 라우팅과 같이 Ingress 리소스에서 지원되지 않는 사용 사례를 사용할 수 있습니다. VirtualServer 및 VirtualServerRoute 리소스 문서를 참조하십시오.
TCP, UDP 및 TLS Passthrough Load Balancing도 지원됩니다. TransportServer 리소스 문서를 참조하십시오.