建立並啟動 VM 執行個體

使用開機磁碟映像檔或開機磁碟快照,建立虛擬機器 (VM) 執行個體。您可以建立具有一或多個磁碟的 VM,或稍後新增磁碟。Google Distributed Cloud (GDC) 實體隔離方案會在您建立 VM 執行個體時自動啟動。

您也可以在建立 VM 執行個體前後,新增開機指令碼。

本文件適用於平台管理員或應用程式操作員群組中的開發人員,他們會在 GDC 環境中建立及管理 VM。詳情請參閱「GDC 實體隔離方案說明文件的目標對象」。

事前準備

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

取得 kubeconfig 檔案路徑

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

  1. 如果您沒有 Management API 伺服器的 kubeconfig 檔案,請登入並產生該檔案。

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

VM 命名規範

建立 VM 執行個體時,請參考下列命名規範:

  • VM 名稱只能使用英數字元和破折號。
  • 如果使用英數字元和連字號以外的符號 (例如句號),則無法連線至 VM。
  • VM 名稱長度不得超過 53 個半形字元。

要求 IAM 角色

如要取得建立及啟動 VM 執行個體所需的權限,請要求 IAM 專案管理員授予您下列專案角色:

  • 虛擬機器專案管理員 (project-vm-admin):建立、修改、列出及刪除專案命名空間中的 VM。

  • 專案檢視者 (project-viewer):查看專案命名空間中的所有資源。

  • 虛擬機器映像檔專案管理員 (project-vm-image-admin):在專案命名空間中,建立、列出及刪除 GDC 提供的自訂 VM 映像檔。

所有 VM 角色都必須繫結至 VM 所在專案的命名空間。按照步驟驗證存取權。

依據映像檔建立 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。

控制台

  1. 在導覽選單中,依序選取「Virtual Machines」>「Instances」。
  2. 點選「建立執行個體」。
  3. 在「Name」(名稱) 欄位中,指定 VM 的名稱。
  4. 選取要建立 VM 的可用區。
  5. 選用:按一下「新增標籤」,為 VM 指派標籤。這有助於管理 VM 執行個體。
  6. 選取 VM 要使用的機器設定:
    1. 一般用途:請確認機型符合工作負載需求。
    2. 自訂:設定機器的核心數量和記憶體需求。
  7. 點選「下一步」。
  8. 如要啟用外部存取權,請選取「允許外部存取要求」。
  9. 點選「下一步」。
  10. 在「Boot disk」(開機磁碟) 區段中,GDC 會自動新增具有預設設定的開機磁碟。您可以保留這項設定,或按一下「Change」(變更) 來修改預設設定:
    1. 在「磁碟詳細資料」部分,修改「磁碟名稱」。
    2. 在「Disk settings」(磁碟設定) 區段中,修改「Size」(大小) 值。
    3. 在「Source image」(來源圖片) 部分,按一下「Image name」(圖片名稱) 選單,然後選取其中一張圖片。
    4. 勾選或取消勾選「啟用安全啟動功能」。如果使用 Windows 映像檔,則必須啟用安全啟動功能。
    5. 選取「Keep disk」(保留磁碟) 或「Delete disk」(刪除磁碟),設定磁碟刪除規則。
    6. 按一下 [儲存]。
  11. 按一下「建立」,建立 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 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    gdcloud compute machine-types list
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20GB。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    NO_BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時保留開機磁碟,或指定 false,自動刪除開機磁碟。

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_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20Gi。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時自動刪除開機磁碟,指定 false 則可保留開機磁碟。
  2. 確認 VM 建立成功,並等待 VM 顯示 Running 狀態。Running 狀態不代表 OS 已完全就緒且可供存取。

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

    將 VM_NAME 和 PROJECT 替換為 VM 的名稱和專案。

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

使用自訂映像檔建立 VM 執行個體

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

控制台

  1. 在導覽選單中,依序選取「Virtual Machines」>「Instances」。
  2. 點選「建立執行個體」。
  3. 在「Name」(名稱) 欄位中,指定 VM 的名稱。
  4. 選取要建立 VM 的可用區。
  5. 選用:按一下「新增標籤」,為 VM 指派標籤。這有助於管理 VM 執行個體。
  6. 選取 VM 要使用的機器設定:
    1. 一般用途:請確認機型符合工作負載需求。
    2. 自訂:設定機器的核心數量和記憶體需求。
  7. 點選「下一步」。
  8. 勾選「Allow external access」(允許外部存取) 核取方塊,為 VM 執行個體啟用外部存取權。
  9. 點選「下一步」。
  10. 在「Boot disk」(開機磁碟) 區段中,GDC 會自動新增具有預設設定的開機磁碟。您可以保留這項設定,或按一下「Change」(變更) 修改預設設定:

    1. 在「磁碟詳細資料」部分,修改「磁碟名稱」。
    2. 在「Disk settings」(磁碟設定) 區段中,修改「Size」(大小) 值。
    3. 在「Source image」(來源映像檔) 區段中,按一下「Image name」(映像檔名稱) 選單,然後選取其中一個含有「Created by customer」(由客戶建立) 子文字的映像檔。
    4. 勾選或取消勾選「啟用安全啟動功能」。如果使用 Windows 映像檔,則必須啟用安全啟動功能。

    5. 選取「Keep disk」(保留磁碟) 或「Delete disk」(刪除磁碟),設定磁碟刪除規則。

    6. 按一下 [儲存]。

  11. 按一下「建立」,建立 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 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    gdcloud compute machine-types list
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20GB。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    NO_BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時保留開機磁碟,或指定 false,自動刪除開機磁碟。

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 檔案。
    PROJECT 映像檔的專案。
    BOOT_DISK_IMAGE_NAME 自訂映像檔的名稱。
  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_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20Gi。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時自動刪除開機磁碟,指定 false 則可保留開機磁碟。
  3. 確認 VM 已成功建立,並等待 VM 顯示處於 Running 狀態。處於 Running 狀態並不代表 OS 已完全準備就緒且可供存取。

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

    將 VM_NAME 和 PROJECT 替換為 VM 的名稱和專案。

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

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

控制台

  1. 在導覽選單中,依序選取「Virtual Machines」>「Instances」。
  2. 點選「建立執行個體」。
  3. 在「Name」(名稱) 欄位中,指定 VM 的名稱。
  4. 選取要建立 VM 的可用區。
  5. 選用:按一下「新增標籤」,為 VM 指派標籤。這有助於管理 VM 執行個體。
  6. 選取 VM 要使用的機器設定:
    1. 一般用途:請確認機型符合工作負載需求。
    2. 自訂:設定機器的核心數量和記憶體需求。
  7. 點選「下一步」。
  8. 勾選「Allow external access」(允許外部存取) 核取方塊,為 VM 執行個體啟用外部存取權。
  9. 點選「下一步」。
  10. 在「Boot disk」(開機磁碟) 區段中,GDC 會自動新增具有預設設定的開機磁碟。您可以保留這項設定,或按一下「Change」(變更) 來修改預設設定:
    1. 在「磁碟詳細資料」部分,修改「磁碟名稱」。
    2. 在「Disk settings」(磁碟設定) 區段中,修改「Size」(大小) 值。
    3. 在「Source image」(來源圖片) 部分,按一下「Image name」(圖片名稱) 選單,然後選取其中一張圖片。
    4. 勾選或取消勾選「啟用安全啟動功能」。如果使用 Windows 映像檔,則必須啟用安全啟動功能。
    5. 選取「Keep disk」(保留磁碟) 或「Delete disk」(刪除磁碟),設定磁碟刪除規則。
    6. 按一下 [儲存]。
  11. 如要為 VM 執行個體新增更多磁碟,請選取「新增磁碟」:
    1. 為 VM 磁碟命名。
    2. 設定磁碟大小和連接設定。
    3. 按一下 [儲存]。
  12. 按一下「建立」,建立 VM 執行個體。

gdcloud

  1. 從映像檔建立開機磁碟:

    gdcloud compute disks create VM_BOOT_DISK_NAME \
      --size=BOOT_DISK_SIZE \
      --image=BOOT_DISK_IMAGE_NAME \
      --image-project=BOOT_DISK_IMAGE_NAMESPACE
    
  2. 透過映像檔建立額外的非開機磁碟:

    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
    
  3. 建立空白非開機磁碟:

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

    gdcloud compute instances create VM_NAME \
      --machine-type=MACHINE_TYPE \
      --disk=name=VM_BOOT_DISK_NAME,boot=true \
      --no-boot-disk-auto-delete=NO_BOOT_DISK_AUTO_DELETE \
      --disk=name=NON_BOOT_DISK_FROM_IMAGE \
      --disk=name=NON_BOOT_BLANK_DISK
    

    更改下列內容:

    變數定義
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20GB。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_IMAGE_NAMESPACE 新 VM 開機磁碟所用映像檔的命名空間。如果是 GDC 提供的映像檔,請使用 vm-system;如果是自訂映像檔,請將欄位留空。
    NON_BOOT_DISK_FROM_IMAGE 您從映像檔建立的其他非開機磁碟名稱。
    NON_BOOT_DISK_SIZE 額外非開機磁碟的大小,例如 20GB。
    NON_BOOT_DISK_IMAGE_NAME 非開機磁碟要使用的映像檔名稱。
    NON_BOOT_DISK_IMAGE_NAMESPACE 非開機磁碟所用映像檔的命名空間。如果是 GDC 提供的映像檔,請使用 vm-system;如果是自訂映像檔,請將欄位留空。
    NON_BOOT_BLANK_DISK 額外空白非開機磁碟的名稱。
    NON_BOOT_BLANK_DISK_SIZE 額外空白非開機磁碟的大小,例如 20GB。
    VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    gdcloud compute machine-types list
    NO_BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時保留開機磁碟;指定 false,則會自動刪除開機磁碟。

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 專案。
    NON_BOOT_DISK_FROM_IMAGE 您從映像檔建立的其他非開機磁碟名稱。
    NON_BOOT_DISK_IMAGE_NAME 非開機磁碟要使用的映像檔名稱。
    NON_BOOT_DISK_IMAGE_NAMESPACE 非開機磁碟所用映像檔的命名空間。如要使用 GDC 提供的映像檔,請使用 vm-system;如要使用自訂映像檔,請留空。
    NON_BOOT_DISK_SIZE 您從映像檔建立的額外非開機磁碟大小,例如 20Gi。
    NON_BOOT_BLANK_DISK 額外空白非開機磁碟的名稱。
    NON_BOOT_BLANK_DISK_SIZE 額外空白非開機磁碟的大小,例如 20Gi。
    VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
    BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
    BOOT_DISK_IMAGE_NAMESPACE 新 VM 開機磁碟所用映像檔的命名空間。如要使用 GDC 提供的映像檔,請使用命名空間 vm-system;如要使用自訂映像檔,請留空。
    BOOT_DISK_SIZE 開機磁碟的大小,例如 20Gi。
    這個值必須一律大於或等於開機磁碟映像檔的 minimumDiskSize。
    VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
    MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
    kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
    BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時自動刪除開機磁碟,指定 false 則可保留開機磁碟。

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

透過快照或備份建立 VM

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

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

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

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

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

根據預設,您可以建立 GDC VM,不需指定網路。這類 VM 會連結至預設虛擬私有雲,並從預設子網路動態指派 IP 位址。如要使用預設設定建立 VM,請參閱「使用 GDC 提供的映像檔建立 VM」。

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

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

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

如要進一步瞭解如何建立子網路,請參閱「GDC 中的子網路和 IP 位址」。

本節說明如何建立具有動態指派 IP 位址或靜態 IP 位址的 VM。

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

建立 VM,並從特定CIDR動態指派 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:
       - network: NETWORK_NAME
         subnet: SUBNET_NAME
   EOF

請替換下列變數:

變數定義
MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
PROJECT 要建立 VM 的 GDC 專案。
VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
BOOT_DISK_SIZE 開機磁碟的大小,例如 20Gi。
這個值一律必須大於或等於開機磁碟映像檔的 minimumDiskSize。
VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
MACHINE_TYPE 新 VM 的預先定義機型。選取可用的機型:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時自動刪除開機磁碟,指定 false 則可保留開機磁碟。
NETWORK_NAME 虛擬私有雲網路的名稱,例如 default。
SUBNET_NAME 自訂子網路的名稱。

建立 VM,並使用子網路的靜態 IP 位址

建立 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:
       - network: NETWORK_NAME
         subnet: SUBNET_NAME
         ipAddresses:
         - address: IP_ADDRESS
   EOF

請替換下列變數:

變數定義
MANAGEMENT_API_SERVER 管理 API 伺服器 kubeconfig 檔案。
PROJECT 要建立 VM 的 GDC 專案。
VM_BOOT_DISK_NAME 新 VM 開機磁碟的名稱。
BOOT_DISK_IMAGE_NAME 新 VM 開機磁碟要使用的映像檔名稱。
BOOT_DISK_SIZE 開機磁碟的大小,例如 20Gi。
這個值一律必須大於或等於開機磁碟映像檔的 minimumDiskSize。
VM_NAME 新 VM 的名稱,名稱最多可包含 53 個英數字元和連字號。
MACHINE_TYPE 新 VM 的預先定義機型。如要選取可用的機型,請執行下列指令:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachinetype.virtualmachine.gdc.goog --namespace vm-system
BOOT_DISK_AUTO_DELETE 指定 true,即可在刪除 VM 執行個體時自動刪除開機磁碟,指定 false 則可保留開機磁碟。
NETWORK_NAME 虛擬私有雲網路的名稱,例如 default。
SUBNET_NAME 自訂子網路的名稱。
IP_ADDRESS IP 位址。必須位於所選子網路範圍內。「ipAddresses」欄位只能指定一個 IP 位址。

後續步驟