필요한 소프트웨어 및 구성이 포함된 가상 디스크가 온프레미스 환경에 있는 경우(골든 디스크 또는 골든 이미지라고도 함) 이러한 가상 디스크를 GDC 에어갭 어플라이언스로 가져오고 결과 이미지를 사용하여 가상 머신을 만들어 시간을 절약할 수 있습니다. 가져오기 도구는 RAW 및 QCOW 이미지 형식을 지원합니다.
시작하기 전에
계속하기 전에 다음 사항을 확인하세요.
- gdcloud CLI가 다운로드, 설치, 구성되어 있습니다. GDC의 모든 CLI 명령어는
gdcloud또는kubectlCLI를 사용하며 운영체제 (OS) 환경이 필요합니다.
Management API 서버에 대한 액세스 권한 로그인의 CLI 단계에 따라 Management API 서버에 로그인합니다.
IAM 역할 요청
프로젝트 IAM 관리자에게 문의하여 프로젝트에 다음 역할을 요청하세요.
가상 머신 프로젝트 관리자 (
project-vm-admin): 프로젝트 네임스페이스에서 VM을 생성, 수정, 나열, 삭제합니다.프로젝트 뷰어(
project-viewer): 프로젝트 네임스페이스 내의 모든 리소스를 볼 수 있습니다.가상 머신 이미지 프로젝트 관리자 (
project-vm-image-admin): 프로젝트 네임스페이스에서 VM 이미지를 생성, 나열, 삭제합니다.
모든 VM 역할은 VM이 있는 프로젝트의 네임스페이스에 바인드되어야 합니다. 단계에 따라 액세스 권한을 인증합니다.
가상 디스크 가져오기
워크스테이션에서 VM 이미지 디스크 파일을 직접 가져올 수 있습니다. 가져오기 도구는 파일을 프로젝트의 객체 스토리지 버킷에 자동으로 업로드합니다.
가상 디스크를 가져오려면 gdcloud CLI 또는 Virtual Machine Manager API를 사용합니다.
gdcloud
import 명령어는 GDC에서 제공한 이미지에 시큐어 셸 (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를 통해 가상 디스크를 가져오려면 다음 단계를 따르세요.
Management 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라는 객체 스토리지 버킷에 남아 있을 수 있습니다.
다음 단계
VM 만들기 및 시작 페이지에서 이미지를 사용하는 새 VM 인스턴스를 만듭니다.