신규 및 기존 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 자동 확장이 새 컨테이너 인스턴스를 시작합니다. |
프로브 구성
구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.
Cloud Run REST API를 사용하여 HTTP, TCP, gRPC 프로브를 구성할 수 있습니다.
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 엔드포인트와 동일한 원칙을 따릅니다.