NGINX Ingress Controller Documentation

Command-line Arguments

Ingress Controller는 여러 Command-line Arguments 를 지원합니다. Arguments 설정은 Ingress Controller를 설치하는 방법에 따라 다릅니다.

  • Ingress Controller를 설치하기 위해 Kubernetes Manifests(Deployment 또는 DaemonSet)를 사용하는 경우 Command-line Arguments를 설정하려면 그에 따라 해당 Manifests를 수정합니다. Manifests를 사용 설치 문서를 참조하십시오.
  • Helm을 사용하여 Ingress Controller를 설치하는 경우 Command-line Arguments에 해당하는 Helm 차트의 매개변수를 수정합니다. Helm으로 설치 문서를 참조하십시오.

아래에서는 사용 가능한 Command-line Arguments에 대해 설명합니다.

-enable-snippets

Ingress, VirtualServer, VirtualServerRoute 및 TransportServer 리소스에서 사용자 정의 NGINX 구성 Snippets을 활성화합니다.

기본값: false.  

-default-server-tls-secret <string>

기본 서버의 TLS 종료를 위한 TLS 인증서 및 Key가 있는 Secret.

  • 설정하지 않으면 /etc/nginx/secrets/default 파일의 인증서와 Key가 사용됩니다.
  • /etc/nginx/secrets/default가 없으면 Ingress Controller는 Default 서버에 대한 TLS 연결을 거부하도록 NGINX를 구성합니다.
  • Secret가 설정되어 있지만 Ingress Controller가 Kubernetes API에서 암호를 가져올 수 없거나 Secret가 설정되어 있지 않고 Ingress Controller가 “/etc/nginx/secrets/default” 파일을 읽지 못하면 입력 컨트롤러가 시작되지 않습니다.

Format: <namespace>/<name>  

-wildcard-tls-secret <string>

TLS Termination가 활성화되었지만 Secret이 지정되지 않은 모든 Ingress/VirtualServer 호스트의 TLS Termination를 위한 TLS 인증서 및 Key가 있는 Secret.

  • Argument가 설정되지 않은 경우 이러한 Ingress/VirtualServer 호스트에 대해 NGINX는 TLS 연결을 설정하려는 모든 시도를 중단합니다.
  • Argument가 설정되었지만 Ingress Controller가 Kubernetes API에서 Secret을 가져올 수 없는 경우 Ingress Controller가 시작되지 않습니다.

Format: <namespace>/<name>

-enable-custom-resources

사용자 정의 리소스를 사용합니다.

기본값: true.  

-enable-preview-policies

기본값: false.  

-enable-oidc

OIDC 정책을 활성화합니다.

기본값: false.  

-include-year

로그 헤더에 연도를 추가합니다.

기본값: false.

NOTE: 이 플래그는 릴리스 2.7에서 제거되며 연도가 기본적으로 포함됩니다.

-enable-leader-election

리더를 선택하여 컨트롤러의 여러 복제본이 Ingress, VirtualServer 및 VirtualServerRoute 리소스의 상태를 보고하지 않도록 합니다. 하나의 복제본만 상태를 보고합니다.

 기본값: true.

-report-ingress-status 플래그를 참조하십시오.

-enable-tls-passthrough

포트 443에서 TLS Passthrough를 활성화합니다.

-enable-custom-resources가 필요합니다.

-enable-cert-manager

cert-manager(cert-manager.io)를 사용하여 VirtualServer 리소스에 대해 x509 자동 인증서 관리를 활성화합니다.

-enable-custom-resources가 필요합니다.

-enable-external-dns

ExternalDNS를 사용하여 VirtualServer 리소스에 대한 퍼블릭 DNS 항목을 구성하기 위해 ExternalDNS와의 통합을 활성화합니다.

-enable-custom-resources가 필요합니다.

-external-service <string>

Ingress Controller Pod가 외부에 expose되는 Load Balancer 유형의 서비스 이름을 지정합니다. 서비스의 외부 주소는 Ingress, VirtualServer 및 VirtualServerRoute 리소스의 상태를 보고할 때 사용됩니다.

Ingress 리소스만 해당: -report-ingress-status가 필요합니다.

-ingresslink <string>

BIG-IP 시스템을 통해 Ingress Controller Pod를 expose하는 IngressLink 리소스의 이름을 지정합니다. BIG-IP 시스템의 IP는 Ingress, VirtualServer 및 VirtualServerRoute 리소스의 상태를 보고할 때 사용됩니다.

Ingress 리소스만 해당: -report-ingress-status가 필요합니다.

-global-configuration <string>

Ingress Controller의 전역 구성을 위한 GlobalConfiguration 리소스입니다.

Format: <namespace>/<name>

-enable-custom-resources가 필요합니다.

-health-status

Default 서버에 “/nginx-health” 위치를 추가합니다. 위치는 모든 요청에 대해 200 상태 코드로 응답합니다.

Ingress Controller의 외부 Health-Check에 유용합니다.

-health-status-uri <string>

Default 서버에서 상태 위치의 URI를 설정합니다. -health-status가 필요합니다.

(기본값: /nginx-health)

-ingress-class <string>

Ingress Controller의 클래스입니다.

클래스와 이름이 같은 해당 IngressClass 리소스를 배포해야 합니다. 그렇지 않으면 Ingress Controller가 시작되지 않습니다. Ingress Controller는 해당 클래스에 속하는 리소스만 처리합니다. 즉, ingressClassName 필드 리소스가 클래스와 동일합니다.

Ingress Controller는 ingressClassName 필드가 없는 모든 리소스를 처리합니다.

기본값: nginx.

-ingress-template-path <string>

Ingress 리소스에 대한 Ingress NGINX 구성 템플릿의 경로입니다. NGINX의 기본값은 nginx.ingress.tmpl입니다. NGINX Plus의 기본값은 nginx-plus.ingress.tmpl입니다.

-leader-election-lock-name <string>

리더 선택을 위한 잠금으로 사용되는 Controller와 동일한 Namespace 내의 ConfigMap 이름을 지정합니다.

-enable-leader-election이 필요합니다.

-log_backtrace_at <value>

Logging이 file:N 행에 도달하면 Stack Trace을 내보냅니다.

-main-template-path <string>

Default NGINX 구성 템플릿의 경로입니다.

  • NGINX의 기본값은 nginx.ingress.tmpl입니다.
  • NGINX Plus의 기본값은 nginx-plus.ingress.tmpl입니다.

-nginx-configmaps <string>

NGINX 구성을 사용자 지정하기 위한 ConfigMap 리소스입니다. ConfigMap이 설정되었지만 Ingress Controller가 Kubernetes API에서 이를 가져올 수 없는 경우 Ingress Controller가 시작되지 않습니다.

Format: <namespace>/<name>  

-nginx-debug

NGINX에 대한 디버깅을 활성화합니다. nginx-debug Binary를 사용합니다. ConfigMap에 ‘error-log-level: debug’가 필요합니다.

-nginx-plus

NGINX Plus에 대한 지원을 활성화합니다.

-nginx-reload-timeout <value>

Ingress Controller가 변경 후 또는 초기 시작 시 성공적인 NGINX Reload를 기다리는 시간 제한(ms)입니다.

기본값은 60000입니다.

-nginx-status

NGINX stub_status 또는 NGINX Plus API를 활성화합니다.

기본값: true.

-nginx-status-allow-cidrs <string>

NGINX stub_status 또는 NGINX Plus API의 허용 목록에 IP/CIDR 블록을 추가합니다.

여러 IP/CIDR을 쉼표로 구분합니다.

(기본값: 127.0.0.1,::1)

-nginx-status-port <int>

NGINX stub_status 또는 NGINX Plus API가 Expose되는 포트를 설정합니다.

Format: [1024 - 65535] (기본값: 8080)  

-proxy <string>

Proxy 서버를 사용하여 “kubectl proxy” 명령으로 시작된 Kubernetes API에 연결합니다. 테스트 목적으로만.

Ingress Controller는 NGINX를 시작하지 않으며 생성된 NGINX 구성 파일을 디스크에 쓰지 않습니다.

-report-ingress-status

Ingress 리소스 상태에서 주소 필드를 업데이트합니다.

-external-service 또는 -ingresslink 플래그 또는 ConfigMap의 external-status-address Key가 필요합니다.

-transportserver-template-path <string>

TransportServer 리소스에 대한 TransportServer NGINX 구성 템플릿의 경로입니다.

  • NGINX의 기본값은 nginx.transportserver.tmpl입니다.
  • NGINX Plus의 기본값은 nginx-plus.transportserver.tmpl입니다.

-v <value>

V Log의 Log Level.

-version

Version, git-commit Hash 및 Build 날짜를 Print하고 종료합니다.

-virtualserver-template-path <string>

VirtualServer 리소스에 대한 VirtualServer NGINX 구성 템플릿의 경로입니다.

NGINX의 기본값은 nginx.ingress.tmpl입니다.

NGINX Plus의 기본값은 nginx-plus.ingress.tmpl입니다.

-vmodule <value>

파일 필터링 Logging에 대한 pattern=N 설정의 쉼표로 구분된 목록입니다.

-watch-namespace <string>

Ingress Controller 리소스를 감시해야 하는 쉼표로 구분된 Namespace 목록입니다. 기본적으로 Ingress Controller는 모든 Namespace 를 모니터링합니다.

-enable-prometheus-metrics

Prometheus Format으로 NGINX 또는 NGINX Plus 메트릭을 expose할 수 있습니다.

-prometheus-metrics-listen-port <int>

Format: [1024 - 65535]  (기본값: 9113)

-prometheus-tls-secret <string>

Prometheus 메트릭 Endpoint의 TLS Termination를 위한 TLS 인증서 및 Key가 있는 Secret.

  • Argument가 설정되지 않은 경우 Prometheus Endpoint는 TLS 연결을 사용하지 않습니다.
  • Argument가 설정되었지만 Ingress Controller가 Kubernetes API에서 Secret을 가져올 수 없는 경우 Ingress Controller가 시작되지 않습니다.

Format: <namespace>/<name>  

-spire-agent-address <string>

실행 중인 Spire Agent의 주소를 지정합니다. NGINX Service Mesh 전용입니다.

-nginx-plus가 필요합니다.

  • Argument가 설정되었지만 Ingress Controller가 Spire Agent에 연결할 수 없는 경우 Ingress Controller가 시작되지 않습니다.

-enable-internal-routes

NGINX Service Mesh로 내부 경로 지원을 활성화합니다. NGINX Service Mesh 전용입니다.

-nginx-plus 및 -spire-agent-address가 필요합니다.

  • Argument가 설정되었지만 nginx-plus가 false로 설정되거나 spire-agent-address가 제공되지 않으면 Ingress Controller가 시작되지 않습니다.

-enable-latency-metrics

Upstream에 대한 대기 시간 Metrics 수집을 활성화합니다. -enable-prometheus-metrics가 필요합니다.

-enable-app-protect

App Protect에 대한 지원을 활성화합니다.

-nginx-plus가 필요합니다.

  • Argument가 설정되었지만 nginx-plus가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-app-protect-log-level <string>

App Protect에 대한 Log Level을 설정합니다. 허용되는 값: Fatal, Error, Warn, Info, Debug, Trace.

-nginx-plus 및 -enable-app-protect가 필요합니다.

Argument가 설정되었지만 nginx-plus 및 enable-app-protect가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-enable-app-protect-dos

App Protect DoS 지원을 활성화합니다.

-nginx-plus가 필요합니다.

Argument가 설정되었지만 nginx-plus가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-app-protect-dos-debug

App Protect DoS에 대한 디버깅을 활성화합니다.

-nginx-plus 및 -enable-app-protect-dos가 필요합니다.

Argument가 설정되었지만 nginx-plus 및 enable-app-protect-dos가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-app-protect-dos-max-daemons

최대 ADMD 인스턴스 수입니다.

기본값: 1

-nginx-plus 및 -enable-app-protect-dos가 필요합니다.

Argument가 설정되었지만 nginx-plus 및 enable-app-protect-dos가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-app-protect-dos-max-workers

지원할 최대 nginx 프로세스 수입니다.

-nginx-plus 및 -enable-app-protect-dos가 필요합니다.

Argument가 설정되었지만 nginx-plus 및 enable-app-protect-dos가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-app-protect-dos-memory

사용할 RAM 메모리 크기(MB)

컨테이너에 있는 사용 가능한 RAM의 Default값 50% 최소 80MB

-nginx-plus 및 -enable-app-protect-dos가 필요합니다.

Argument가 설정되었지만 nginx-plus 및 enable-app-protect-dos가 false로 설정된 경우 Ingress Controller가 시작되지 않습니다.

-ready-status

준비 Endpoint /nginx-ready를 활성화합니다. Endpoint는 NGINX가 시작 후 모든 구성을 Load했을 때 성공 코드를 반환합니다.

기본값: true 

-ready-status-port

준비 Endpoint HTTP 포트입니다.

Format: [1024 - 65535] (기본값: 8081)  

-disable-ipv6

IPV6 스택을 지원하지 않는 노드에 대해 명시적으로 IPV6 listener를 비활성화합니다.

기본값: false