컨테이너 상태 점검(서비스)

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

신규 및 기존 Cloud Run 서비스에 대해 HTTP 및 TCP 시작 상태 점검 프로브를 구성할 수 있습니다.

시작 프로브를 사용하여 컨테이너가 시작되고 트래픽을 수락할 준비가 되었는지 확인합니다.

시작 프로브 구성

구성을 변경하면 새 버전이 생성됩니다. 이를 변경하는 명시적 업데이트가 없으면 이후 버전에도 이 구성 설정이 자동으로 적용됩니다.

다음 유형의 프로브를 구성할 수 있습니다.

  • HTTP 시작 프로브
  • TCP 시작 프로브

YAML 파일을 사용하여 Cloud Run 서비스의 시작 프로브를 구성합니다. 구성은 프로브 유형에 따라 다릅니다.

HTTP 시작 프로브 구성

HTTP용 기본 HTTP 시작 프로브는 없지만 Cloud Run 서비스용으로 구성할 수 있습니다. HTTP 상태 점검 프로브를 사용하려면 프로브에 응답하기 위해 서비스에서 해당 HTTP 상태 점검 엔드포인트를 만들어야 합니다.

시작 프로브가 구성된 후 Cloud Run은 서비스 상태 점검 엔드포인트(예: /ready)에 HTTP GET 요청을 수행합니다. 200400 사이의 응답은 성공입니다. 다른 모든 응답은 실패를 나타냅니다.

시작 프로브가 지정된 시간(failureThreshold * periodSeconds), 즉 240초 이내에 성공하지 못하면 컨테이너가 종료됩니다.

기존 서비스의 경우 Google Cloud 콘솔을 사용하고, 신규 또는 기존 서비스의 경우 YAML을 사용하여 HTTP 시작 프로브를 구성할 수 있습니다.

콘솔

  1. Cloud Run으로 이동

  2. 구성하려는 서비스를 클릭합니다.

  3. YAML 탭을 클릭합니다.

  4. 수정을 클릭하고 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE
    spec:
    template:
    metadata:
    spec:
      containers:
        image: IMAGE_URL
        startupProbe:
          httpGet:
            path: PATH
            httpHeaders:
              - name: HEADER_NAME
                value: HEADER_VALUE
          initialDelaySeconds: DELAY
          timeoutSeconds: TIMEOUT
          failureThreshold: THRESHOLD
          periodSeconds: PERIOD
    

    변경

    • SERVICE를 Cloud Run 서비스 이름으로 바꿉니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다.
    • PATHHTTP 엔드포인트의 상대 경로(예: /ready)로 바꿉니다.
    • (선택사항) httpHeaders는 다음과 같이 HEADER_NAMEHEADER_VALUE 필드를 사용하여 여러 개의 또는 반복되는 커스텀 헤더를 제공할 수 있습니다.
    • (선택사항) DELAY를 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초)으로 바꿉니다. 0~240초 사이의 값을 지정합니다. 기본값은 0초입니다.
    • (선택사항) TIMEOUT을 프로브가 타임아웃될 때까지 기다리는 시간(초)으로 바꿉니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~3,600 사이의 값을 지정합니다. 기본값은 1입니다.
    • (선택사항) THRESHOLD를 컨테이너를 준비되지 않음으로 표시하기 전에 프로브를 재시도할 횟수로 바꿉니다. 기본값은 3입니다.
    • (선택사항) PERIOD를 프로브를 수행하는 빈도(초)로 바꿉니다. 1~240초 사이의 값을 지정합니다. 기본값은 10초입니다.
  5. 저장 후 새 버전 배포를 클릭합니다.

YAML

YAML 형식으로 정리된 결과를 반환하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드하고 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
    

    변경

    • SERVICE를 Cloud Run 서비스 이름으로 바꿉니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다.
    • PATH를 HTTP 엔드포인트의 상대 경로(예: /ready)로 바꿉니다.
    • (선택사항) httpHeaders는 다음과 같이 HEADER_NAMEHEADER_VALUE 필드를 사용하여 여러 개의 또는 반복되는 커스텀 헤더를 제공할 수 있습니다.
    • (선택사항) DELAY를 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초)으로 바꿉니다. 0~240초 사이의 값을 지정합니다. 기본값은 0초입니다.
    • (선택사항) TIMEOUT을 프로브가 타임아웃될 때까지 기다리는 시간(초)으로 바꿉니다. 이 값은 periodSeconds에 지정된 값을 초과할 수 없습니다. 1~3,600 사이의 값을 지정합니다. 기본값은 1입니다.
    • (선택사항) THRESHOLD를 컨테이너를 준비되지 않음으로 표시하기 전에 프로브를 재시도할 횟수로 바꿉니다. 기본값은 3입니다.
    • (선택사항) PERIOD를 프로브를 수행하는 빈도(초)로 바꿉니다. 1~240초 사이의 값을 지정합니다. 기본값은 10초입니다.
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml

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

HTTP 시작 프로브에 대해 Cloud Run 서비스를 구성하는 경우 서비스 코드에 프로브에 응답하도록 엔드포인트를 추가해야 합니다. 엔드포인트는 원하는 대로 지정할 수 있지만(예: /startup 또는 /ready) 프로브 구성의 path에 지정한 값과 일치해야 합니다. 예를 들어 HTTP 시작 프로브에 /ready를 지정하면 프로브 구성에 다음과 같이 path를 지정합니다.

startupProbe:
  httpGet:
    path: /ready

TCP 시작 프로브 구성

시작 프로브를 직접 구성하지 않으면 TCP 시작 프로브가 새 Cloud Run 서비스의 기본값으로 자동 구성됩니다. 기본 프로브는 다음과 동일합니다.

startupProbe:
  tcpSocket:
    port: CONTAINER_PORT
  timeoutSeconds: 240
  periodSeconds: 240
  failureThreshold: 1

여기서 port는 이미 컨테이너 포트로 설정되어 있으며 프로브 구성을 업데이트할 때 설정하려고 해도 컨테이너 포트로 설정된 상태로 유지됩니다.

이 섹션의 안내에 따라 기본값을 변경할 수 있습니다.

TCP 시작 프로브의 경우 Cloud Run은 지정된 포트에서 TCP 소켓을 열기 위해 TCP 연결을 수행합니다. Cloud Run이 연결을 설정할 수 없는 경우 실패를 나타냅니다.

시작 프로브가 지정된 시간(failureThreshold * periodSeconds), 즉 240초 이내에 성공하지 못하면 컨테이너가 종료됩니다.

기존 서비스의 경우 Google Cloud 콘솔을 사용하고, 신규 또는 기존 서비스의 경우 YAML을 사용하여 TCP 시작 프로브를 구성할 수 있습니다.

콘솔

  1. Cloud Run으로 이동

  2. 구성하려는 서비스를 클릭합니다.

  3. YAML 탭을 클릭합니다.

  4. 수정을 클릭하고 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
    name: SERVICE
    spec:
    template:
      metadata:
      spec:
        containers:
        - image: IMAGE_URL
          startupProbe:
            tcpSocket:
              port: CONTAINER_PORT
            initialDelaySeconds: DELAY
            failureThreshold: THRESHOLD
            periodSeconds: PERIOD
    

    변경

    • SERVICE를 Cloud Run 서비스 이름으로 바꿉니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다.
    • CONTAINER_PORT는 이미 컨테이너 포트로 설정되어 있습니다. 프로브를 업데이트할 때 설정하려고 해도 컨테이너 포트로 설정된 상태로 유지됩니다.
    • DELAY를 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초)으로 바꿉니다. 0~240초 사이의 값을 지정합니다. 기본값은 0초입니다.
    • THRESHOLD를 컨테이너를 준비되지 않음으로 표시하기 전에 프로브를 재시도할 횟수로 바꿉니다. 기본값은 3입니다.
    • PERIOD를 프로브를 수행하는 빈도(초)로 바꿉니다. 1~240초 사이의 값을 지정합니다. 기본값은 10초입니다.
  5. 저장 후 새 버전 배포를 클릭합니다.

YAML

YAML 형식으로 정리된 결과를 반환하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드하고 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 다음과 같이 startupProbe 속성을 구성합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              tcpSocket:
                port: CONTAINER_PORT
              initialDelaySeconds: DELAY
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD
                

    변경

    • SERVICE를 Cloud Run 서비스 이름으로 바꿉니다.
    • IMAGE_URL을 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)로 바꿉니다.
    • CONTAINER_PORT는 이미 컨테이너 포트로 설정되어 있습니다. 이 값을 변경하면 안 됩니다.
    • DELAY를 첫 번째 프로브를 수행하기 전에 컨테이너가 시작된 후 대기하는 시간(초)으로 바꿉니다. 0~240초 사이의 값을 지정합니다. 기본값은 0초입니다.
    • THRESHOLD를 컨테이너를 준비되지 않음으로 표시하기 전에 프로브를 재시도할 횟수로 바꿉니다. 기본값은 3입니다.
    • PERIOD를 프로브를 수행하는 빈도(초)로 바꿉니다. 1~240초 사이의 값을 지정합니다. 기본값은 10초입니다.
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml