인스턴스의 재시작 정책 구성

Cloud Run 인스턴스의 재시작 정책은 인스턴스를 다시 시작해야 하는지 여부와 시기를 결정합니다.

재시작 정책 옵션

다음 재시작 정책 중에서 선택하세요.

  • on-failure (기본값): 컨테이너가 0이 아닌 상태 코드로 종료되거나 컨테이너에 인프라 오류가 발생하면 인스턴스가 다시 시작됩니다. 다중 컨테이너 인스턴스의 경우 컨테이너가 실패하면 전체 인스턴스가 다시 시작됩니다.
  • always: 컨테이너가 종료되면 인스턴스가 항상 다시 시작됩니다. 여기에는 코드 0으로의 클린 종료가 포함됩니다.
  • never: 인스턴스가 다시 시작되지 않습니다. 컨테이너가 종료되면 인스턴스가 즉시 STOPPED 또는 FAILED 상태로 전환됩니다.

인스턴스에 always 또는 on-failure 재시작 정책을 구성하면 인스턴스가 약 7일의 수명 주기가 끝날 때 자동으로 다시 시작되므로 다른 방식으로 중단되지 않는 한 무기한 실행됩니다.

필요한 역할

Cloud Run 인스턴스를 구성하고 배포하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

Cloud Run과 연결된 IAM 역할 및 권한 목록은 다음 항목을 참조하세요. Cloud Run IAM 역할Cloud Run IAM 권한 Cloud Run 인스턴스가 Google Cloud Cloud 클라이언트 라이브러리와 같은 API와 상호작용하는 경우에는 서비스 ID 구성 가이드를 참조하세요. 역할 부여에 대한 자세한 내용은 배포 권한액세스 관리를 참조하세요.

재시작 정책 구성

Google Cloud CLI 또는 YAML을 사용하여 Cloud Run 인스턴스의 재시작 정책을 구성합니다.

gcloud

새 인스턴스를 배포할 때 재시작 정책을 지정하려면 다음 단계를 따르세요.

gcloud beta run instances deploy INSTANCE \
    --image=IMAGE_URL \
    --restart-policy=POLICY

기존 인스턴스의 재시작 정책을 업데이트하려면 다음 단계를 따르세요.

gcloud beta run instances update INSTANCE \
    --restart-policy=POLICY

다음을 바꿉니다.

  • INSTANCE: 인스턴스 이름입니다.
  • IMAGE_URL: 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)입니다.
  • POLICY: 적용할 재시작 정책입니다. on-failure, always, never 중에서 선택합니다.

YAML

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

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. 다음 예시에는 YAML 구성이 포함되어 있습니다.

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - name: CONTAINER_NAME
        image: IMAGE_URL
      restartPolicy: POLICY

    다음을 바꿉니다.

    • INSTANCE: Cloud Run 인스턴스의 이름입니다.
    • CONTAINER_NAME: 컨테이너의 이름입니다.
    • IMAGE_URL: 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest)입니다.
    • POLICY: 적용할 재시작 정책입니다. on-failure, always, never 중에서 선택합니다.
  3. 다음 명령어를 사용하여 인스턴스를 만들거나 업데이트합니다.

    gcloud beta run instances replace instance.yaml