建立並啟動 VM 執行個體

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

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

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

事前準備

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

取得 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 \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog
    
  2. 取得特定 GDC 提供映像檔的 minimumDiskSize

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n vm-system \
      get virtualmachineimage.virtualmachine.gdc.goog 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 \
      -n PROJECT \
      apply -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 \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    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 \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog
    

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

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      get virtualmachineimage.virtualmachine.gdc.goog 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 \
      -n PROJECT \
      apply -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 \
      -n PROJECT \
      get virtualmachine.virtualmachine.gdc.goog VM_NAME
    

    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 \
      -n PROJECT \
      apply -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 \
      -n PROJECT \
      apply -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 \
     -n PROJECT \
     apply -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 \
     -n PROJECT \
     apply  -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 位址