建立自訂開機磁碟

事前準備

如要使用 gdcloud 指令列介面 (CLI) 指令,請務必下載、安裝及設定 gdcloud CLI。Distributed Cloud 的所有指令都使用 gdcloudkubectl CLI,且需要作業系統 (OS) 環境。

取得 kubeconfig 檔案路徑

如要對 Management API 伺服器執行指令,請確認您具備下列資源:

  1. 登入並產生 Management API 伺服器的 kubeconfig 檔案 (如果沒有)。

  2. 使用 Management API 伺服器的 kubeconfig 檔案路徑,取代這些操作說明中的 MANAGEMENT_API_SERVER

要求權限和存取權

如要執行本頁列出的工作,您必須具備專案虛擬機器管理員角色。按照步驟驗證您在 VM 所在專案的命名空間中,是否具備專案 VirtualMachine 管理員 (project-vm-admin) 角色。

如要使用 GDC 控制台或 gdcloud CLI 執行 VM 作業,請要求專案 IAM 管理員同時指派專案 VirtualMachine 管理員角色和專案檢視者 (project-viewer) 角色。

建立開機磁碟

建立虛擬機器 (VM) 執行個體時,您也必須為 VM 建立開機磁碟。您可以使用公開或自訂映像檔。

當您建立 VM 執行個體時,GDC 會自動建立開機永久磁碟。 如果執行個體需要其他資料儲存磁碟,請將永久磁碟新增至 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 \
        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,您必須先建立自訂映像檔 (如果沒有的話),且該映像檔必須與 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 \
        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 從「list all custom images」(列出所有自訂圖片) 指令中選擇的圖片名稱。
    PROJECT 要建立開機磁碟的 GDC 專案。
    BOOT_DISK_NAME 開機磁碟的名稱。
    DISK_SIZE 開機磁碟的大小至少須為映像檔的 minimumDiskSize

如要更換開機磁碟,請參閱「更換開機磁碟」頁面。