建立自訂開機磁碟

本文說明如何在 Google Distributed Cloud (GDC) 實體隔離環境中,為虛擬機器 (VM) 建立自訂開機磁碟。

建立 VM 執行個體時,Distributed Cloud 會自動建立具有預設設定的開機永久磁碟。您也必須為 VM 建立開機磁碟。您可以使用公開或自訂映像檔。

如果執行個體需要其他資料儲存磁碟,請將永久磁碟新增至 VM

本文適用於平台管理員或應用程式運算子群組的開發人員,他們會為 VM 建立自訂開機磁碟。詳情請參閱 GDC 實體隔離說明文件的目標對象

事前準備

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

取得 kubeconfig 檔案路徑

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

  1. 登入並產生 Management API 伺服器的 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,您必須先建立自訂映像檔 (如果沒有的話),且該映像檔必須與 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 從「list all custom images」(列出所有自訂圖片) 指令中選擇的圖片名稱。
    PROJECT 用來建立開機磁碟的 GDC 專案。
    BOOT_DISK_NAME 開機磁碟的名稱。
    DISK_SIZE 開機磁碟的大小至少須為映像檔的 minimumDiskSize

後續步驟