커스텀 부팅 디스크 만들기

가상 머신 (VM) 인스턴스를 만들 때는 해당 VM의 부팅 디스크도 만들어야 합니다. 공개 이미지 또는 커스텀 이미지를 사용할 수 있습니다. VM 인스턴스를 만들면 GDC는 자동으로 부팅 영구 디스크를 만듭니다. 인스턴스에 데이터 저장 디스크가 추가로 필요한 경우 VM에 영구 디스크를 추가합니다.

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

시작하기 전에

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

kubeconfig 파일 경로 가져오기

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

  1. 관리 API 서버 이름을 찾거나 플랫폼 관리자 (PA)에게 서버 이름을 문의합니다.

  2. 관리 API 서버의 kubeconfig 파일이 없는 경우 로그인 및 생성합니다.

  3. 이 안내에서 경로를 사용하여 MANAGEMENT_API_SERVER{"</var>"}}을 바꿉니다.

권한 및 액세스 요청

이 페이지에 나열된 작업을 수행하려면 VM 디스크에 액세스할 수 있어야 합니다. 단계에 따라 VM이 있는 프로젝트의 네임스페이스에서 확인하거나 프로젝트 IAM 관리자가 프로젝트 VirtualMachine 관리자 (project-vm-admin) 역할을 할당하도록 합니다.

GDC 콘솔 또는 gdcloud CLI를 사용하는 VM 작업의 경우 프로젝트 IAM 관리자에게 프로젝트 VirtualMachine 관리자 역할과 프로젝트 뷰어 (project-viewer) 역할을 모두 할당해 달라고 요청하세요.

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

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

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

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

gdcloud

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

    gdcloud compute images list
    

    이 명령어에는 GDC 에어 갭 어플라이언스 제공 이미지와 맞춤 이미지가 모두 포함됩니다. vm-system 네임스페이스에서 하나를 선택합니다.

  2. GDC 에어 갭 어플라이언스 제공 이미지를 선택하여 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 \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace vm-system
    
  2. 특정 GDC 제공 이미지의 minimumDiskSize을 가져옵니다. 생성된 맞춤 부팅 디스크의 크기는 minimumDiskSize 이상이어야 합니다.

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER apply -n PROJECT -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 관리 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 이미지의 이름입니다.

kubectl

  1. 모든 맞춤 이미지 나열:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimages.virtualmachine.gdc.goog --namespace PROJECT
    
  2. 특정 맞춤 이미지의 minimumDiskSize을 가져옵니다. 생성된 맞춤설정 부팅 디스크의 크기는 최소한 minimumDiskSize여야 합니다.

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply --namespace PROJECT -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 관리 API 서버 kubeconfig 파일입니다.
    IMAGE_NAME 모든 맞춤 이미지 나열 명령어에서 선택한 이미지의 이름입니다.
    PROJECT 부팅 디스크를 만들 GDC 프로젝트입니다.
    BOOT_DISK_NAME 부팅 디스크의 이름입니다.
    DISK_SIZE 부팅 디스크의 크기는 이미지의 minimumDiskSize 이상이어야 합니다.

부팅 디스크를 교체하려면 부팅 디스크 교체 페이지를 참고하세요.