컨테이너 상태 점검 (작업) 구성

이 페이지에서는 신규 및 기존 Cloud Run 작업에 HTTP, TCP, gRPC 시작 프로브를 구성하는 방법을 설명합니다. 구성은 프로브 유형에 따라 달라집니다.

사용 사례

시작 상태 점검 프로브를 구성할 수 있습니다. 시작 프로브는 컨테이너가 시작되었고 작업을 실행할 준비가 되었는지 확인합니다.

작업이 반복적으로 시작되지 않으면 Cloud Run은 태스크 재시작을 제한하여 제어되지 않는 비정상 종료 루프를 방지합니다.

프로브 요구사항 및 동작

프로브 유형 요구사항 동작
TCP 시작 없음 Cloud Run에서 연결을 설정할 수 없으면 실패한 것입니다.

시작 프로브가 지정된 시간 간격 내에 성공하지 못하면 Cloud Run에서 컨테이너를 종료합니다. 이 시간 간격은 failureThreshold * periodSeconds로 계산되며 240초를 초과할 수 없습니다.
HTTP 시작 HTTP 상태 점검 엔드포인트 만들기
HTTP/1 사용
프로브를 구성하면 Cloud Run이 작업 상태 점검 엔드포인트 (예: /ready)에 HTTP GET 요청을 실행합니다. 200400 사이의 응답은 성공입니다. 다른 모든 응답은 실패를 나타냅니다.

시작 프로브가 240초를 초과할 수 없는 지정된 시간 (failureThreshold * periodSeconds) 내에 성공하지 못하면 컨테이너가 종료됩니다.
gRPC 시작 Cloud Run 작업에서 gRPC 상태 점검 프로토콜 구현하기 시작 프로브가 지정된 시간 (failureThreshold * periodSeconds), 즉 240초 이내에 성공하지 못하면 컨테이너가 종료됩니다.

프로브 구성

Google Cloud 콘솔 또는 YAML을 사용하여 HTTP, TCP, gRPC 프로브를 구성합니다.

콘솔

중요: HTTP 프로브용 Cloud Run 작업을 구성하는 경우 프로브에 응답하도록 작업 코드에 HTTP 상태 점검 엔드포인트도 추가해야 합니다. gRPC 프로브를 구성하는 경우 Cloud Run 작업에서 gRPC 상태 점검 프로토콜도 구현해야 합니다.

  1. Google Cloud 콘솔에서 Cloud Run 페이지로 이동합니다.

    Cloud Run으로 이동

  2. 새 작업의 경우 컨테이너 배포를 클릭한 다음 작업을 클릭합니다. 기존 작업의 경우 작업 탭을 클릭하고 원하는 작업을 클릭한 다음 작업 구성 보기 및 수정을 클릭합니다.

  3. 컨테이너, 볼륨, 네트워킹, 보안을 펼칩니다.

  4. 컨테이너 섹션에서상태 점검으로 이동하고 상태 점검 추가를 클릭하여 상태 점검 추가 구성 패널을 엽니다.

  5. 상태 점검 유형 선택 메뉴에서 상태 점검 시작 유형을 선택합니다.

  6. 프로브 유형 선택 메뉴에서 프로브 유형(예: HTTP 또는 gRPC)을 선택합니다. 그러면 프로브 구성 양식이 표시됩니다.

  7. 프로브 구성은 프로브 유형에 따라 다릅니다. 프로브 설정을 구성합니다.

    • HTTP 프로브를 사용하는 경우:
      • 경로 필드를 사용하여 엔드포인트의 상대 경로(예: /)를 지정합니다.
      • HTTP 헤더 체크박스를 선택하여 선택적 맞춤 헤더를 지정합니다. 그런 다음 이름 필드에 헤더 이름을 지정하고 필드에 헤더 값을 지정합니다. HTTP 헤더 추가를 클릭하여 헤더를 더 지정합니다.
    • 포트의 경우 작업 컨테이너가 프로브를 리슨하는 포트를 지정합니다.
    • 초기 지연의 경우 첫 번째 프로브를 실행하기 전에 컨테이너가 시작된 후 대기할 시간(초)을 지정합니다. 0~240초 사이의 값을 지정하세요. 기본값은 0초입니다.
    • 기간에 프로브를 실행할 시간 간격 (초)을 지정합니다. 예를 들어 2초마다 프로브를 수행하는 경우 2로 바꿉니다. 1~240초 사이의 값을 지정하세요. 기본값은 10초입니다.
    • 실패 기준의 경우 컨테이너를 종료하기 전에 프로브를 재시도할 횟수를 지정합니다. 기본값은 3입니다.
    • 제한 시간에 프로브가 타임아웃될 때까지 기다릴 시간(초)을 지정합니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~240 사이의 값을 지정하세요. 기본값은 1입니다.
  8. 추가를 클릭하여 새 기준점을 추가합니다.

YAML

중요: HTTP 프로브용 Cloud Run 작업을 구성하는 경우 프로브에 응답하도록 작업 코드에 엔드포인트도 추가해야 합니다. gRPC 프로브를 구성하는 경우 Cloud Run 작업에서 gRPC 상태 점검 프로토콜도 구현해야 합니다.

TCP 시작

  1. 새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    다음 변수를 바꿉니다.

    • JOB을 Cloud Run 작업 이름으로 바꿉니다.
    • IMAGE_URL를 작업 컨테이너 이미지의 URL로 바꿉니다(예: us-docker.pkg.dev/cloudrun/container/job:latest).
    • 선택사항: CONTAINER_PORT를 작업 컨테이너가 프로브를 리슨하는 포트로 바꿉니다.
    • DELAY: 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초). 0~240초 사이의 값을 지정하세요. 기본값은 0초입니다.
    • 선택사항: TIMEOUT: 프로브가 타임아웃될 때까지 기다리는 시간(초)입니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~240 사이의 값을 지정하세요. 기본값은 1입니다.
    • THRESHOLD: 컨테이너를 종료하기 전에 프로브를 재시도할 횟수입니다. 기본값은 3입니다.
    • PERIOD: 프로브를 수행할 시간(초). 예를 들어 2초마다 프로브를 수행하는 경우 2로 바꿉니다. 1~240초 사이의 값을 지정하세요. 기본값은 10초입니다.
  3. 다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.

    gcloud run jobs replace job.yaml

HTTP 시작

  1. 새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    다음 변수를 바꿉니다.

    • JOB을 Cloud Run 작업 이름으로 바꿉니다.
    • IMAGE_URL를 작업 컨테이너 이미지의 URL로 바꿉니다(예: us-docker.pkg.dev/cloudrun/container/job:latest).
    • PATH: HTTP 엔드포인트의 상대 경로(예: /ready)
    • 선택사항: CONTAINER_PORT를 작업 컨테이너가 프로브를 리슨하는 포트로 바꿉니다.
    • 선택사항: httpHeaders는 다음과 같이 HEADER_NAMEHEADER_VALUE 필드를 사용하여 여러 개의 또는 반복되는 커스텀 헤더를 제공할 수 있습니다.
    • 선택사항: DELAY: 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초). 0~240초 사이의 값을 지정하세요. 기본값은 0초입니다.
    • 선택사항: TIMEOUT: 프로브가 타임아웃될 때까지 기다리는 시간(초)입니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~240 사이의 값을 지정하세요. 기본값은 1입니다.
    • 선택사항: THRESHOLD: 컨테이너를 종료하기 전에 프로브를 재시도할 횟수입니다. 기본값은 3입니다.
    • 선택사항: PERIOD: 프로브를 수행할 시간 (초). 예를 들어 2초마다 프로브를 수행하는 경우 2로 바꿉니다. 1~240초 사이의 값을 지정하세요. 기본값은 10초입니다.
  3. 다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.

    gcloud run jobs replace job.yaml

gRPC 시작

  1. 새 작업을 만드는 경우에는 이 단계를 건너뜁니다. 기존 작업을 업데이트하는 경우 YAML 구성을 다운로드합니다.

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              grpc:
                service: GRPC_SERVICE
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    다음 변수를 바꿉니다.

    • JOB을 Cloud Run 작업 이름으로 바꿉니다.
    • IMAGE_URL를 작업 컨테이너 이미지의 URL로 바꿉니다(예: us-docker.pkg.dev/cloudrun/container/job:latest).
    • 선택사항: GRPC_SERVICE 설정하면 grpc.health.v1.Health.Check RPC가 호출될 때 grpc.health.v1.HealthCheckRequest의 서비스 필드에서 사용됩니다.
    • 선택사항: CONTAINER_PORT를 작업 컨테이너가 프로브를 리슨하는 포트로 바꿉니다.
    • 선택사항: DELAY: 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초). 0~240초 사이의 값을 지정하세요. 기본값은 0초입니다.
    • 선택사항: TIMEOUT을 프로브가 타임아웃될 때까지 기다리는 시간(초)으로 바꿉니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~240 사이의 값을 지정하세요. 기본값은 1입니다.
    • 선택사항: THRESHOLD: 컨테이너를 종료하기 전에 프로브를 재시도할 횟수입니다. 기본값은 3입니다.
    • 선택사항: PERIOD: 프로브를 수행할 시간 (초). 예를 들어 2초마다 프로브를 수행하는 경우 2로 바꿉니다. 1~240초 사이의 값을 지정하세요. 기본값은 10초입니다.
  3. 다음 명령어를 사용하여 작업을 만들거나 업데이트합니다.

    gcloud run jobs replace job.yaml

HTTP 상태 점검 엔드포인트 만들기

HTTP 시작 프로브용 Cloud Run 작업을 구성하는 경우 프로브에 응답하도록 작업 코드에 엔드포인트를 추가해야 합니다. /startup 또는 /ready와 같은 엔드포인트 이름을 사용할 수 있습니다. 이름은 프로브 구성에서 path에 지정한 값과 일치해야 합니다. 예를 들어 HTTP 시작 프로브에 /ready를 지정하면 다음과 같이 프로브 구성에 path를 지정합니다.

startupProbe:
  httpGet:
    path: /ready