Compute Engine의 컨테이너 시작 에이전트가 지원 중단됩니다. 이 에이전트를 사용하면 VM을 만들 때 Compute Engine 인스턴스에 컨테이너를 배포할 수 있습니다.
이 문서에서는 VM 또는 관리형 인스턴스 그룹 (MIG)에서 시작 에이전트가 만든 기존 컨테이너를 다른Trusted Cloud 서비스로 이전하는 방법을 설명합니다.
요구사항에 따라 지원 중단된 방법을 사용하여 VM에 배포된 컨테이너를 이전하려면 다음 옵션 중 하나를 선택하세요.
- 개별 VM 및 MIG에서 컨테이너를 계속 실행하려면 시작 스크립트 또는 cloud-init를 사용하세요.
- 스테이트리스(Stateless) 컨테이너 애플리케이션과 중소 규모 작업이 있는 경우 Cloud Run을 사용하세요.
- 컨테이너가 명확한 종료 상태가 있고 추가 컴퓨팅 리소스가 필요한 일괄 작업인 경우 Batch를 사용합니다.
- 고급 제어 및 확장성이 필요하거나 다른 옵션으로 요구사항을 충족할 수 없는 경우 Google Cloud의 GKE를 사용하세요.
자세한 사용 사례 및 대체 솔루션은 컨테이너 배포 옵션 비교를 참고하세요.
VM에서 컨테이너를 구성하기 위한 지원 중단된 옵션
VM을 만드는 동안 컨테이너를 구성하면 Compute Engine은 컨테이너 시작 에이전트를 사용하여 컨테이너 정보를 저장하는 gce-container-declaration
메타데이터를 읽고 VM에 컨테이너를 배포합니다.
컨테이너 시작 에이전트와 gce-container-metadata
를 사용하는 VM 또는 MIG에 직접 컨테이너를 배포하는 다음 옵션은 지원 중단됩니다.
콘솔
인스턴스 만들기 페이지의 컨테이너 배포 옵션이 지원 중단됩니다.
gcloud
VM 또는 인스턴스 템플릿에서 컨테이너를 구성하는 다음 gcloud
명령어는 지원 중단됩니다.
- gcloud compute instances create-with-container
- gcloud compute instances update-container
- gcloud compute instance-templates create-with-container
--metadata
플래그를 사용하여gce-container-declaration
메타데이터 키를 설정하는 gcloud compute instances create 명령어--metadata
플래그를 사용하여gce-container-declaration
메타데이터 키를 설정하는 gcloud compute instance-templates create 명령어
Terraform
컨테이너를 구성하는 Terraform 모듈 gce-container
및 gce-container-declaration
메타데이터 키가 지원 중단됩니다.
지원 중단된 컨테이너 메타데이터를 사용하는 인스턴스 식별
프로젝트의 인스턴스에서 지원 중단된 컨테이너 메타데이터를 사용하는지 확인하려면 gce-container-declaration
메타데이터 키와 값이 있는 인스턴스를 나열하는 다음 Google Cloud CLI 명령어를 실행합니다.
gcloud compute instances list --filter="metadata.items.key:gce-container-declaration"
이 명령어는 구성된 프로젝트에서 gce-container-declaration
메타데이터 키가 포함된 모든 VM 인스턴스의 목록을 제공합니다. 메타데이터 키는 지원 중단 범위에 속하는 VM을 고유하게 식별합니다. 여러 프로젝트를 사용하는 경우 모든 활성 프로젝트에서 이 명령어를 실행합니다.
검증하려는 특정 인스턴스가 있는 경우 다음 Google Cloud CLI 명령어를 실행합니다.
gcloud compute instances describe VM_NAME --format="(metadata.items)"
VM_NAME을 검증하려는 VM 인스턴스의 이름으로 바꿉니다.
메타데이터 보기에 대한 자세한 내용은 메타데이터 보기 및 쿼리를 참고하세요.
컨테이너 배포 옵션 비교
다음 표에는 VM에서 컨테이너를 실행하는 사용 사례가 요약되어 있으며 워크로드를 마이그레이션하기 위한 대체 컨테이너 솔루션이 권장되어 있습니다.
사용 사례 | 교체 유형 | 비용 | 추천 솔루션 |
---|---|---|---|
|
직접 교체 | 추가 비용 없음 | 시작 스크립트를 사용하여 VM을 만듭니다. |
예를 들어 사용자를 만들거나, 파일을 가져오거나, 디스크를 마운트하거나, 권한 모드를 사용합니다. |
직접 교체 | 추가 비용 없음 | VM 수명 주기 중에 작업을 실행하려면 cloud-init 사용 |
명확한 종료 상태가 있고 추가 컴퓨팅 리소스가 필요한 일괄 작업을 실행합니다. | 관리형 서비스 | 워크로드 특성 및 컨테이너 구성의 복잡성에 따라 다릅니다. | Batch |
|
관리형 서비스 | 소규모 워크로드에 적합한 저렴한 솔루션이 없습니다. | Cloud Run |
|
관리형 서비스 | 워크로드 특성 및 컨테이너 구성의 복잡성에 따라 다릅니다. | Google Kubernetes Engine |
Compute Engine 컨테이너 시작 에이전트에서 대체 솔루션으로 전환할 때는 다음 필수 변경사항과 이를 구현하는 데 필요한 노력을 고려하세요.
- Container-Optimized OS를 실행하는 VM: VM 및 컨테이너 런타임 설정, 구성, 보안, 유지관리의 전체 소유권을 가져옵니다. 여기에는 시작 스크립트 또는
cloud-init
를 사용한 스크립팅이 포함되는 경우가 많습니다. - Cloud Run 또는 Batch: 애플리케이션이 상태 비저장이고 요청 기반 또는 작업 기반 실행 모델에 적합한지 확인합니다. 이 접근 방식에는 외부 상태 관리 서비스와 작동하도록 애플리케이션을 조정하는 것이 포함될 수 있습니다.
- GKE: Kubernetes 원칙을 채택하고, Kubernetes 매니페스트 파일을 사용하여 워크로드를 정의하고, 클러스터 리소스를 관리합니다.
시작 스크립트를 사용하여 VM에 컨테이너 배포
시작 스크립트를 사용하여 VM에서 기본 컨테이너를 실행할 수 있습니다.
시작 스크립트를 사용하여 컨테이너를 구성할 때는 다음 사항을 고려하세요.
- 기본 시나리오에는 시작 스크립트를 사용할 수 있습니다. 고급 구성의 경우
cloud-init
사용을 고려하세요. - 시작 스크립트를 사용하여 구성된 컨테이너로 새 VM을 만들기 때문에 기존 VM에 배포된 워크로드의 전환을 계획해야 합니다.
- 컨테이너가 있는 새로 만든 VM으로 트래픽을 라우팅하기 전에 모든 것이 예상대로 작동하는지 테스트하고 확인합니다.
VM을 만들고 VM 또는 MIG에 컨테이너를 배포하려면 다음을 수행하세요.
- VM 메타데이터의 현재 컨테이너를 시작 스크립트 명령에 매핑
- 기존 메타데이터 구성을 기반으로 시작 스크립트 만들기
- 시작 스크립트를 사용하여 VM 만들기 또는 시작 스크립트를 사용하여 MIG 만들기
컨테이너 메타데이터를 docker run
명령에 매핑
VM 메타데이터 또는 gcloud
플래그를 docker run
인수에 매핑하고 VM 생성용 시작 스크립트에 이를 포함할 수 있습니다.
일부 gcloud
플래그는 VM 메타데이터로 직접 변환됩니다. 이러한 플래그는 docker run
플래그로 직접 변환되기도 합니다.
VM에 기존 컨테이너가 있는 경우 VM 메타데이터 구성을 읽고 이에 상응하는 docker run
명령어를 사용하여 시작 스크립트를 빌드할 수 있습니다.
# Get your existing VM instance configuration in yaml format
gcloud compute instances describe VM_NAME --format="(metadata.items)"
출력은 다음과 비슷합니다.
metadata:
items:
- key: gce-container-declaration
value: |
spec:
containers:
- args:
- '"hello world!"'
command:
- echo
env:
- name: ONE
value: '1'
image: docker.io/library/busybox
name: my-instance
securityContext:
privileged: true
stdin: true
tty: true
restartPolicy: Always
- key: google-logging-enabled
value: 'true'
다음 표를 사용하여 기존 사양을 docker run
명령어에 매핑합니다.
Google Cloud CLI 플래그 | VM 메타데이터 키 | Docker run 명령어 |
---|---|---|
--container-image |
containers.image |
플래그 없이 인수로 지정합니다. 예를 들면 다음과 같습니다. docker run gcr.io/google-containers/busybox |
--container-command |
command |
컨테이너 이미지 이름 뒤에 플래그 없이 인수로 지정합니다. 예를 들면 다음과 같습니다. docker run gcr.io/google-containers/busybox echo "hello world" |
--container-arg |
args |
명령어 뒤에 플래그 없이 인수로 지정합니다. 예를 들면 다음과 같습니다. docker run gcr.io/google-containers/busybox echo "hello world" |
--container-env |
containers.env array |
--env KEY=VALUE [--env KEY=VALUE ...] |
--container-restart-policy |
restartPolicy |
--restart 가능한 값은 no , on-failure , always 입니다. 기본값은 no 입니다. |
--container-stdin |
containers.stdin |
-i 불리언 플래그입니다. 있으면 true이고 기본적으로 false입니다. |
--container-tty |
containers.tty |
-t 불리언 플래그입니다. 있으면 true이고 기본적으로 false입니다. |
--container-privileged |
containers.securityContext.privileged |
--privileged 불리언 플래그입니다. 있으면 true이고 기본적으로 false입니다. |
--container-mount-disk |
- | 이에 상응하는 docker run 명령어가 없습니다.디스크를 마운트할 수 있습니다. |
시작 스크립트 예시
다음 예는 시작 스크립트에 docker
명령어를 포함하는 방법을 보여줍니다.
- 예 1: Container-Optimized OS 기반 VM에서 독립형 컨테이너를 실행합니다.
예 2: Container-Optimized OS 기반 VM에서 웹 서버 컨테이너를 실행합니다.
예 1
Container-Optimized OS 기반 VM에서 독립형 컨테이너를 실행합니다.
#!/bin/bash
# A name for the container
CONTAINER_NAME="my-app-container"
# Stop and remove the container if it exists
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# Pull the latest version of the container image from Docker Hub
docker pull busybox:latest
# Run docker container from image in docker hub
docker run busybox:latest \
echo "hello world!"
예 2
Container-Optimized OS 기반 VM에서 웹 서버 컨테이너를 실행합니다.
#!/bin/bash
# Enable incoming traffic
iptables -A INPUT -j ACCEPT
# A name for the container
CONTAINER_NAME="my-app-container"
# Stop and remove the container if it exists
docker stop $CONTAINER_NAME || true
docker rm $CONTAINER_NAME || true
# Pull the latest version of the container image from Docker Hub
docker pull nginx:latest
# Run docker container from image in docker hub
docker run \
--name=$CONTAINER_NAME \
--privileged \
--restart=always \
--tty \
--detach \
--network="host" \
nginx:latest
컨테이너 배포를 위한 추가 구성 옵션
이 섹션에서는 VM에 컨테이너를 배포하기 위한 추가 구성 매개변수를 설명합니다.
이러한 옵션에 관한 자세한 내용은 컨테이너 실행을 위한 옵션 구성을 참고하세요.
Artifact Registry 이미지 액세스
gcr.io 또는 pkg.dev의 컨테이너 이미지에 액세스해야 하는 경우 Container-Optimized OS에 사전 설치된 docker-credential-gcr
도구를 사용하고 Docker용 Artifact Registry에 대한 인증을 구성하세요.
컨테이너를 실행하기 전에 다음 명령어를 실행합니다.
# Set home directory to save docker credentials
HOME=/home/appuser
# Configure docker with credentials for gcr.io and pkg.dev
docker-credential-gcr configure-docker
자세한 내용은 Docker용 Artifact Registry에 대한 인증 구성을 참고하세요.
로깅 구성
VM에서 로깅 에이전트를 사용 설정하여 Cloud Logging을 사용하는 것이 좋습니다.
또는 로깅 드라이버를 변경하려면 docker run
명령어에 --log-driver
매개변수를 포함하면 됩니다.
# Use Cloud Logging logging driver
docker run --log-driver=gcplogs nginx:latest
자세한 내용은 Container-Optimized OS로 Cloud Logging 사용을 참고하세요.
내부 방화벽 구성
Container-Optimized OS는 기본적으로 수신 트래픽을 거부하므로 해당 트래픽을 허용하는 iptables
규칙을 추가해야 합니다. 이러한 명령어는 호스트 운영체제의 내부 방화벽을 구성합니다. 또한 새 VM으로 트래픽을 허용하도록 Virtual Private Cloud 방화벽을 구성해야 합니다.
자세한 내용은 VPC 방화벽 규칙 사용을 참고하세요.
# Enable all incoming and routed traffic
iptables -A INPUT -p -j ACCEPT
iptables -A FORWARD -p -j ACCEPT
자세한 내용은 호스트 방화벽 구성을 참고하세요.
컨테이너에 볼륨 연결
볼륨이 컨테이너에 연결된 경우 컨테이너 메타데이터에는 volumes
항목과 volumeMounts
배열이 포함됩니다. volumes
의 항목 name
은 volumeMounts
의 항목 이름에 해당하며, 반대의 경우도 마찬가지입니다.
수집하는 각 볼륨에 대해 volumes
또는 volumeMounts
항목에서 필수 정보를 수집합니다.
컨테이너에 연결된 볼륨이 없으면 이 섹션을 건너뛰고 시작 스크립트를 사용하여 VM을 직접 만드세요.
Container-Optimized OS의 디스크 및 파일 시스템에 대한 자세한 내용은 디스크 및 파일 시스템 개요를 참고하세요.
tmpfs 파일 시스템 마운트
비어 있는 tmpfs 파일 시스템을 컨테이너에 마운트하려면 docker run
명령어와 함께 --tmpfs
인수를 지정합니다. 예를 들어 nginx 컨테이너에 캐시 파일 시스템을 마운트하려면 다음 명령어를 실행합니다.
# mount a cache file system to the nginx container
docker run -d --name=$CONTAINER_NAME --tmpfs /var/cache/nginx:rw,size=512m,noexec,nosuid,nodev --network="host" nginx:latest
tmpfs
파일 시스템 마운트에 관한 자세한 내용은 tmpfs 마운트를 참고하세요.
호스트 디렉터리 마운트
호스트 VM에서 컨테이너로 디렉터리를 마운트하려면 docker run
명령어와 함께 --mount
인수를 지정합니다.
# mount a read-only directory to the nginx container
docker run -d --name=$CONTAINER_NAME --mount type=bind,source=/var/www/html,target=/usr/share/nginx/html,ro nginx:latest
자세한 내용은 바인드 마운트를 참고하세요.
영구 디스크를 컨테이너에 마운트
컨테이너에 디스크를 마운트하려면 추가 단계가 필요합니다. 디스크를 마운트하려면 먼저 VM에 마운트한 다음 해당 디스크를 컨테이너에 마운트합니다.
디스크를 VM에 마운트하려면 다음 명령어를 실행합니다.
#!/bin/bash DISK_DEVICE_NAME="my-persistent-disk" # This name MUST match the 'device-name' in the gcloud --disk flag DISK_BY_ID_PATH="/dev/disk/by-id/google-${DISK_DEVICE_NAME}" HOST_MOUNT_POINT="/mnt/disks/my-persistent-disk" # This is the path where the disk will be mounted on the VM CONTAINER_MOUNT_PATH="/usr/share/my-persistent-disk" # This is the path where the disk will be mounted in the container # format a disk as an ext4 filesystem, if it doesn't already contain one file -sL $DISK_BY_ID_PATH | grep -q filesystem || \ mkfs.ext4 -m 0 -E lazy_itable_init=0,lazy_journal_init=0,discard $DISK_BY_ID_PATH # create a directory for mounting point sudo mkdir -p "${HOST_MOUNT_POINT}" # mount a disk to the VM sudo mount -o defaults,discard "${DISK_BY_ID_PATH}" "${HOST_MOUNT_POINT}"
VM에 디스크를 마운트한 후
docker run
명령어로--mount
플래그를 추가하여 디스크를 컨테이너에 마운트합니다.docker run -d --name=$CONTAINER_NAME --mount type=bind,source="${HOST_MOUNT_POINT}",target="${CONTAINER_MOUNT_PATH}",readonly nginx:latest
시작 스크립트를 사용하여 VM 만들기
컨테이너 구성으로 시작 스크립트를 만든 후 이 시작 스크립트를 사용하여 Container-Optimized OS 기반 VM을 만듭니다. Container-Optimized OS 기반 VM 만들기에 대한 자세한 내용은 공개 이미지에서 인스턴스 만들기를 참고하세요.
시작 스크립트 사용에 대한 자세한 내용은 Linux VM에서 시작 스크립트 사용을 참고하세요.
콘솔
Trusted Cloud 콘솔에서 인스턴스 만들기 페이지로 이동합니다.
메시지가 표시되면 프로젝트를 선택하고 계속을 클릭합니다. 인스턴스 만들기 페이지가 표시되고 머신 구성 창이 표시됩니다.
머신 구성 창에서 VM의 머신 계열과 머신 유형을 선택합니다.
탐색 메뉴에서 OS 및 스토리지를 클릭합니다. 운영체제 및 스토리지 창이 표시되면 다음을 수행하여 부팅 디스크를 구성합니다.
- 변경을 클릭합니다. 부팅 디스크 창이 표시되고 공개 이미지 탭이 표시됩니다.
- 운영체제 목록에서 Container Optimized OS를 선택합니다.
- 버전 목록에서 OS 버전을 선택합니다.
- 부팅 디스크 유형 목록에서 부팅 디스크 유형을 선택합니다.
- (선택사항) 디스크가 추가로 필요한 경우 추가 디스크 섹션에서 디스크를 추가합니다.
- 선택을 클릭합니다.
탐색 메뉴에서 고급을 클릭합니다.
- 자동화 섹션에 컨테이너 배포를 위해 만든 시작 스크립트를 붙여넣습니다.
만들기를 클릭하여 VM을 만들고 시작합니다.
gcloud
gcloud CLI를 사용하는 경우 시작 스크립트를 별도의 파일에 저장합니다.
시작 스크립트를 사용하여 VM을 만들려면 다음 명령어를 실행합니다.
gcloud compute instances create VM_NAME \ --zone=ZONE \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --machine-type=MACHINE_TYPE \ --metadata-from-file=startup-script=STARTUP_SCRIPT_FILE
다음을 바꿉니다.
VM_NAME
: 새 VM의 이름입니다.ZONE
: 인스턴스를 만들 영역IMAGE_PROJECT
: 이미지가 포함된 Container-Optimized OS 이미지 프로젝트입니다(예:cos-cloud
).IMAGE_FAMILY
: Container-Optimized OS 이미지 계열입니다(예:cos-stable
).MACHINE_TYPE
: 새 VM의 머신 유형입니다. 사전 정의된 머신 유형 또는 커스텀 머신 유형일 수 있습니다.STARTUP_SCRIPT_FILE
: 머신에서 시작 스크립트 파일의 상대 경로입니다(예:./startup_script.sh
).
예:
# Create COS-based VM by using a startup script gcloud compute instances create "cos-instance-with-startup-script" \ --zone="us-central1-c" \ --machine-type="e2-medium" \ --image-family="cos-stable" \ --image-project="cos-cloud" \ --metadata-from-file=startup-script="./startup_script.sh"
다음 명령어를 실행하여 Compute Engine에서 VM을 만들었는지 확인합니다.
gcloud compute instances describe VM_NAME
VM_NAME
을 생성한 VM의 이름으로 바꿉니다.
Terraform
VM을 만들려면 google_compute_instance
리소스를 사용하면 됩니다.
provider "google" { project = "PROJECT_ID" } resource "google_compute_instance" "cos_vm_instance" { name = "VM_NAME" machine_type = "MACHINE_TYPE" zone = "ZONE" # Use a Container-Optimized OS image for the boot disk boot_disk { initialize_params { image = "IMAGE_PROJECT/IMAGE_FAMILY" } } # Attaches the instance to the default network network_interface { network = "default" } # Specify the relative path to the startup script on your local machine metadata = { startup-script = file("STARTUP_SCRIPT_FILE") } }
다음을 바꿉니다.
VM_NAME
: 새 VM의 이름ZONE
: 인스턴스를 만들 영역IMAGE_PROJECT
: 이미지가 포함된 Container-Optimized OS 이미지 프로젝트입니다(예:cos-cloud
).IMAGE_FAMILY
: Container-Optimized OS 이미지 패밀리입니다(예:cos-stable
).MACHINE_TYPE
: 새 VM의 머신 유형입니다. 사전 정의된 머신 유형 또는 커스텀 머신 유형일 수 있습니다.STARTUP_SCRIPT_FILE
: 머신에서 시작 스크립트 파일의 상대 경로입니다(예:./startup_script.sh
).
예:
provider "google" { project = "my-project" } resource "google_compute_instance" "my_container_vm" { name = "my-container-vm-startup" machine_type = "e2-medium" zone = "us-central1-a" boot_disk { initialize_params { image = "cos-cloud/cos-stable" } } network_interface { network = "default" } metadata = { startup-script = file("./startup_script.sh") } }
시작 스크립트를 사용하여 MIG 만들기
시작 스크립트를 사용하여 인스턴스 템플릿을 만든 후 다음 방법 중 하나를 사용하여 MIG를 만듭니다.
MIG 만들기에 대한 자세한 내용은 관리형 인스턴스 그룹 만들기를 참고하세요.
콘솔
이전 섹션에서 만든 시작 스크립트를 기반으로 하는 인스턴스 템플릿을 만듭니다.
- 운영체제 섹션에서 Container Optimized OS와 버전을 선택합니다.
- 자동화 섹션에 컨테이너 배포를 위해 만든 시작 스크립트를 붙여넣습니다.
이전 단계에서 만든 인스턴스 템플릿을 사용하여 MIG를 만듭니다.
gcloud
instance-templates create
명령어를 사용하여 인스턴스 템플릿을 만듭니다.VM에 Container-Optimized OS 이미지를 사용해야 합니다.
--metadata-from-file
플래그에서 시작 스크립트 파일의 상대 경로를 지정할 수 있습니다.이전 단계에서 만든 인스턴스 템플릿을 사용하여 MIG를 만듭니다.
예:
# Create the instance template that uses a startup script gcloud compute instance-templates create startup-template \ --machine-type=e2-medium \ --image-family=cos-stable \ --image-project=cos-cloud \ --metadata-from-file=startup-script=./startup_script.sh # Create the managed instance group gcloud compute instance-groups managed create startup-mig \ --template=startup-template \ --size=2 \ --zone=us-central1-a
Terraform
google_compute_instance_template
및 google_compute_instance_group_manager
리소스를 사용하여 다음 예와 같이 인스턴스 템플릿과 MIG를 만듭니다.
예:
resource "google_compute_instance_template" "startup_template" { name_prefix = "startup-template-" machine_type = "e2-medium" disk { source_image = "cos-cloud/cos-stable" auto_delete = true boot = true } network_interface { network = "default" } metadata = { startup-script = file("./startup_script.sh") } } resource "google_compute_instance_group_manager" "startup_mig" { name = "startup-mig" base_instance_name = "startup-vm" zone = "us-central1-a" version { instance_template = google_compute_instance_template.startup_template.id } target_size = 2 }
테스트 및 정리
VM 또는 MIG를 만든 후 애플리케이션이 컨테이너에서 실행되고 예상대로 작동하는지 확인합니다. 문제를 해결하려면 문제 해결을 참고하세요.
시작 스크립트를 사용하여 만든 새 VM에서 애플리케이션이 성공적으로 실행되면 컨테이너 배포의 지원 중단된 방법을 사용하는 VM과 MIG를 삭제할 수 있습니다.
문제 해결
시작 스크립트를 사용하여 VM에서 컨테이너를 구성할 때 발생할 수 있는 문제를 해결하려면 시작 스크립트 로그와 컨테이너 로그를 확인하세요.
VM 인스턴스에서 시작 스크립트 로그를 보려면 다음 명령어를 실행합니다.
sudo journalctl | grep "startup script"
Docker 컨테이너의 로그를 보려면
docker logs
명령어를 실행합니다.docker logs CONTAINER_NAME
CONTAINER_NAME
을 컨테이너의 이름으로 바꿉니다.
다른 문제 해결은 다음 문서를 참고하세요.
- Cloud Logging 개요
- Container-Optimized OS로 Cloud Logging 사용
- Docker 데몬 문제 해결
- 문제 해결 및 진단
- Terraform 문제 해결
- 기본 웹 서버 실행 시 문제 해결
- 비공개 VM용 인터넷 연결 설정
Container-Optimized OS에서 cloud-init
사용
업계 표준 크로스 플랫폼 솔루션인 cloud-init
를 사용하여 Container-Optimized OS를 실행하는 VM에 컨테이너를 배포할 수 있습니다.
이 도구를 사용하면 VM 생성 또는 시작 중에 맞춤 구성을 실행할 수 있습니다.
자세한 내용은 Cloud 구성 형식으로 cloud-init
사용을 참고하세요.
컨테이너 배포에 관리형 서비스 사용
이 섹션에서는 컨테이너를 배포하는 데 사용할 수 있는 Trusted Cloud by S3NS 에서 제공하는 관리형 서비스를 설명합니다.
Cloud Run
Cloud Run은 스테이트리스 컨테이너 애플리케이션과 중소 규모 작업에 적합합니다.
Cloud Run의 주요 기능은 다음과 같습니다.
- 요청 처리 중에만 CPU를 할당하거나 항상 CPU를 할당할 수 있습니다.
- 스테이트리스 컨테이너 애플리케이션을 실행하거나 일회성으로, 일정에 따라 또는 워크플로의 일부로 작업을 실행할 수 있습니다.
- 각 요청 또는 작업에 제한 시간을 구성할 수 있습니다.
- 확장성이 뛰어나고 안전합니다.
- 통합 부하 분산 및 자동 확장 기능이 있습니다.
Cloud Run에 컨테이너를 배포하는 방법에 대한 자세한 내용은 Cloud Run에 컨테이너 이미지 배포를 참고하세요.
일괄
Batch는 Trusted Cloud by S3NS 리소스에서 일괄 처리 워크로드를 예약, 큐에 추가, 실행할 수 있게 해주는 완전 관리형 서비스입니다. 컨테이너에 패키지된 워크로드를 비롯해 일괄 스타일의 병렬화 가능한 워크로드를 실행하도록 설계되었습니다.
Batch에 컨테이너를 배포하는 방법에 대한 자세한 내용은 다음 문서를 참고하세요.
Google Kubernetes Engine
복잡한 애플리케이션, 마이크로서비스, 지속적인 운영을 실행하고 세부적인 제어 및 확장성이 필요한 경우 Google Kubernetes Engine (GKE)이 가장 적합한 제품입니다. GKE에 컨테이너를 배포하는 방법에 대한 자세한 내용은 다음 문서를 참고하세요.
지원 받기
마이그레이션 프로세스에 대해 궁금한 점이 있거나 도움이 필요한 경우 FAQ를 검토하거나 Trusted Cloud 지원팀에 문의하세요.