NGINX Ingress Controller Documentation

서비스 인사이트(Service Insight)

Ingress Controller는 서비스 인사이트 Endpoint를 Expose합니다.

Ingress Controller는 Endpoint을 Expose하고 VirtualServer(VS) 및 TransportServer(TS) 리소스 개체를 사용하여 Expose된 서비스에 대한 호스트 통계를 제공합니다. JSON 형식으로 데이터를 Expose하고 HTTP 상태 코드를 반환합니다. 응답 본문에는 구성되어있는 호스트 이름과 연결된 Upstream Pod의 총 수, 중단 수 및 비정상적인 수에 대한 정보가 저장됩니다. 반환된 HTTP 코드는 서비스의 상태를 나타냅니다.

NGINX Plus에서 Upstream(Pod)이 비정상으로 판단되면 서비스가 비정상(HTTP 응답 코드가 200 OK와 다름)으로 표시됩니다. 적어도 하나의 Upstream Pod가 NGINX Plus에서 확인한 대로 정상이면 서비스가 정상입니다. 이 경우 Endpoint는 HTTP 코드 200 OK를 반환합니다.

NGINX Plus의 정상 상태 결정은 고급 상태 확인을 사용하여 조정할 수 있으며 Pod 응답 및 응답성과 동적으로 연관됩니다. Upstream 상태 확인 참조 nginxstore.com/docs/nginx-ingress-controller-documentation/virtualserver-및-virtualserverroute-리소스/#3-1

목록

1. 서비스 인사이트 Endpoint 활성화
2. 사용 가능한 통계 및 HTTP 응답 코드

1. 서비스 인사이트 Endpoint 활성화

Kubernetes Manifest(Deployment 또는 DaemonSet)를 사용하여 Ingress Controller를 설치하는 경우, 서비스 인사이트 Endpoint를 활성화하려면 다음을 수행하십시오:

  1. -enable-service-insight Command-Line Argument를 사용하여 Ingress Controller를 실행합니다. 이렇게 하면 가상 서버의 /probe/{hostname} 경로를 통해 인Ingress Controller Endpoint가 Expose됩니다. 포트 9114의 전송 서버용 /probe/ts/{service_name}(-service-insight-listen-port Command-Line Argument로 사용자 지정 가능). service_name 매개변수는 배포된 서비스(전송 서버의 upstreams 아래에 지정된 서비스)의 이름을 나타냅니다.
  2. 서비스 인사이트 Endpoint에 대해 TLS를 활성화하려면 TLS Secret의 Namespace 및 이름으로 -service-insight-tls-secret cli argument를 구성합니다.
  3. Ingress Controller Pod의 템플릿에 있는 Ingress Controller 컨테이너의 포트 목록에 서비스 인사이트 포트를 추가하십시오.
- name: service-insight
  containerPort: 9114

Helm을 사용하여 Ingress Controller를 설치하는 경우 서비스 인사이트 Endpoint를 활성화하려면 Helm 차트의 serviceinsight.* 매개변수를 구성하십시오. Helm으로 설치를 참조하십시오.

2. 사용 가능한 통계 및 HTTP 응답 코드

서비스 인사이트는 다음 통계를 제공합니다:

  • VS 또는 TS Pod의 총 갯수
  • ‘Up’ 상태의 VS 또는 TS Pod 갯수
  • ‘Unhealthy’ 상태의 VS 또는 TS Pod 갯수

이러한 통계는 JSON으로 반환됩니다:

{ "Total": <int>, "Up": <int>, "Unhealthy": <int>  }

응답 코드:

  • HTTP 200 OK – 서비스가 정상입니다.
  • HTTP 404 Not Found – 요청된 hostname/name에 대한 upstream/VS/TS가 없습니다.
  • HTTP 418 I’m a teapot – 서비스가 다운되었습니다(모든 upstream/VS/TS가 “Unhealthy”입니다).

Note: 호스트 이름의 와일드카드는 현재 지원되지 않습니다.