신규 및 기존 Cloud Run 작업자 풀에 대하여 HTTP 및 gRPC 활성 프로브와 더불어 HTTP, TCP, gRPC 시작 프로브를 구성할 수 있습니다. 구성은 프로브 유형에 따라 달라집니다.
사용 사례
다음 두 가지 유형의 상태 점검 프로브를 구성할 수 있습니다.
활성 여부 프로브는 컨테이너를 다시 시작할지 여부를 결정합니다.
- 이 경우 컨테이너를 다시 시작하면 버그 발생 시 작업자 풀 가용성이 증가할 수 있습니다.
- 활성 프로브는 다른 방법으로는 복구할 수 없는 개별 인스턴스를 다시 시작하기 위한 것입니다. 예를 들어 작업자 풀이 실행 중이지만 진행할 수 없는 교착 상태를 포착하는 경우와 같이 복구할 수 없는 인스턴스 장애에 주로 사용해야 합니다. 커스텀 조직 정책을 사용하여 모든 컨테이너에 활성 프로브를 필수화할 수 있습니다.
시작 프로브는 컨테이너가 시작되었는지 여부를 확인합니다.
- 시작 프로브를 구성하면 작업자 풀 시작을 간섭하지 않도록 시작 프로브에서 컨테이너가 시작되었음을 확인할 때까지 활성 확인이 중지됩니다.
- 시작 프로브는 컨테이너가 가동 및 실행되기 전에 조기 종료를 방지하므로 느리게 시작되는 컨테이너에 활성 확인을 사용하는 경우 특히 유용합니다.
작업자 풀에서 시작 또는 활성 프로브 실패가 반복되면 Cloud Run은 제어되지 않는 비정상 종료 루프가 방지되도록 인스턴스 다시 시작을 제한합니다.
CPU 할당
- 프로브가 실행될 때 항상 CPU가 할당됩니다.
- 모든 프로브에는 CPU 및 메모리 사용량 소비가 청구됩니다.
프로브 요구사항 및 동작
프로브 유형 | 요구사항 | 동작 |
---|---|---|
TCP 시작 | 없음 | 지정된 경우 Cloud Run은 TCP 연결을 만들어 지정된 포트에서 TCP 소켓을 엽니다. Cloud Run에서 연결을 설정할 수 없으면 실패한 것입니다. 시작 프로브가 지정된 시간 내에 성공하지 못하면 Cloud Run이 컨테이너를 종료합니다. 시간은 작업자 풀의 시작 프로브를 구성할 때 설정한 failureThreshold * periodSeconds 로 계산되며 최대 240초입니다. |
HTTP 시작 | HTTP 상태 점검 엔드포인트 만들기 HTTP/1 사용 |
프로브 구성 후 Cloud Run은 작업자 풀 상태 점검 엔드포인트(예: /ready )에 HTTP GET 요청을 수행합니다. 200 과 400 사이의 응답은 성공을 의미하며 그 밖의 모든 응답은 실패를 나타냅니다.시작 프로브가 지정된 시간( failureThreshold * periodSeconds ), 즉 240초 이내에 성공하지 못하면 Cloud Run은 컨테이너를 종료합니다.지정된 시간 내에 HTTP 시작 프로브가 성공하고 HTTP 활성 프로브를 구성한 경우 Cloud Run은 HTTP 활성 프로브를 시작합니다. |
HTTP 활성 | HTTP 상태 점검 엔드포인트 만들기 HTTP/1 사용 |
활성 프로브는 시작 프로브가 성공한 후에만 시작합니다. 프로브가 구성되고 시작 프로브가 성공하면 Cloud Run이 상태 점검 엔드포인트(예: /health )에 HTTP GET 요청을 수행합니다. 200 과 400 사이의 응답은 성공을 의미하며 그 밖의 모든 응답은 실패를 나타냅니다.지정된 시간( failureThreshold * periodSeconds ) 내에 활성 프로브가 성공하지 못하면 Cloud Run이 SIGKILL 신호를 사용하여 컨테이너를 종료합니다. 컨테이너에서 아직 처리 중인 나머지 요청은 HTTP 상태 코드 503 으로 종료됩니다. Cloud Run이 컨테이너를 종료하면 Cloud Run 자동 확장이 새 컨테이너 인스턴스를 시작합니다. |
gRPC 시작 | Cloud Run 작업자 풀에서 gRPC 상태 점검 프로토콜 구현하기 | 시작 프로브가 지정된 시간(failureThreshold * periodSeconds ), 즉 240초 이내에 성공하지 못하면 Cloud Run이 컨테이너를 종료합니다. |
gRPC 활성 | Cloud Run 작업자 풀에서 gRPC 상태 점검 프로토콜 구현하기 | gRPC 시작 프로브를 구성하면 시작 프로브가 성공한 후에만 활성 프로브가 시작됩니다. 활성 프로브가 구성되고 시작 프로브가 성공하면 Cloud Run이 작업자 풀에 상태 점검 요청을 수행합니다. 활성 프로브가 지정된 시간( failureThreshold * periodSeconds ) 내에 성공하지 못하면 Cloud Run이 SIGKILL 신호를 사용하여 컨테이너를 종료합니다. Cloud Run이 컨테이너를 종료하면 Cloud Run 자동 확장이 새 컨테이너 인스턴스를 시작합니다. |
프로브 구성
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
Google Cloud 콘솔 또는 Cloud Run REST API를 사용하여 HTTP, TCP, gRPC 프로브를 구성할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Cloud Run으로 이동합니다.
메뉴에서 작업자 풀을 선택합니다.
- 새 작업자 풀을 구성하는 경우 컨테이너 배포를 클릭합니다.
- 기존 작업자 풀을 구성하는 경우 작업자 풀을 선택한 후 새 버전 수정 및 배포를 클릭합니다.
새 작업자 풀을 구성하는 경우 초기 작업자 풀 페이지를 작성한 후 컨테이너, 볼륨, 네트워킹, 보안을 클릭하여 작업자 풀 구성 페이지를 펼칩니다.
컨테이너 섹션에서상태 점검으로 이동하고 상태 점검 추가를 클릭하여 상태 점검 추가 구성 패널을 엽니다.
상태 점검 유형 선택 메뉴에서 추가할 상태 점검 유형을 선택합니다.
프로브 유형 선택 메뉴에서 사용할 프로브 유형을 선택합니다(예: HTTP 또는 gRPC). 그러면 프로브 구성 양식이 표시됩니다.
프로브 유형에 따라 다른 프로브 설정을 구성합니다.
HTTP 프로브를 사용하는 경우에는 다음을 수행합니다.
경로 필드를 사용하여 엔드포인트의 상대 경로를 지정합니다(예:
/
).HTTP 헤더 체크박스를 선택하여 선택적 커스텀 헤더를 지정합니다. 이름 필드에 헤더 이름을, 값 필드에 헤더 값을 지정합니다. HTTP 헤더 추가를 클릭하여 헤더를 추가로 지정합니다.
gRPC 프로브를 사용하는 경우 컨테이너 이미지가 gRPC 상태 점검 프로토콜을 구현하는지 확인하세요. 자세한 내용은 GRPC 상태 점검 프로토콜을 참조하세요.
HTTP 및 gRPC 프로브 유형 모두에 다음을 지정합니다.
초기 지연의 경우 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초)을 지정합니다. 0~240초 사이의 값을 지정하세요. 기본값은 0초입니다.
기간에 프로브를 수행할 시간 (초)을 지정합니다. 예를 들어 2초마다 프로브를 실행하려면
2
를 지정합니다. 1~240초 사이의 값을 지정하세요. 기본값은 10초입니다.실패 기준에 컨테이너를 종료하기 전에 프로브를 재시도할 횟수를 지정합니다. 기본값은 3입니다.
제한 시간에 프로브가 타임아웃될 때까지 기다릴 시간(초)을 지정합니다. 1~240과
periodSeconds
중 더 작은 값 사이의 값을 지정합니다. 기본값은 1입니다.
추가를 클릭하여 새 기준점을 추가합니다.
만들기 또는 배포를 클릭합니다.
REST API
중요: HTTP 프로브용 Cloud Run 작업자 풀을 구성하는 경우 프로브에 응답하도록 작업자 풀 코드에 HTTP 상태 점검 엔드포인트도 추가해야 합니다. gRPC 프로브를 구성하는 경우 Cloud Run 작업자 풀에서 gRPC 상태 점검 프로토콜도 구현해야 합니다.
HTTP 상태 점검 엔드포인트 만들기
HTTP 시작 프로브 또는 활성 프로브를 위한 Cloud Run 작업자 풀을 구성하는 경우 프로브에 응답하도록 엔드포인트를 작업자 풀 코드에 추가해야 합니다. 엔드포인트의 이름은 원하는 대로 지정할 수 있지만(예: /startup
또는 /ready
) 프로브 구성의 path
에 지정한 값과 일치해야 합니다. 예를 들어 HTTP 시작 프로브에 /ready
를 지정하면 다음과 같이 프로브 구성에 path
를 지정합니다.
startupProbe: httpGet: path: /ready
HTTP 상태 점검 엔드포인트는 외부에서 액세스할 수 있으며 외부에 노출된 다른 HTTP 엔드포인트와 동일한 원칙을 따릅니다.