작업자 풀의 컨테이너 구성

이 페이지에서는 Cloud Run 작업자 풀의 진입점 명령어 및 인수를 구성하는 방법을 설명합니다.

Cloud Run은 컨테이너를 시작할 때 이미지의 기본 진입점 명령어 및 기본 명령어 인수를 실행합니다. 이미지의 기본 진입점 및 명령어 인수를 재정의하려면 컨테이너 구성에서 commandargs 필드를 사용하면 됩니다. command 필드는 컨테이너에서 실행하는 실제 명령어를 지정합니다. args 필드는 해당 명령어로 전달되는 인수를 지정합니다.

작업자 풀마다 컨테이너당 최대 1,000개의 인수를 사용할 수 있습니다.

필요한 역할

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

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

진입점 및 인수 구성

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

지정된 컨테이너 명령어 및 인수는 기본 이미지 ENTRYPOINTCMD를 재정의합니다.

Google Cloud 콘솔, Google Cloud CLI, YAML 또는 Terraform을 사용하여 Cloud Run 작업자 풀의 진입점 명령어 및 인수를 설정할 수 있습니다.

콘솔

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

    Cloud Run으로 이동

  2. 메뉴에서 작업자 풀을 선택하고 컨테이너 배포를 클릭하여 새 작업자 풀을 구성합니다. 기존 작업자 풀을 구성하는 경우 작업자 풀을 클릭한 후 새 버전 수정 및 배포를 클릭합니다.

  3. 새 작업자 풀을 구성하는 경우 초기 작업자 풀 페이지를 작성한 후 컨테이너, 볼륨, 네트워킹, 보안을 클릭하여 작업자 풀 구성 페이지를 펼칩니다.

  4. 컨테이너 탭을 클릭합니다.

    이미지

    • 컨테이너 이미지에 정의된 진입점 명령어를 사용하지 않으려면 컨테이너를 실행할 명령어를 지정합니다. 원하는 경우 진입점 명령어에 인수를 지정합니다.
  5. 만들기 또는 배포를 클릭합니다.

gcloud

기존 서비스의 시작 명령어 및 인수를 업데이트하려면 다음 안내를 따르세요.

gcloud beta run worker-pools update WORKER_POOL --command COMMAND --args ARG1,ARG-N

다음을 바꿉니다.

  • WORKER_POOL: 작업자 풀의 이름입니다.
  • COMMAND: 기본 명령어를 사용하지 않는 경우 컨테이너가 시작할 때 실행하는 명령어
  • ARG1: 컨테이너 명령어로 전송 중인 인수입니다. 두 개 이상의 인수에는 쉼표로 구분된 목록을 사용합니다.

새 작업자 풀 또는 기존 작업자 풀을 배포하는 동안 진입점 및 인수를 지정하려면 다음 명령어를 실행합니다.

gcloud beta run worker-pools deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

IMAGE_URL을 작업자 풀이 포함된 컨테이너 이미지에 대한 참조로 바꿉니다(예: us-docker.pkg.dev/cloudrun/container/worker-pool:latest).

진입점 명령어 및 인수의 컨테이너 기본값을 복원하려면 다음과 같이 빈 문자열을 제공합니다.

gcloud beta run worker-pools deploy --image IMAGE_URL --command "" --args ""

YAML

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

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

    apiVersion: run.googleapis.com/v1
    kind: WorkerPool
    metadata:
      name: WORKER_POOL
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        spec:
          containers:
          - name: CONTAINER_NAME
            image: IMAGE_URL
            command:
            - COMMAND
            args:
            - ARG1
            - ARG-N

    다음을 바꿉니다.

    • WORKER_POOL: Cloud Run 작업자 풀의 이름
    • CONTAINER_NAME: 컨테이너의 이름.
    • IMAGE_URL을 작업자 풀이 포함된 컨테이너 이미지에 대한 참조로 바꿉니다(예: us-docker.pkg.dev/cloudrun/container/worker-pool:latest).
    • COMMAND: 기본 명령어를 사용하지 않는 경우 컨테이너가 시작되는 명령어
    • ARG1: 컨테이너 명령어로 전송 중인 인수입니다. 여러 인수를 사용하는 경우 각 행에 각각 지정합니다(예: ARG-N).
  3. 다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.

    gcloud beta run worker-pools replace workerpool.yaml

Terraform

Terraform 구성을 적용하거나 삭제하는 방법은 기본 Terraform 명령어를 참조하세요.

resource "google_cloud_run_v2_worker_pool" "default" {
  name     = "WORKER_POOL"
  location = "REGION"
  launch_stage = "BETA"

  template {
    containers {
      image = "IMAGE_URL"
      command = ["COMMAND"]
      args = ["ARG1", "ARG2"]
    }
  }
}

다음을 바꿉니다.

  • WORKER_POOL: 작업자 풀의 이름입니다.
  • REGION: Google Cloud 리전(예: europe-west1)
  • IMAGE_URL: 작업자 풀이 포함된 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/worker-pool:latest)입니다.
  • COMMAND: 기본 명령어를 사용하지 않는 경우 컨테이너가 시작할 때 실행하는 명령어
  • ARG1, ARG2: 컨테이너 명령어로 전송 중인 인수입니다.

사이드카 배포를 위한 컨테이너 시작 순서 구성

사이드카 배포에서 컨테이너 시작 순서를 지정하려면 컨테이너 종속 항목 기능을 사용합니다. 종속 항목이 있는 컨테이너를 지정하고 종속된 컨테이너를 나열하여 해당 컨테이너가 먼저 시작되도록 합니다. 종속 항목이 없는 컨테이너는 항상 동시에 먼저 시작됩니다.

이 기능을 성공적으로 사용하려면 시작 상태 점검 프로브를 사용해야 합니다. 시작 프로브를 사용하면 Cloud Run이 종속 컨테이너의 상태를 검사하여 통과 여부를 확인한 후에 다음 컨테이너를 시작할 수 있습니다. 상태 확인을 사용하지 않으면 종속된 컨테이너 시작에 실패하더라도 컨테이너가 지정된 순서로 시작됩니다.

작업자 풀에는 기본 시작 상태 점검 프로브가 없습니다.

Google Cloud 콘솔, Google Cloud CLI 또는 YAML을 사용하여 시작 순서를 지정합니다.

콘솔

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

    Cloud Run으로 이동

    • 메뉴에서 작업자 풀을 선택합니다.
    • 기존 작업자 풀의 경우 목록에서 작업자 풀을 클릭하고 새 버전 수정 및 배포를 선택하여 버전 배포 양식을 표시합니다.
    • 새 작업자 풀의 경우 컨테이너 배포를 클릭하여 작업자 풀 만들기 양식을 표시합니다.
  2. 새 작업자 풀의 경우 작업자 풀 이름, 인그레스 컨테이너 URL, CPU 할당, 인그레스 컨트롤, 인증을 지정합니다. 컨테이너, 볼륨, 네트워킹, 보안 탭에서 다음을 수행합니다.

    1. 인그레스 컨테이너를 구성합니다.
    2. 배포 중인 다른 컨테이너를 각각 추가하려면 컨테이너 추가를 클릭합니다.
    3. 인그레스 컨테이너를 제외한 모든 컨테이너의 경우 시작 상태 점검을 구성합니다.
    4. 특정 다른 컨테이너가 시작된 후에 컨테이너를 시작해야 하는 경우 컨테이너 시작 순서 메뉴에서 해당 컨테이너를 선택합니다.
  3. 기존 작업자 풀의 경우 다음 단계를 따르세요.

    1. 인그레스 컨테이너를 제외한 모든 컨테이너의 경우 시작 상태 점검을 구성합니다.
    2. 각 컨테이너는 자체 컨테이너 시작 순서 메뉴와 함께 표시됩니다. 다른 컨테이너가 먼저 시작되어야 특정 컨테이너를 시작할 수 있는 경우 컨테이너 시작 순서 메뉴를 사용하여 먼저 시작해야 하는 컨테이너를 선택합니다.
  4. 다른 필수 구성을 모두 완료한 후 새 작업자 풀의 경우 만들기를, 기존 작업자 풀의 경우 배포를 클릭합니다. 배포가 완료될 때까지 기다립니다.

gcloud

Google Cloud CLI를 사용하여 시작 순서를 지정하기 전에 시작 상태 점검을 구성하세요.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 지정된 시작 순서에 따라 여러 컨테이너를 서비스에 배포하려면 다음 명령어를 실행합니다.

  3. gcloud beta run worker-pools deploy WORKER_POOL \
         --container CONTAINER_1_NAME --image='WORKER_POOL_IMAGE'
         --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
         --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME

    다음을 바꿉니다.

    • WORKER_POOL: 작업자 풀의 이름입니다.
    • IMAGE_URL: 작업자 풀이 포함된 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/worker-pool:latest)입니다.
    • SIDECAR_IMAGE: 사이드카 컨테이너 이미지에 대한 참조입니다.

      배포 명령어에서 각 컨테이너를 구성하려면 각 컨테이너 구성을 container 매개변수 다음에 제공합니다.

    YAML

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

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

      apiVersion: run.googleapis.com/v1
      kind: WorkerPool
      metadata:
        name: WORKER_POOL
        annotations:
          run.googleapis.com/launch-stage: BETA
      spec:
        template:
          metadata:
            annotations:
              run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'

      다음을 바꿉니다.

      • WORKER_POOL: Cloud Run 작업자 풀의 이름
      • CONTAINER1: 하나 이상의 컨테이너에 종속된 첫 번째 컨테이너의 이름입니다. YAML에서 컨테이너 이름을 설정할 수 있습니다. 컨테이너 이름을 지정하지 않으면 Cloud Run이 자동으로 이름을 생성합니다.
      • CONTAINER2: CONTAINER1 전에 시작해야 하는 컨테이너의 이름입니다.
      • CONTAINER3: 하나 이상의 컨테이너에 종속된 두 번째 컨테이너 이름입니다.

      YAML 스니펫에 표시된 예시에서 CONTAINER2가 먼저 시작되고 CONTAINER1가 두 번째로 시작되며, CONTAINER3이 마지막으로 시작됩니다.

    3. 다음 명령어를 사용하여 작업자 풀을 만들거나 업데이트합니다.

      gcloud beta run worker-pools replace workerpool.yaml

작업자 풀의 컨테이너 구성 보기

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

    Cloud Run으로 이동

  2. 작업자 풀을 클릭하여 배포된 작업자 풀 목록을 표시합니다.

  3. 검사할 작업자 풀을 클릭하여 세부정보 창을 표시합니다.

  4. 컨테이너 탭을 클릭하여 작업자 풀 컨테이너 구성을 표시합니다.