이미지 스트리밍을 사용하여 컨테이너 시작 시간 줄이기

이 문서에서는 이미지 스트리밍을 사용하여 컨테이너 이미지를 Batch 컨테이너 작업으로 가져오는 방법을 설명합니다.

이미지 스트리밍을 사용 설정하면 컨테이너 이미지 다운로드가 완료될 때까지 기다리지 않고 Batch 작업을 초기화할 수 있으므로 다음과 같은 이점이 있습니다.

  • 대용량 이미지를 가져올 때 지연 시간 감소
  • 작업 실행 시작 시간 단축

시작하기 전에

제한사항

Batch 이미지 스트리밍에는 다음과 같은 제한사항이 있습니다.

  • Batch는 Artifact Registry에 저장된 컨테이너 이미지의 이미지 스트리밍만 지원합니다. 현재 Container Registry를 사용하여 컨테이너 이미지를 관리하는 경우 Artifact Registry로 전환할 수 있습니다.
  • Batch 작업 VM을 Artifact Registry에 컨테이너 이미지를 저장하는 위치와 같은 위치에서 실행해야 합니다.
  • Docker 이미지 매니페스트 버전 2, 스키마 1을 사용하는 컨테이너는 지원되지 않습니다.
  • 이미지 스트리밍을 사용하는 경우 컨테이너 실행 가능 항목은 다음 필드만 지원합니다.
    • imageUri
    • commands
    • entrypoint
    • volumes
    • enableImageStreaming
  • 비어 있거나 중복된 레이어가 있는 컨테이너 이미지는 지원되지 않습니다.

이미지 스트리밍을 사용하는 작업 만들기

다음을 수행하여 이미지 스트리밍을 사용하는 Batch 컨테이너 작업을 만듭니다.

Google Cloud CLI 또는 REST API를 사용하여 컨테이너 작업을 만듭니다. 컨테이너 실행 가능 항목에 이미지 스트리밍을 사용 설정하려면 enableImageStreaming 필드를 true로, imageUri 필드를 작업 VM 위치가 포함된 Artifact Registry 위치에 저장된 이미지로 설정합니다.

"container": {
    ...
    "enableImageStreaming": true
        }

예를 들어 이미지 스트리밍을 사용하는 작업에는 다음과 비슷한 JSON 구성 파일이 있습니다.

{
    "taskGroups": [
        {
            "taskCount": "1",
            "taskCountPerNode": "1",
            "taskSpec": {
                "runnables": [
                    {
                        "container": {
                            "imageUri": "LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY/IMAGE:TAG",
                            "enableImageStreaming": true
                        }
                    }
                ]
            }
        }
    ],
    "allocationPolicy": {
        "instances": [
            {
                "policy": {
                    "machineType": "e2-standard-4"
                }
            }
        ]
    },
    "logsPolicy": {
        "destination": "CLOUD_LOGGING"
    }
}

다음 값을 바꿉니다.

  • LOCATION: 이미지가 저장된 저장소의 리전 또는 멀티 리전 위치입니다(예: us-east1 또는 us). 컨테이너 위치는 Batch 작업 VM의 위치와 같아야 합니다.
  • PROJECT-ID: 컨테이너 이미지가 포함된 프로젝트입니다. 프로젝트 ID에 콜론(:)이 포함되어 있으면 도메인 범위 프로젝트를 참조하세요.
  • REPOSITORY: 이미지가 저장된 저장소의 이름입니다.
  • IMAGE: 컨테이너 이미지의 이름입니다.
  • TAG: 이미지에 적용된 태그입니다.

다음 단계