
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
입니다. 즉, class
가 nginx
로 설정된 구성 리소스만 처리합니다. -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 Class의 Ingress Controller – 이 옵션은 위의 옵션 중 하나와 함께 작동합니다. Ingress Controller의 Class를 구성하고 구성 리소스에서 해당 Class를 사용하여 Ingress Controller에서 처리할 구성 리소스를 추가로 사용자 정의할 수 있습니다. Ingress Class 구성 섹션을 참조하십시오.
위의 옵션을 고려하여 각각 다른 구성 리소스 집합을 처리하는 Multiple NGINX Ingress Controller를 실행할 수 있습니다.
4. 참고 항목
Note: 언급된 모든 Command-Line Argument는 Helm Chart의 매개변수로도 사용할 수 있습니다.