이 문서에서는 가상 머신 (VM) 디스크 이미지를 Google Distributed Cloud (GDC) 오프라인으로 가져오는 단계를 설명합니다.
기존 가상 디스크(골든 디스크 또는 골든 이미지라고도 함)를 Distributed Cloud로 가져와 시간을 절약하고 결과 이미지를 사용하여 가상 머신을 만드세요. 가져오기 도구는 RAW 및 QCOW 이미지 형식을 지원합니다.
이 문서는 VM 이미지를 만드는 플랫폼 관리자 또는 애플리케이션 운영자 그룹의 개발자를 대상으로 합니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.
시작하기 전에
계속하기 전에 다음 사항을 확인하세요.
- gdcloud CLI가 다운로드, 설치, 구성되어 있습니다. GDC의 모든 CLI 명령어는
gdcloud또는kubectlCLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
권한 및 액세스 요청
이미지를 가져오고 이 페이지에 나열된 VM 작업을 실행하려면 프로젝트 IAM 관리자에게 VM이 있는 프로젝트의 네임스페이스에 다음 IAM 역할을 부여해 달라고 요청하세요.
프로젝트 VirtualMachine 관리자 (
project-vm-admin): 프로젝트 네임스페이스의 VM을 관리합니다.프로젝트 뷰어 (
project-viewer): 프로젝트 네임스페이스 내의 모든 리소스에 대한 읽기 전용 액세스 권한이 있습니다.
단계에 따라 액세스 권한을 인증하세요.
가상 디스크 가져오기
워크스테이션에서 직접 가상 디스크 파일을 가져올 수 있습니다. 가져오기 도구는 파일을 프로젝트의 객체 스토리지 버킷에 자동으로 업로드합니다.
가상 디스크를 가져오려면 gdcloud CLI 또는 Virtual Machine Manager API를 사용합니다.
gdcloud
import 명령어는 보안 셸 (SSH) 및 원격 데스크톱 프로토콜 (RDP)을 사용하여 인스턴스에 연결하기 위한 사용자 인증 정보를 구성하는 데 필요한 패키지가 디스크에 있는지 확인합니다. 여기에는 게스트 환경이 포함됩니다.
또한 이 명령어는 인스턴스가 GDC에서 올바르게 실행되도록 네트워크 시간 프로토콜 (NTP) 및 cloud-init 패키지를 설치합니다.
- 부팅 가능한 이미지를 만들려면
gdcloud compute images import명령어를 사용합니다.
gdcloud compute images import IMAGE_NAME \
--source-file=SOURCE_FILE \
--os=IMAGE_OS \
--timeout=TIMEOUT
다음 변수를 바꿉니다.
- IMAGE_NAME: 대상 이미지의 이름입니다. 이름은 35자(영문 기준) 이하여야 합니다.
- SOURCE_FILE: 가상 디스크 파일입니다. 이 파일은 워크스테이션의 로컬 파일입니다. 절대 경로 또는 상대 경로를 제공할 수 있습니다.
- IMAGE_OS: 가져올 디스크의 OS입니다.
- TIMEOUT: 가져오기가 'TIMEOUT'으로 실패하기 전에 지속될 수 있는 시간입니다. 예를 들어
2h를 지정하면 2시간 후에 프로세스가 실패합니다. 기본 제한 시간은1h입니다.
가상 디스크의 크기와 네트워크 연결 속도에 따라 업로드 작업에 시간이 오래 걸릴 수 있습니다. 디스크 크기에 따라 가져오기 작업을 실행하는 데 수십 분이 걸릴 수 있습니다.
API
API를 통해 가상 디스크를 가져오려면 다음 단계를 따르세요.
관리 API 서버에서
VirtualMachineImageImport객체를 만들어 이미지 가져오기 프로세스를 시작합니다.kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ apply -f - <<EOF apiVersion: virtualmachine.gdc.goog/v1 kind: VirtualMachineImageImport metadata: name: IMAGE_NAME namespace: PROJECT_ID spec: source: objectStorage: bucketRef: name: vm-images-bucket objectName: SOURCE_FILE imageMetadata: name: IMAGE_NAME operatingSystem: IMAGE_OS minimumDiskSize: DISK_SIZE EOF다음 변수를 바꿉니다.
- IMAGE_NAME: 가져올 이미지의 이름입니다. 이름은 35자(영문 기준) 이하여야 합니다.
- PROJECT_ID: 이미지를 가져올 프로젝트의 프로젝트 ID입니다.
- SOURCE_FILE: 객체 스토리지에 가상 디스크 업로드가 포함된 소스 파일의 이름입니다. 이 값은 객체 스토리지 경로 중
vm-images-bucket/이후의 섹션입니다. - IMAGE_OS: 가져올 디스크의 OS입니다.
- DISK_SIZE: 이 이미지로 생성되는 디스크의 최소 크기입니다. 원래 이미지의 파일 시스템 크기보다 20% 이상 큰 버퍼를 사용합니다. 예를 들어 원본 파일 시스템 크기가 10G인 가상 디스크에는
12G이상을 사용합니다.
VirtualMachineImageImport객체의 상태를 쿼리하여 가져오기 진행 상황을 모니터링합니다.kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT_ID \ get virtualmachineimageimport.virtualmachine.gdc.goog IMAGE_NAME \ -o jsonpath='{.status}'
리소스 삭제
가져오기 프로세스에는 가상 디스크 파일을 객체 스토리지에 업로드하는 작업이 포함됩니다.
gdcloud CLI를 사용하는 경우 명령어의 성공 여부와 관계없이 명령어가 완료되면 객체가 정리됩니다. 명령어가 중단되거나 API를 사용하여 이미지 가져오기를 실행하는 경우 파일을 수동으로 삭제할 때까지 가상 디스크 파일이 vm-images-bucket라는 객체 스토리지 버킷에 남아 있을 수 있습니다.
다음 단계
- GDC 지원 이미지 검토
- 이미지를 사용하는 VM 인스턴스를 만들고 시작합니다.
- VM의 부팅 디스크를 만듭니다.