커스텀 부팅 디스크 만들기

이 문서에서는 Google Distributed Cloud(GDC) 에어 갭에서 가상 머신 (VM)의 커스텀 부팅 디스크를 만드는 단계를 설명합니다.

VM 인스턴스를 만들면, Distributed Cloud는 기본 구성으로 부팅 영구 디스크를 자동으로 만듭니다. VM의 부팅 디스크도 만들어야 합니다. 공개 이미지 또는 커스텀 이미지를 사용할 수 있습니다.

인스턴스에 데이터 저장 디스크가 추가로 필요한 경우 VM에 영구 디스크를 추가합니다.

이 문서는 VM의 맞춤설정된 부팅 디스크를 만드는 플랫폼 관리자 또는 애플리케이션 운영자 그룹의 개발자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상 고객을 참고하세요.

시작하기 전에

gdcloud 명령줄 인터페이스 (CLI) 명령어를 사용하려면 다운로드, 설치, 및 gdcloud CLI를 구성해야 합니다. Distributed Cloud의 모든 명령어는 gdcloud 또는 kubectl CLI를 사용하며 운영체제 (OS) 환경이 필요합니다.

kubeconfig 파일 경로 가져오기

Management API 서버에 대해 명령어를 실행하려면 다음 리소스가 있어야 합니다.

  1. 로그인하고 생성합니다. Management API 서버의 kubeconfig 파일이 없는 경우 kubeconfig 파일을 생성합니다.

  2. Management API 서버의 kubeconfig 파일 경로를 사용하여 이 안내의 MANAGEMENT_API_SERVER를 바꿉니다.

IAM 역할 요청

프로젝트 IAM 관리자에게 문의하여 프로젝트에 다음 역할을 요청합니다.

  • 가상 머신 프로젝트 관리자 (project-vm-admin): 프로젝트 네임스페이스에서 표준 및 고성능 VM을 만들고, 수정하고, 나열하고, 삭제합니다.

  • 프로젝트 뷰어(project-viewer): 프로젝트 네임스페이스 내의 모든 리소스를 봅니다.

모든 VM 역할은 VM이 있는 프로젝트의 네임스페이스에 바인딩되어야 합니다. 액세스 권한을 확인하는 단계를 따르세요.

부팅 디스크 만들기

이 페이지에 설명된 절차를 사용하여 나중에 VM을 만드는 데 사용할 수 있는 부팅 디스크를 만듭니다.

이미지에서 부팅 디스크 만들기

인스턴스 만들기 절차와 별도로 나중에 독립 부팅 영구 디스크를 만들어 인스턴스에 연결할 수 있습니다. 이 섹션에서는 GDC에서 제공한 OS 이미지 또는 커스텀 OS 이미지에서 부팅 디스크를 만드는 방법을 보여줍니다.

GDC에서 제공한 이미지에서 부팅 디스크 만들기

GDC에서 제공한 이미지를 사용하여 부팅 디스크를 만들기 전에 사용 가능한 이미지 목록을 검토하세요. 그런 다음 제공된 이미지로 부팅 디스크를 만듭니다.

gdcloud

  1. 사용 가능한 모든 이미지와 최소 디스크 크기를 나열합니다.

    gdcloud compute images list
    

    이 명령어에는 Distributed Cloud에서 제공한 이미지와 커스텀 이미지가 모두 포함됩니다. vm-system 네임스페이스에서 둘 중 하나를 선택합니다.

  2. Distributed Cloud에서 제공한 이미지를 선택하여 VM 디스크를 만듭니다.

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=vm-system
    

    다음 정의를 사용하여 변수를 바꿉니다.

    변수정의
    BOOT_DISK_NAME 부팅 디스크의 이름입니다.
    PROJECT 부팅 디스크를 만들 GDC 프로젝트입니다.
    DISK_SIZE 부팅 디스크의 크기입니다. 이미지의 minimumDiskSize 이상이어야 합니다.
    IMAGE_NAME 이미지의 이름입니다.

kubectl

  1. 사용 가능한 모든 GDC에서 제공한 이미지를 나열합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. 특정 GDC에서 제공한 이미지의 minimumDiskSize를 가져옵니다. 만든 맞춤설정된 부팅 디스크의 크기는 minimumDiskSize 이상이어야 합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. VirtualMachineDisk 객체를 만듭니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: vm-system
      size: DISK_SIZE
    EOF
    

    다음 정의를 사용하여 변수를 바꿉니다.

    변수정의
    MANAGEMENT_API_SERVER Management API 서버 kubeconfig 파일입니다.
    IMAGE_NAME 이미지의 이름입니다.
    PROJECT 부팅 디스크를 만들 GDC 프로젝트입니다.
    BOOT_DISK_NAME 부팅 디스크의 이름입니다.
    DISK_SIZE 부팅 디스크의 크기입니다. 이미지의 minimumDiskSize 이상이어야 합니다.

커스텀 이미지에서 부팅 디스크 만들기

커스텀 이미지는 사용자 프로젝트에만 속합니다. 커스텀 이미지로 VM을 만들려면 먼저 커스텀 이미지가 없는 경우 동일한 프로젝트에서 커스텀 이미지를 만들어야 합니다.

아직 설정하지 않은 경우 프로젝트에서 커스텀 이미지에 액세스하는 데 필요한 IAM 역할 을 설정합니다. 그런 다음 이 안내를 계속 진행합니다.

gdcloud

  1. 모든 커스텀 이미지와 최소 디스크 크기를 나열합니다.

    gdcloud compute images list \
      --project=PROJECT \
    
  2. 커스텀 이미지를 선택하여 VM 디스크를 만듭니다.

    gdcloud compute disks create BOOT_DISK_NAME \
      --project=PROJECT \
      --size=DISK_SIZE \
      --image=IMAGE_NAME \
      --image-project=PROJECT
    

    다음 정의를 사용하여 변수를 바꿉니다.

    변수정의
    BOOT_DISK_NAME 부팅 디스크의 이름입니다.
    PROJECT 부팅 디스크를 만들 GDC 프로젝트입니다.
    DISK_SIZE 부팅 디스크의 크기입니다. 이미지의 minimumDiskSize 이상이어야 합니다.
    IMAGE_NAME 이미지의 이름입니다.

API

  1. 모든 커스텀 이미지를 나열합니다:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimages.virtualmachine.gdc.goog
    
  2. 특정 맞춤설정된 이미지의 minimumDiskSize를 가져옵니다. 만든 맞춤설정된 부팅 디스크의 크기는 minimumDiskSize 이상이어야 합니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimages.virtualmachine.gdc.goog IMAGE_NAME \
      -ojsonpath='{.spec.minimumDiskSize}'
    
  3. VirtualMachineDisk 객체를 만듭니다.

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      apply -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: BOOT_DISK_NAME
    spec:
      source:
        image:
          name: IMAGE_NAME
          namespace: PROJECT
      size: DISK_SIZE
    EOF
    

    다음 정의를 사용하여 변수를 바꿉니다.

    변수정의
    MANAGEMENT_API_SERVER Management API 서버 kubeconfig 파일입니다.
    IMAGE_NAME 모든 커스텀 이미지 나열명령어에서 선택한 이미지의 이름입니다.
    PROJECT 부팅 디스크를 만들 GDC 프로젝트입니다.
    BOOT_DISK_NAME 부팅 디스크의 이름입니다.
    DISK_SIZE 부팅 디스크의 크기입니다. 이미지의 minimumDiskSize 이상이어야 합니다.

다음 단계