建立並啟動 VM 執行個體

本頁面說明如何使用開機磁碟映像檔或開機磁碟快照建立虛擬機器 (VM) 執行個體。

您可以建立具有一或多個磁碟的 VM。您也可以在建立 VM 後新增磁碟。Google Distributed Cloud (GDC) air-gapped 會在建立 VM 執行個體後自動啟動該執行個體。

您可以在建立 VM 前後新增啟動指令碼。如要進一步瞭解啟動指令碼,請參閱「搭配 VM 執行個體使用啟動指令碼」頁面。

事前準備

如要使用 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 執行個體

本節說明如何從 GDC 提供的 OS 映像檔自訂 OS 映像檔建立 VM。

查看 GDC 提供的可用映像檔清單

使用 GDC 提供的映像檔建立 VM 前,請先查看可用映像檔清單。如要進一步瞭解 GDC 提供的映像檔,請參閱支援的 VM 映像檔

gdcloud

  • 列出所有可用的映像檔及其最小磁碟大小:

    gdcloud compute images list
    

    這項指令包含 GDC 提供的圖片和自訂圖片。在 vm-system 命名空間中選擇任一圖片。

API

  1. 列出所有可用的 GDC 提供的映像檔:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
    get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system
    
  2. 取得特定 GDC 提供映像檔的 minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace vm-system \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    更改下列內容:

    • MANAGEMENT_API_SERVER:管理 API 伺服器的 kubeconfig 檔案。
    • BOOT_DISK_IMAGE_NAME:圖片名稱。

透過 GDC 提供的映像檔建立 VM 執行個體

根據預設,所有 GDC 專案都可以使用 GDC 提供的 OS 映像檔建立 VM。

gdcloud

  1. 選取 GDC 提供的映像檔,建立 VM 執行個體:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    更改下列內容:

    變數定義
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20GB
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示 VM 執行個體遭刪除時,是否會自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    gdcloud compute machine-types list

API

  1. 選取 GDC 提供的映像檔,建立 VM 執行個體:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    更改下列內容:

    變數定義
    MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
    PROJECT 用於建立 VM 的 GDC 專案。
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    gdcloud compute machine-types list
  2. 確認 VM 已建立,並等待 VM 顯示 Running 狀態。Running 狀態並不表示作業系統已完全就緒且可供存取。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
    get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    VM_NAMEPROJECT 替換為 VM 的名稱和專案。

    如要在建立 VM 執行個體時新增開機指令碼,請按照「搭配 VM 執行個體使用開機指令碼」頁面提供的步驟操作。請務必先關閉 VM,再新增指令碼。

透過自訂映像檔建立 VM 執行個體

自訂映像檔專屬您的專案。如要使用自訂映像檔建立 VM,您必須先在同一個專案中建立自訂映像檔

gdcloud

  1. 列出所有自訂圖片

    gdcloud compute images list --no-standard-images=true
    
  2. 建立 VM 執行個體:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    更改下列內容:

    變數定義
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20GB
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示 VM 執行個體遭刪除時,是否會自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    gdcloud compute machine-types list

API

  1. 列出所有自訂圖片

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
    

    取得特定映像檔的 minimumDiskSize,以建立 VM 執行個體:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT \
        BOOT_DISK_IMAGE_NAME -ojsonpath='{.spec.minimumDiskSize}{"\n"}'
    

    更改下列內容:

    變數定義
    MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
    BOOT_DISK_IMAGE_NAME 從指令中選擇的映像檔名稱,用於列出所有自訂映像檔
    PROJECT 圖片所屬專案。
  2. 建立 VM 執行個體:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    更改下列內容:

    變數定義
    MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
    PROJECT 用於建立 VM 的 GDC 專案。
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
  3. 確認 VM 已建立,並等待 VM 顯示為 Running 狀態。處於 Running 狀態並不代表 OS 已完全就緒且可供存取。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
    get virtualmachine.virtualmachine.gdc.goog VM_NAME -n PROJECT
    

    VM_NAMEPROJECT 替換為 VM 的名稱和專案。

建立具備額外非開機磁碟的 VM 執行個體

建立 VM 時,您可以建立非開機磁碟。每個額外磁碟都可以指定映像檔來源,也可以不指定。後者用於建立空白磁碟。

gdcloud

  1. 從映像檔建立磁碟:

    gdcloud compute disks create NON_BOOT_DISK_FROM_IMAGE \
        --size=NON_BOOT_DISK_SIZE \
        --image=NON_BOOT_DISK_IMAGE_NAME \
        --image-project=NON_BOOT_DISK_IMAGE_NAMESPACE
    
  2. 從空白映像檔建立磁碟:

    gdcloud compute disks create NON_BOOT_BLANK_DISK \
        --size=NON_BOOT_BLANK_DISK_SIZE \
    
  3. 使用上一個步驟中的磁碟建立執行個體:

    gdcloud compute instances create VM_NAME \
        --machine-type=MACHINE_TYPE \
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
        --disk=name=NON_BOOT_DISK_FROM_IMAGE \
        --disk=name=NON_BOOT_BLANK_DISK
    

    更改下列內容:

    變數定義
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_IMAGE_NAMESPACE 要用於新 VM 開機磁碟的映像檔命名空間。如果是 GDC 提供的映像檔,請使用 `vm-system`;如果是自訂映像檔,請將這個欄位留空。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20GB
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示 VM 執行個體遭刪除時,是否會自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    gdcloud compute machine-types list

    如要新增磁碟,請替換下列項目:

    • NON_BOOT_DISK_FROM_IMAGENON_BOOT_BLANK_DISK:額外磁碟的名稱。
    • NON_BOOT_DISK_SIZENON_BOOT_BLANK_DISK_SIZE:額外磁碟的大小,例如 20GB
    • NON_BOOT_DISK_IMAGE_NAME:要當做非開機磁碟使用的映像檔名稱。
    • NON_BOOT_DISK_IMAGE_NAMESPACE:要當做非開機磁碟使用的映像檔命名空間。使用 vm-system 取得 GDC 提供的圖片,或將欄位留空以使用自訂圖片。

API

  1. 建立含有非開機磁碟的 VM:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_DISK_FROM_IMAGE
    spec:
      source:
        image:
          name: NON_BOOT_DISK_IMAGE_NAME
          namespace: NON_BOOT_DISK_IMAGE_NAMESPACE
      size: NON_BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: NON_BOOT_BLANK_DISK
    spec:
      size: NON_BOOT_BLANK_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: BOOT_DISK_IMAGE_NAMESPACE
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        virtualMachineType: MACHINE_TYPE
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
        - virtualMachineDiskRef:
            name: NON_BOOT_DISK_FROM_IMAGE
        - virtualMachineDiskRef:
            name: NON_BOOT_BLANK_DISK
    EOF
    

    更改下列內容:

    變數定義
    MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
    PROJECT 要在 VM 中建立的 GDC 專案。
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_IMAGE_NAMESPACE 要用於新 VM 開機磁碟的映像檔命名空間。如要使用 GDC 提供的映像檔,請使用 vm-system 命名空間;如要使用自訂映像檔,請留空。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
    MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system

    如要新增磁碟,請替換下列項目:

    • NON_BOOT_DISK_FROM_IMAGENON_BOOT_BLANK_DISK:額外磁碟的名稱。
    • NON_BOOT_DISK_SIZENON_BOOT_BLANK_DISK_SIZE:額外磁碟的大小,例如 20Gi
    • NON_BOOT_DISK_IMAGE_NAME:您要用做非開機磁碟的映像檔名稱。
    • NON_BOOT_DISK_IMAGE_NAMESPACE:要用做非開機磁碟的映像檔命名空間。如要使用 GDC 提供的映像檔,請使用 vm-system 命名空間;如要使用自訂映像檔,請留空。

    請在使用前先格式化及掛接磁碟。

透過快照或備份建立 VM

您可以透過下列方式,從快照建立新的 VM:

  • 還原 VM 開機磁碟:如果您使用快照備份 VM 的開機磁碟,請使用該快照建立新的 VM。請參閱「還原快照」。
    • 還原非開機磁碟:如果您使用快照備份非開機磁碟,也可以在建立 VM 時,使用相同的操作說明將快照還原到新的非開機磁碟。

如要使用相同開機磁碟建立多個 VM,請按照下列步驟操作:

  1. 建立自訂映像檔
  2. 從該映像檔建立 VM,而不使用快照。

建立 VM,但不使用機型

Distributed Cloud 提供預先定義的機器類型,可讓您在建立 VM 執行個體時使用。預先定義的機器類型已預先設定 vCPU 數量和記憶體容量。

如果預先定義的 VM 不符合需求,請使用自訂的虛擬化硬體設定建立 VM 執行個體。

自訂 VM 最適合下列情境:

  • 不適用於預先定義 VM 類型的工作負載。
  • 工作負載需要更多處理效能或記憶體,但不需要新一代機器類型提供的所有升級功能。

gdcloud

  1. 建立 VM,並指定機器類型:

    gdcloud compute instances create VM_NAME \
        --custom-cpu=NUM_VCPU \
        --custom-memory=MEMORY
        --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
        --boot-disk-size=BOOT_DISK_SIZE \
        --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE
    

    更改下列內容:

    變數定義
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20GB
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    NO_BOOT_DISK_AUTO_DELETE truefalse,表示 VM 執行個體遭刪除時,是否會自動刪除開機磁碟。
    NUM_VCPU vCPU 的數量,支援的 vCPU 數量上限為 192 個。
    MEMORY 記憶體大小,例如 8G。記憶體大小上限為 1 TB。

API

  1. 建立 VM,並指定機器類型:

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
        apply -n PROJECT -f - <<EOF
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachineDisk
    metadata:
      name: VM_BOOT_DISK_NAME
    spec:
      source:
        image:
          name: BOOT_DISK_IMAGE_NAME
          namespace: vm-system
      size: BOOT_DISK_SIZE
    ---
    apiVersion: virtualmachine.gdc.goog/v1
    kind: VirtualMachine
    metadata:
      name: VM_NAME
    spec:
      compute:
        vcpus: NUM_VCPU
        memory: MEMORY
      disks:
        - virtualMachineDiskRef:
            name: VM_BOOT_DISK_NAME
          boot: true
          autoDelete: BOOT_DISK_AUTO_DELETE
    EOF
    

    更改下列內容:

    變數定義
    MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
    PROJECT 用於建立 VM 的 Distributed Cloud 專案。
    VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
    這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
    BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
    NUM_VCPU vCPU 的數量,支援的 vCPU 數量上限為 192 個。
    MEMORY 記憶體大小,例如 8G。記憶體大小上限為 1 TB。

建立具有指定 IP 位址和子網路的 VM 執行個體

根據預設,您可以在沒有網路規格的情況下建立 Distributed Cloud VM。這類 VM 會附加至預設的虛擬私有雲 (VPC),並從預設子網路動態指派 IP。如要使用預設設定建立 VM,請參閱「使用 GDC 提供的映像檔建立 VM」。

如果不想為 Distributed Cloud VM 使用預設 IP 設定,可以建立具有動態或靜態 IP 位址的 VM:

  • 自訂子網路的動態 IP:您建立具有特定 CIDR 的子網路,並建立 VM,其 IP 是從該 CIDR 動態指派。

  • 自訂子網路的靜態 IP:您建立具有特定 CIDR 的子網路,並從該 CIDR 建立具有靜態 IP 的 VM。

本節說明如何建立 VM,並動態指派位址或使用靜態 IP 位址

從自訂子網路建立 VM,並動態指派 IP

從特定 CIDR 建立 VM,並動態指派 IP:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
       apply -n PROJECT -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
       - virtualMachineDiskRef:
           name: VM_BOOT_DISK_NAME
         boot: true
         autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
   EOF

請替換下列變數:

變數定義
MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
PROJECT 用於建立 VM 的 Distributed Cloud 專案。
VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,最多 53 個字元。
VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
MACHINE_TYPE 新 VM 的預先定義機器類型。選取可用的機器類型:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME 自訂子網路的名稱。

從子網路建立具有靜態 IP 的 VM

從自訂子網路建立具有靜態 IP 的 VM:

   kubectl --kubeconfig MANAGEMENT_API_SERVER \
       apply -n PROJECT -f - <<EOF
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachineDisk
   metadata:
     name: VM_BOOT_DISK_NAME
   spec:
     source:
       image:
         name: BOOT_DISK_IMAGE_NAME
         namespace: vm-system
     size: BOOT_DISK_SIZE
   ---
   apiVersion: virtualmachine.gdc.goog/v1
   kind: VirtualMachine
   metadata:
     name: VM_NAME
   spec:
     compute:
       virtualMachineType: MACHINE_TYPE
     disks:
       - virtualMachineDiskRef:
           name: VM_BOOT_DISK_NAME
         boot: true
         autoDelete: BOOT_DISK_AUTO_DELETE
     network:
       interfaces:
       - subnet: SUBNET_NAME
         ipAddresses:
         - address: IP_ADDRESS
   EOF

請替換下列變數:

變數定義
MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
PROJECT 用於建立 VM 的 Distributed Cloud 專案。
VM_NAME 新 VM 的名稱,名稱只能包含英數字元和破折號,且不得超過 53 個字元。
VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
BOOT_DISK_SIZE 開機磁碟大小,例如 20Gi
這個值一律須大於或等於開機磁碟映像檔的 minimumDiskSize
BOOT_DISK_AUTO_DELETE truefalse,指出刪除 VM 執行個體時,是否要自動刪除開機磁碟。
MACHINE_TYPE 新 VM 的預先定義機器類型。如要選取可用的機器類型,請執行下列指令:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
SUBNET_NAME 自訂子網路的名稱。
IP_ADDRESS IP 位址。這必須在所選子網路範圍內。您只能在 ipAddresses 欄位中指定一個 IP 位址