NGINX Ingress Controller Documentation

Reporting 리소스 Status

Reporting 리소스의 Status를 보는 방법을 설명합니다.

목차

1. Ingress 리소스
2. VirtualServer 및 VirtualServerRoute 리소스
2-1. Status Specification
2-2. 외부 Endpoint
3. 정책 리소스
3-1. Status Specification
4. TransportServer 리소스
4-1. Status Specification

1. Ingress 리소스

Ingress 리소스는 해당 Ingress 리소스의 호스트에 공개적으로 액세스할 수 있는 주소(IP 주소 또는 DNS 이름)를 포함하는 Status를 가질 수 있습니다. 아래와 같이 ADDRESS 열의 kubectl get ingress 명령 출력에서 주소를 볼 수 있습니다.

$ kubectl get ingresses
NAME           HOSTS              ADDRESS           PORTS     AGE
cafe-ingress   cafe.example.com   12.13.23.123      80, 443   2m

Ingress Controller는 Ingress Status를 보고하도록 구성해야 합니다.

1. Command-Line 플래그 -report-ingress-status를 사용합니다.

2. 외부 주소의 소스를 정의합니다. 다음 중 하나일 수 있습니다.

  1. external-status-address ConfigMap Key에 지정된 사용자 정의 주소입니다.
  2. 외부 IP 또는 주소로 구성되고 -external-service Command-line 플래그로 지정되는 LoadBalancer 유형의 서비스입니다.

ConfigMap KeyCommand-line Arguments에 대한 문서를 참조하세요.

Note: Ingress Controller는 종료될 때 Ingress 리소스의 Status를 지우지 않습니다.

2. VirtualServer 및 VirtualServerRoute 리소스

VirtualServer 또는 VirtualServerRoute 리소스에는 해당 리소스의 호스트에 공개적으로 액세스할 수 있는 IP 주소 및 리소스 Status에 대한 정보가 있는 Status 필드가 포함되어 있습니다. 아래와 같이 kubectl get virtualservers 또는 kubectl get virtualserverroutes 명령의 출력에서 Status를 확인할 수 있습니다.

$ kubectl get virtualservers
  NAME   STATE   HOST                   IP            PORTS      AGE
  cafe   Valid   cafe.example.com       12.13.23.123  [80,443]   34s

VirtualServer 리소스와 연결된 외부 호스트 이름 주소를 보려면 -o wide 옵션을 사용합니다.

$ kubectl get virtualservers -o wide 
  NAME   STATE   HOST               IP    EXTERNALHOSTNAME                                                         PORTS      AGE
  cafe   Valid   cafe.example.com         ae430f41a1a0042908655abcdefghijkl-12345678.eu-west-2.elb.amazonaws.com   [80,443]   106s

Note: 주소가 여러 개인 경우 첫 번째 주소만 표시됩니다.

리소스 Status에 대한 추가 주소 또는 추가 정보를 보려면 다음 명령을 사용하십시오.

$ kubectl describe virtualserver <NAME>
. . .
Status:
  External Endpoints:
    Ip:        12.13.23.123
    Ports:     [80,443]
  Message:  Configuration for cafe/cafe was added or updated
  Reason:   AddedOrUpdated
  State:    Valid

2-1. Status Specification

다음 필드는 VirtualServer 및 VirtualServerRoute Status 모두에서 보고됩니다.

Field설명Type
State현재 리소스의 Status입니다. ValidWarningInvalid 일 수 있습니다. 자세한 내용은 message field를 참조하세요.string
Reason마지막 업데이트의 이유입니다.string
MessageStatus에 대한 추가 정보입니다.string
ExternalEndpoints리소스의 호스트에 공개적으로 액세스할 수 있는 외부 Endpoint 목록입니다.[]externalEndpoint

다음 필드는 VirtualServerRoute Status에서만 보고됩니다.

Field설명Type
ReferencedBy이 VirtualServerRoute를 참조하는 VirtualServer입니다. 형식은 namespace/namestring

2-2. 외부 Endpoint

Field설명Type
IP외부 IP 주소입니다.string
Hostname외부 LoadBalancer 호스트 이름 주소입니다.string
Ports외부 포트 목록입니다.string

Ingress Controller는 VirtualServer 또는 VirtualServerRoute Status를 보고하도록 구성되어야 합니다.

1. Ingress Controller가 externalEndpoints를 보고하도록 하려면 외부 주소의 Sources를 정의합니다(Note: 나머지 필드는 외부 주소가 구성되지 않은 Status로 보고됨). 다음 중 하나일 수 있습니다.

  1. external-status-address ConfigMap Key에 지정된 사용자 정의 주소입니다.
  2. 외부 IP 또는 주소로 구성되고 -external-service Command-line 플래그로 지정되는 LoadBalancer 유형의 서비스입니다.

ConfigMap KeyCommand-line Arguments에 대한 문서를 참조하세요.

Note: Ingress Controller는 종료될 때 VirtualServer 및 VirtualServerRoute 리소스의 Status를 지우지 않습니다.

3. 정책 리소스

정책 리소스에는 리소스 Status에 대한 정보가 포함된 Status 필드가 포함됩니다. 아래와 같이 kubectl get policy 명령의 출력에서 Status를 확인할 수 있습니다.

$ kubectl get policy
  NAME              STATE   AGE
  webapp-policy     Valid   30s

리소스 Status에 대한 추가 주소 또는 추가 정보를 보려면 다음 명령을 사용하십시오.

$ kubectl describe policy <NAME>
. . .
Status:
  Message:  Configuration for default/webapp-policy was added or updated
  Reason:   AddedOrUpdated
  State:    Valid

3-1. Status Specification

정책 Status에 보고되는 필드는 다음과 같습니다.

FieldType
State현재 리소스의 Status입니다. ValidWarningInvalid 일 수 있습니다. 자세한 내용은 message field를 참조하세요.string
Reason마지막 업데이트의 이유입니다.string
MessageStatus에 대한 추가 정보입니다.string

4. TransportServer 리소스

TransportServer 리소스에는 리소스 Status에 대한 정보가 있는 Status 필드가 포함되어 있습니다. 아래와 같이 kubectl get transportserver 명령의 출력에서 Status를 확인할 수 있습니다.

$ kubectl get transportserver
  NAME      STATE   REASON           AGE
  dns-tcp   Valid   AddedOrUpdated   47m

리소스 Status에 대한 추가 주소 또는 추가 정보를 보려면 다음 명령을 사용하십시오.

$ kubectl describe transportserver <NAME>
. . .
Status:
  Message:  Configuration for default/dns-tcp was added or updated
  Reason:   AddedOrUpdated
  State:    Valid

4-1. Status Specification

다음 필드는 TransportServer Status에서 보고됩니다.

FieldDescriptionType
State현재 리소스의 Status입니다. ValidWarningInvalid 일 수 있습니다. 자세한 내용은 message field를 참조하세요.string
Reason마지막 업데이트의 이유입니다.string
MessageStatus에 대한 추가 정보입니다.string