헬스 체크 구성 참조
헬스 체크 구성 참조
헬스 체크에 대한 구성 참조 정보를 설명해 드릴게요. check 블록과 checks 블록의 구성 옵션을 하나씩 살펴볼게요.
출처: 문서
본문
이 문서는 헬스 체크에 대한 구성 참조 정보를 제공해요. 다양한 종류의 헬스 체크와 그 정의 방법에 대한 지침은 헬스 체크 정의를 참고해 주세요.
소개
헬스 체크는 웹 로드 밸런서가 실패한 노드를 정상적으로 제거하도록 하고 데이터베이스가 실패한 보조 노드를 교체하도록 하는 등 여러 안전 기능을 수행해요. 전체 노드의 상태를 모니터링하도록 헬스 체크를 구성할 수 있어요. Consul에서 사용할 수 있는 다양한 유형의 헬스 체크를 정의하는 방법에 대한 정보는 헬스 체크 정의를 참고해 주세요.
check 블록
헬스 체크 옵션을 check 블록에 지정해 주세요. 동일한 구성에 두 개 이상의 헬스 체크를 등록하려면 checks 블록을 사용해 주세요. 다음 표는 check 블록에 포함된 구성 옵션을 설명해요.
| Parameter | Description | Check types |
|---|---|---|
name |
체크의 이름을 지정하는 필수 문자열 값. 기본값은 service:<service-id>예요. 여러 서비스 체크가 등록되면 자동 생성된 기본값에 콜론과 1부터 시작하는 증가 번호가 추가돼요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
id |
체크의 ID를 지정하는 고유 문자열 값. name 값으로 기본 설정돼요. name 값이 충돌하면 동일한 노드에서 동일한 ID를 가진 기존 체크를 덮어쓰지 않도록 고유 ID를 지정해 주세요. 체크가 서비스 정의 파일에 정의되면 Consul이 자동으로 ID를 생성해요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
notes |
체크의 사람이 읽을 수 있는 설명을 제공하는 문자열 값. 내용은 Consul에 표시되지 않아요. | Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
interval |
체크 실행 빈도를 지정하는 필수 문자열 값. 지원되는 체크 유형에는 interval 매개변수가 필요해요. 값은 golang time 포맷 사양으로 파싱돼요. |
Script HTTP TCP UDP OSService Docker gRPC H2ping |
timeout |
실패한 요청이 시간 초과로 끝나는 데 걸리는 시간을 지정하는 문자열 값. 지원되는 체크 유형에는 timeout이 선택 사항이며 다음 기본값이 있어요: Script: 30s HTTP: 10s TCP: 10s UDP: 10s gRPC: 10s H2ping: 10s |
Script HTTP TCP UDP gRPC H2ping |
status |
헬스 체크의 초기 상태를 지정하는 선택적 문자열 값. critical(기본값) warning passing 값을 지정할 수 있어요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
deregister_critical_service_after |
서비스와 관련 체크가 critical 상태에 있을 수 있는 시간을 지정하는 문자열 값. 서비스가 지정된 시간 동안 critical이면 Consul이 서비스 등록을 해제해요. 값은 golang time 포맷 사양으로 파싱돼요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
success_before_passing |
Consul이 서비스 또는 노드를 passing으로 표시하기 전에 체크가 연속적으로 통과해야 하는 횟수를 지정하는 정수 값. 기본값은 0이에요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
failures_before_warning |
Consul이 서비스 또는 노드를 warning으로 표시하기 전에 체크가 연속적으로 실패해야 하는 횟수를 지정하는 정수 값. 값은 failures_before_critical보다 클 수 없어요. failures_before_critical에 지정된 값으로 기본 설정돼요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
failures_before_critical |
Consul이 서비스 또는 노드를 critical로 표시하기 전에 체크가 연속적으로 실패해야 하는 횟수를 지정하는 정수 값. 기본값은 0이에요. |
Script HTTP TCP UDP OSService TTL Docker gRPC H2ping Alias |
args |
명령줄에 전달할 인수 문자열 목록을 지정해요. 값 목록에는 호출할 스크립트 파일 또는 외부 애플리케이션의 경로와 스크립트 또는 애플리케이션 실행을 위한 추가 매개변수가 포함돼요. | ScriptDocker |
docker_container_id |
외부 헬스 체크 애플리케이션을 실행할 Docker 컨테이너 ID를 지정해요. 외부 애플리케이션은 args 매개변수로 지정해 주세요. |
Docker |
shell |
헬스 체크 애플리케이션을 실행하는 데 사용할 명령줄 셸 유형을 지정하는 문자열 값. 외부 애플리케이션은 args 매개변수로 지정해 주세요. |
Docker |
grpc |
요청을 보낼 gRPC 엔드포인트(포트 번호 포함)를 지정하는 문자열 값. 특정 서비스를 확인하려면 엔드포인트에 :/와 서비스 식별자를 추가해 주세요. 엔드포인트는 gRPC health checking protocol을 지원해야 해요. |
gRPC |
grpc_use_tls |
true로 설정하면 gRPC 체크에 TLS를 활성화하는 불리언 값. |
gRPC |
h2ping |
HTTP2 요청을 보낼 HTTP2 엔드포인트(포트 번호 포함)를 지정하는 문자열 값. | H2ping |
h2ping_use_tls |
true로 설정하면 H2ping 체크에 TLS를 활성화하는 불리언 값. |
H2ping |
http |
요청을 보낼 HTTP 엔드포인트를 지정하는 문자열 값. | HTTP |
tls_server_name |
tls_skip_verify가 제공되지 않는 한 반환된 인증서에서 호스트 이름을 확인하는 데 사용되는 서버 이름을 지정하는 문자열 값. SNI를 지원하기 위해 클라이언트의 핸드셰이크에도 포함돼요. 이 필드는 비워 두는 것이 좋아요. TLS 클라이언트는 체크 주소가 IP가 아닌 한 체크 주소에서 SNI의 서버 이름을 추론해요(RFC 6066, Section 3). tls_server_name을 제공하는 것이 유익한 두 가지 일반적인 상황이 있어요: 체크 주소가 IP일 때 SNI에 tls_server_name을 지정할 수 있어요. tls_server_name을 설정하면 확인되는 서버에서 제시하는 인증서를 확인하는 데 사용되는 호스트 이름도 재정의해요. 체크 주소의 호스트 이름이 확인되는 서버가 제시하는 인증서의 SAN(Subject Alternative Name) 필드에 없을 때. tls_server_name을 설정하면 SNI에 사용되는 호스트 이름도 재정의해요. |
HTTP H2Ping gRPC |
tls_skip_verify |
체크가 서버가 제시하는 인증서의 체인과 호스트 이름을 확인할지 여부를 결정하는 불리언 값. 확인을 비활성화하려면 true로 설정해 주세요. 프로덕션 사용에는 false로 설정할 것을 권장해요. 기본값은 false예요. |
HTTP H2Ping gRPC TCP |
method |
HTTP 체크 중에 보낼 요청 메서드를 지정하는 문자열 값. 기본값은 GET이에요. |
HTTP |
header |
HTTP 체크 요청에서 보낼 헤더 필드를 지정하는 객체. header 객체에 지정된 각 헤더는 문자열 값 목록을 포함해요. |
HTTP |
body |
HTTP 체크 요청에서 보낼 JSON 속성을 포함하는 문자열 값. 각 속성의 키와 값 주위의 따옴표를 이스케이프해야 해요. | HTTP |
disable_redirects |
true로 설정하면 HTTP 체크가 리다이렉트를 따르지 않도록 하는 불리언 값. 기본값은 false예요. |
HTTP |
os_service |
OSService 체크 중에 확인할 서비스 이름을 지정하는 문자열 값. | OSService |
service_id |
OSService 체크와 연결할 서비스 인스턴스의 ID를 지정하는 문자열 값. 해당 서비스 인스턴스는 체크와 동일한 노드에 있어야 해요. 지정하지 않으면 체크는 노드의 상태를 확인해요. | OSService |
tcp |
체크가 TCP 연결을 설정할 IP 주소 또는 호스트 및 포트 번호를 지정하는 문자열 값. | TCP |
tcp_use_tls |
true로 설정하면 TCP 체크에 TLS를 활성화하는 불리언 값. |
TCP |
udp |
체크가 UDP 데이터그램을 보낼 IP 주소 또는 호스트 및 포트 번호를 지정하는 문자열 값. | UDP |
ttl |
TTL 체크 중에 외부 프로세스의 업데이트를 기다리는 시간을 지정하는 문자열 값. | TTL |
alias_service |
헬스 체크와 연결된 서비스가 별칭을 지정하는 서비스 또는 노드를 지정하는 문자열 값. | Alias |
checks 블록
단일 checks 블록에서 여러 헬스 체크를 정의할 수 있어요. checks 블록은 check 블록 구성 참조에 설명된 구성 옵션을 포함하는 객체 배열이에요.