NGINX Ingress Controller Documentation

Multiple Ingress Controller 실행

이 문서에서는 Multiple NGINX Ingress Controller를 실행하는 방법을 설명합니다.

이 문서에서는 다음 항목에 대해 설명합니다.

  • Ingress Class 개념
  • 클라우드 HTTP Load Balancer 용 Ingress Controller와 다른 Ingress Controller를 동일한 클러스터에서 NGINX Ingress Controller를 실행하고 Ingress Controller 간의 충돌을 방지하는 방법.
  • Mulitiple NGINX Ingress Controller를 실행하는 방법.

Note: 이 문서에서는 Ingress, VirtualServer, VirtualServerRoute 및 TransportServer 리소스를 구성 리소스라고 합니다.

목차

1. Ingress Class
2. NGINX Ingress Controller 및 다른 Ingress Controller 실행
3. Multiple NGINX Ingress Controller 실행
4. 참고 항목

1. Ingress Class

하나의 클러스터에서 Multiple Ingress Controller의 원활한 공존은 다음을 요구하는 Ingress Class 개념에 의해 제공됩니다.

  • 모든 Ingress Controller는 특정 Class에 대한 Ingress 리소스만 처리해야 합니다.
  • Ingress 리소스에는 사용자가 사용하려는 Ingress Controller의 Class에 해당하는 값으로 설정된 ingressClassName 필드가 있어야 합니다.
  • VirtualServer, VirtualServerRoute, Policy 및 TransportServer 리소스에는 ingressClassName 필드가 사용자가 사용하려는 Ingress Controller의 Class에 해당하는 값으로 설정되어 있어야 합니다.

Ingress Class 구성

NGINX Ingress Controller의 기본값 Ingress Class는 nginx입니다. 즉, classnginx로 설정된 구성 리소스만 처리합니다. -ingress-class Command-Line Argument를 통해 Class를 사용자 정의할 수 있습니다.

Notes:

  • Class가 Ingress 리소스에 설정되지 않은 경우 Kubernetes는 이를 기본 Ingress Controller의 Class로 설정합니다. Ingress Controller를 기본 Controller로 만들려면 Ingress Class 리소스에 ingressclass.kubernetes.io/is-default-class를 설정해야 합니다. 공통 리소스 생성 섹션의 3단계 IngressClass resource 생성을 참조하십시오.
  • VirtualServer, VirtualServerRoute, Policy 및 TransportServer 리소스의 경우 Ingress Controller는 항상 빈 Class가 있는 리소스를 처리합니다.

2. NGINX Ingress Controller 및 다른 Ingress Controller 실행

동일한 클러스터의 다른 Load Balancer에 대해 NGINX Ingress Controller 및 Ingress Controller를 실행할 수 있습니다. 이는 기본적으로 클라우드 제공자의 HTTP Load Balancer에 대한 Ingress Controller를 포함할 수 있는 클라우드 제공자 관리 Kubernetes 서비스를 통해 클러스터를 생성하고 NGINX Ingress Controller를 사용하려는 경우입니다.

NGINX Ingress Controller가 특정 구성 리소스를 처리하도록 하려면 해당 리소스를 nginx 또는 구성한 값으로 설정된 class로 업데이트하십시오.

3. Multiple NGINX Ingress Controller 실행

NGINX Ingress Controller를 실행할 때 처리하는 구성 리소스와 관련하여 다음과 같은 옵션이 있습니다.

  • 클러스터 전체 Ingress Controller (기본값) – Ingress Controller는 클러스터의 모든 Namespace에서 생성된 구성 리소스를 처리합니다. NGINX는 동시에 많은 애플리케이션을 제공할 수 있는 고성능 Load Balancer이므로 이 옵션은 설치 Manifest 및 Helm Chart가 기본적으로 사용됩니다.
  • 정의된 Namespace Ingress Controller-watch-namespace Command-Line Argument를 통해 제어되는 특정 Namespace의 구성 리소스만 처리하도록 Ingress Controller를 구성할 수 있습니다. 이는 격리 및/또는 작동 측면에서 서로 다른 애플리케이션에 대해 서로 다른 NGINX Ingress Controller를 사용하려는 경우에 유용할 수 있습니다.
  • 특정 Ingress ClassIngress Controller – 이 옵션은 위의 옵션 중 하나와 함께 작동합니다. Ingress Controller의 Class를 구성하고 구성 리소스에서 해당 Class를 사용하여 Ingress Controller에서 처리할 구성 리소스를 추가로 사용자 정의할 수 있습니다. Ingress Class 구성 섹션을 참조하십시오.

위의 옵션을 고려하여 각각 다른 구성 리소스 집합을 처리하는 Multiple NGINX Ingress Controller를 실행할 수 있습니다.

4. 참고 항목

Note: 언급된 모든 Command-Line Argument는 Helm Chart의 매개변수로도 사용할 수 있습니다.