在單一用戶群節點上佈建 VM


這個頁面說明瞭如何在單一用戶群節點中佈建 VM。單一用戶群節點是一種實體伺服器,只會執行一項專案中的 VM。在單一用戶群節點上佈建 VM 之前,請先參閱單一用戶群節點總覽

如要在單一用戶群節點上佈建 VM,請完成下列步驟:

  1. 建立單一用戶群節點範本。單一用戶群節點範本會為單一用戶群節點群組中的所有單一用戶群節點指定統一屬性。

  2. 使用先前建立的單一用戶群節點範本,建立單一用戶群節點群組。

  3. 建立 VM,並在單一用戶群節點群組上佈建 VM。

事前準備

  • 在單一租戶節點上佈建 VM 前,請先檢查配額。視您預留的節點數量和大小而定,您可能需要申請額外配額
  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

      1. After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

      2. Set a default region and zone.
      3. REST

        如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。

          After installing the Google Cloud CLI, initialize it by running the following command:

          gcloud init

          If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

        詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

建立單一用戶群節點範本

單一租戶節點範本是區域資源,可指定單一租戶節點群組的屬性。您必須先建立節點範本,才能建立節點群組。不過,如果您使用 Google Cloud 控制台,就必須在建立單一用戶群節點群組時建立節點範本。

主控台

建立節點群組前,請先建立單一租戶節點範本。 使用 Google Cloud 控制台時,您必須在建立單一用戶群節點群組期間建立節點範本。新節點範本會在節點群組屬性中指定的相同區域建立。

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下「建立節點群組」

  3. 指定節點群組的「名稱」

  4. 指定要建立節點範本的「Region」(區域)。您可以使用節點範本,在這個區域的任何可用區建立節點群組。

  5. 指定「區域」,然後按一下「繼續」

  6. 在「節點範本」清單中,按一下「建立節點範本」,開始建立單一租戶節點範本。

  7. 指定節點範本的「Name」(名稱)

  8. 為要根據這個節點範本建立的節點群組中,指定每個單一用戶群節點的節點類型

  9. 選用:您也可以為節點範本指定下列屬性。

    • 新增本機 SSDGPU 加速器
    • 選取「啟用 CPU 超額配置」,即可控管節點中排程各 VM 的 CPU 超額配置程度

    • 新增節點相依性標籤。相依性標籤可讓您以邏輯方式將節點和節點群組分組,之後在佈建 VM 時,您可以在 VM 上指定相依性標籤,將 VM 排程到特定節點或節點群組。詳情請參閱「節點親和性和反親和性」。

  10. 按一下 [Create] (建立),完成建立節點範本。

  11. 選用:如要在不同區域新增單一租戶節點範本,請重複上述步驟。

如要查看節點範本,請按一下「單一用戶群節點」頁面中的「節點範本」

gcloud

使用 gcloud compute sole-tenancy node-templates create 指令建立節點範本:

gcloud compute sole-tenancy node-templates create TEMPLATE_NAME \
  --node-type=NODE_TYPE \
  [--region=REGION \]
  [--node-affinity-labels=AFFINITY_LABELS \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--disk type=local-ssd,count=DISK_COUNT,size=DISK_SIZE \]
  [--cpu-overcommit-type=CPU_OVERCOMMIT_TYPE]

更改下列內容:

  • TEMPLATE_NAME:新節點範本的名稱。

  • NODE_TYPE:根據此範本建立的單一用戶群節點節點類型。使用 gcloud compute sole-tenancy node-types list 指令,取得每個區域可用的節點類型清單。

  • REGION:要在其中建立節點範本的區域。 您可以使用這個範本,在這個區域的任何可用區建立節點群組。

  • AFFINITY_LABELS:相依性標籤的鍵和值,[KEY=VALUE,...]。相依性標籤可讓您以邏輯方式將節點和節點群組分組,之後在佈建 VM 時,您可以在 VM 上指定相依性標籤,將 VM 排程到特定節點或節點群組。詳情請參閱「節點親和性和反親和性」。

  • GPU_TYPE:根據這個節點範本建立的每個單一租戶節點所用的 GPU 類型。如要瞭解 GPU 的區域供應情形,請使用 gcloud compute accelerator-types list 指令,並選擇 n1g2 單一租戶節點類型可用的區域。視可用區的可用性而定,設定為下列其中一項:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT:要指定的 GPU 數量,取決於 GPU 類型。請根據下列表格,將值設為 GPU 類型指定的值:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_COUNT:SSD 磁碟數量。設為 1624

  • DISK_SIZE:本機 SSD 分區大小的選用值 (以 GB 為單位)。唯一支援的分區大小為 375,如果未設定這個值,預設值為 375

  • CPU_OVERCOMMIT_TYPE:VM 上 CPU 的超額配置類型。設為 enablednone

REST

使用 nodeTemplates.insert 方法建立節點範本:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates

{
  "name": "TEMPLATE_NAME",
  "nodeType": "NODE_TYPE",
  "nodeAffinityLabels": {
    "KEY": "VALUE",
    ...
  },
  "accelerators": [
    {
      "acceleratorType": "GPU_TYPE",
      "acceleratorCount": GPU_COUNT
    }
  ],
  "disks": [
    {
      "diskType": "local-ssd",
      "diskSizeGb": DISK_SIZE,
      "diskCount": DISK_COUNT
    }
  ],
  "cpuOvercommitType": CPU_OVERCOMMIT_TYPE
}

更改下列內容:

  • PROJECT_ID:專案 ID。

  • REGION:要在其中建立節點範本的區域。 您可以使用這個範本,在這個區域的任何可用區建立節點群組。

  • TEMPLATE_NAME:新節點範本的名稱。

  • NODE_TYPE:根據此範本建立的單一用戶群節點節點類型。使用 nodeTypes.list 方法,取得每個區域可用的節點類型清單。

  • KEYnodeAffinityLabels 值,指定以鍵/值組合表示的節點親和性標籤鍵部分。相依性標籤可讓您從邏輯上將節點和節點群組分組,之後在佈建 VM 時,您可以在 VM 上指定相依性標籤,以便在特定節點或節點群組上排定 VM。詳情請參閱「節點親和性和反親和性」。

  • VALUEnodeAffinityLabels 值,指定節點親和性標籤鍵/值組合的值部分。

  • GPU_TYPE:根據這個節點範本建立的每個單一租戶節點所用的 GPU 類型。如要瞭解 GPU 的區域供應情形,請使用 gcloud compute accelerator-types list 指令,並選擇 n1g2 單一租戶節點類型可用的區域。視可用區的可用性而定,設定為下列其中一項:

    • nvidia-l4
    • nvidia-tesla-p100
    • nvidia-tesla-p4
    • nvidia-tesla-t4
    • nvidia-tesla-v100
  • GPU_COUNT:根據這個節點範本建立的每個專屬租戶節點的 GPU 數量。請根據下表,將值設為 GPU 類型指定的值:

    GPU_TYPE GPU_COUNT
    nvidia-l4 8
    nvidia-tesla-p100 4
    nvidia-tesla-p4 4
    nvidia-tesla-t4 4
    nvidia-tesla-v100 8
  • DISK_SIZE:本機 SSD 分區大小的選用值 (以 GB 為單位)。唯一支援的分區大小為 375,如果未設定這個值,預設值為 375

  • DISK_COUNT:SSD 磁碟數量。設為 1624

  • CPU_OVERCOMMIT_TYPE:CPU 超額配置類型。設為 enablednoneCPU_OVERCOMMIT_TYPE_UNSPECIFIED

建立單一用戶群節點群組

使用先前建立的單一用戶群節點範本,建立單一用戶群節點群組。單一租戶節點群組會繼承單一租戶節點範本指定的屬性,並具有您必須指定的其他值。

主控台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下 [Create node group] (建立節點群組) 開始建立節點群組。

  3. 指定節點群組的「名稱」

  4. 指定節點群組的地區,即可顯示該地區的可用節點範本。

  5. 指定要在該區域的哪個「可用區」建立節點群組。

  6. 指定「節點範本」來建立節點群組,或按一下「建立節點範本」建立新的單一用戶群節點範本。所選節點範本會套用至節點群組。

  7. 節點群組自動調度程式選擇下列其中一種「Autoscaling mode」(自動調度資源模式)

    • 關閉:手動管理節點群組的大小。

    • 開啟:自動在節點群組中新增或移除節點。

    • 僅向外擴充:需要額外容量時,在節點群組中新增節點。

  8. 指定群組的「節點數」。如果啟用節點群組自動配置器,請指定節點群組的大小範圍。您稍後可以手動變更值。

  9. 在「Configure Maintenance Settings」部分,將單一租戶節點群組的「Maintenance policy」設為下列其中一個值。 維護政策可讓您設定節點群組中 VM 在主機維護事件期間的行為。詳情請參閱維護政策

    • 預設
    • 就地重新啟動
    • 在節點群組內遷移
  10. 您可以選擇定期維護期間進階維護控制項,處理單一租戶節點群組的維護作業,如下所示:

    • 維護期間:選取您希望單一用戶群節點群組中的節點,在該期間進行預定維護活動。

    • 選擇啟用單一用戶群的進階維護控制項: 單一用戶群的進階維護控制項可讓您控制單一用戶群節點群組的排定維護事件,並盡量減少維護作業造成的服務中斷。如要選擇啟用進階維護控制項,請將「選擇啟用單一用戶群的進階維護控制項」切換鈕設為「開啟」。如果選擇使用這個選項進行節點維護,系統會停用「維護期間」欄位,並按照進階維護控制項的設定執行維護作業。

    請注意,進階維護控制項僅支援「預設」維護政策。

  11. 在「Configure share settings」(設定共用設定) 中指定下列其中一個選項,設定共用設定:

    • 如要與貴機構中的所有專案共用節點群組,請選擇「與組織中的所有專案共用這個節點群組」
    • 如要與組織中的特定專案共用節點群組,請選擇「與組織中的指定專案共用這個節點群組」

    如不想共用節點群組,請選擇「不要與其他專案共用這個節點群組」。如要進一步瞭解如何共用節點群組,請參閱「共用單一用戶群節點群組」。

  12. 按一下「建立」,完成建立節點群組。

gcloud

執行 gcloud compute sole-tenancy node-groups create 指令,根據先前建立的節點範本建立節點群組:

gcloud compute sole-tenancy node-groups create GROUP_NAME \
  --node-template=TEMPLATE_NAME \
  --target-size=TARGET_SIZE \
  [--zone=ZONE \]
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--maintenance-window-start-time=START_TIME \]
  [--autoscaler-mode=AUTOSCALER_MODE: \
  --min-nodes=MIN_NODES \
  --max-nodes=MAX_NODES]

更改下列內容:

  • GROUP_NAME:新節點群組的名稱。

  • TEMPLATE_NAME:用於建立此群組的節點範本名稱。

  • TARGET_SIZE:要在群組中建立的節點數量。

  • ZONE:要在其中建立節點群組的可用區。這個地區必須與節點群組所依據的節點範本位於同一個地區。

  • MAINTENANCE_POLICY:節點群組的維護政策。詳情請參閱「維護政策」。必須是下列其中一個值:

    • default
    • restart-in-place
    • migrate-within-node-group

    或者,您也可以使用 --maintenance-interval 旗標,選擇啟用單一租戶節點群組的進階維護控制項。詳情請參閱「在單一租戶節點上啟用進階維護控制功能」。

  • START_TIME:這個節點群組中 VM 的維護時段開始時間 (格林威治標準時間)。設為下列其中一個值:00:0004:0008:0012:0016:0020:00。如果未設定,節點群組就不會有設定的維護期間。

  • AUTOSCALER_MODE:節點群組的自動調度器政策。必須是下列其中一項:

    • off:手動管理節點群組的大小。

    • on:自動在節點群組中新增或移除節點。

    • only-scale-out:需要額外容量時,請在節點群組中新增節點。

  • MIN_NODES:節點群組的最小大小。預設值為 0,且必須是小於或等於 MAX_NODES 的整數值。

  • MAX_NODES:節點群組的大小上限。 這個值必須小於或等於 100,且大於或等於 MIN_NODES。如果 AUTOSCALER_MODE 未設為 off,則為必要欄位。

REST

使用 nodeGroups.insert 方法,根據先前建立的節點範本建立節點群組:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups?initialNodeCount=TARGET_SIZE
{ "nodeTemplate": "regions/REGION/nodeTemplates/TEMPLATE_NAME", "name": "GROUP_NAME", "maintenancePolicy": MAINTENANCE_POLICY, "maintenanceWindow": { "startTime": "START_TIME" } "autoscalingPolicy": { "mode": AUTOSCALER_MODE, "minNodes": MIN_NODES, "maxNodes": MAX_NODES }, }

更改下列內容:

  • PROJECT_ID:專案 ID。

  • ZONE:要在其中建立節點群組的可用區。所在區域必須與您建立節點群組時所用的節點範本所在區域相同。

  • TARGET_SIZE:要在群組中建立的節點數量。

  • REGION:要在其中建立節點群組的區域。 您必須在所選區域中擁有節點範本。

  • TEMPLATE_NAME:用於建立此群組的節點範本名稱。

  • GROUP_NAME:新節點群組的名稱。

  • MAINTENANCE_POLICY:節點群組的維護政策。必須是下列其中一個值:

    • DEFAULT
    • RESTART_IN_PLACE
    • MIGRATE_WITHIN_NODE_GROUP

    或者,您也可以使用 maintenanceInterval 欄位,選擇啟用單一租戶節點群組的進階維護控制項。詳情請參閱「在單一租戶節點上啟用進階維護控制功能」。

  • START_TIME:這個節點群組中 VM 的維護時段開始時間 (格林威治標準時間)。設為下列其中一個值:00:0004:0008:0012:0016:0020:00。如果未設定,節點群組就不會有設定的維護期間。

  • AUTOSCALER_MODE:節點群組的自動調度器政策。必須是下列其中一個值:

    • OFF:手動管理節點群組的大小。

    • ON:自動在節點群組中新增或移除節點。

    • ONLY_SCALE_OUT:需要額外容量時,請在節點群組中新增節點。

  • MIN_NODES:節點群組的最小大小。預設值為 0,且必須是小於或等於 MAX_NODES 的整數值。

  • MAX_NODES:節點群組的大小上限。 這個值必須小於或等於 100,且大於或等於 MIN_NODES。如果 AUTOSCALER_MODE 未設為 OFF,則為必要欄位。

佈建單一用戶群 VM

根據先前建立的節點範本建立節點群組後,您就能在單一用戶群節點群組上佈建個別 VM。

如要在具有親和性標籤的特定節點或節點群組上佈建 VM,且這些標籤與您先前指派給節點範本的標籤相符,請按照建立 VM 執行個體的標準程序操作,並將親和性標籤指派給 VM。

或者,您也可以使用下列程序,從節點群組詳細資料頁面,在單一租戶節點上佈建 VM。Compute Engine 會根據您佈建 VM 的節點群組,指派親和性標籤

主控台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下「節點群組」

  3. 按一下要佈建 VM 執行個體的節點群組「名稱」,然後視需要按一下要佈建 VM 的特定單一租戶節點名稱,佈建 VM。

  4. 按一下「建立執行個體」,在該節點群組上佈建 VM 執行個體,並記下系統自動套用的「名稱」、「區域」和「可用區」值,然後視需要修改這些值。

  5. 指定「機器系列」、「系列」和「機型」,選取「機器設定」。選擇與單一租戶節點類型對應的系列

  6. 視需要修改「開機磁碟」、「防火牆」和其他設定。

  7. 按一下「單獨租用」,記下自動指派的節點相依性標籤,然後視需要使用「瀏覽」調整。

  8. 按一下「管理」,然後在「主機維護期間」中選擇下列其中一個選項:

    • 遷移 VM 執行個體 (建議做法):在維護事件期間,VM 會遷移至節點群組中的其他節點。

    • 終止:VM 在維護事件期間停止。

  9. 選擇下列其中一個「自動重新啟動」選項:

    • 啟用 (建議):如果 VM 因維護事件而停止,系統會自動重新啟動 VM。

    • 關閉:維護事件後不會自動重新啟動 VM。

  10. 按一下「建立」,完成建立單一租戶 VM。

gcloud

使用 gcloud compute instances create 指令在單一用戶群節點群組上佈建 VM:

gcloud compute instances create VM_NAME \
  [--zone=ZONE \]
  --image-family=IMAGE_FAMILY \
  --image-project=IMAGE_PROJECT \
  --node-group=GROUP_NAME \
  --machine-type=MACHINE_TYPE \
  [--maintenance-policy=MAINTENANCE_POLICY \]
  [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
  [--local-ssd interface=SSD_INTERFACE \]
  [--restart-on-failure]

--restart-on-failure 標記表示單一租戶 VM 是否會在停止後重新啟動。這個標記預設為啟用。如要停用,請使用 --no-restart-on-failure

更改下列內容:

  • VM_NAME:新的單一租戶 VM 名稱。

  • ZONE:要佈建單一用戶群 VM 的可用區。

  • IMAGE_FAMILY:用於建立 VM 的圖片映像檔系列

  • IMAGE_PROJECT:映像檔系列的映像檔專案

  • GROUP_NAME:要佈建 VM 的節點群組名稱。

  • MACHINE_TYPE:單一租戶 VM 的機器類型。使用 gcloud compute machine-types list 指令,取得專案可用的機器類型清單。

  • MAINTENANCE_POLICY:指定維護事件期間單一租戶 VM 的重新啟動行為。請設為下列其中一個值:

    • MIGRATE:在維護事件期間,VM 遷移至節點群組中的另一個節點。

    • TERMINATE:VM 在維護事件期間停止。

  • GPU_TYPE:GPU 類型。設定為建立節點範本時指定的其中一種加速器類型。

  • GPU_COUNT:要附加至這個 VM 的 GPU 總數 (由節點範本指定)。預設值為 1

  • SSD_INTERFACE:本機 SSD 介面類型。您只能為透過支援本機 SSD 的節點範本建立的執行個體設定這項屬性。如果您在建立執行個體時指定此項目,但節點範本不支援本機 SSD,執行個體建立作業就會失敗。如果開機磁碟映像檔驅動程式已針對 NVMe 最佳化,請設為 nvme,否則請設為 scsi。為每個本機 SSD 分區指定這個標記和對應值一次。

REST

使用 instances.insert 方法在單一用戶群節點群組上佈建 VM:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/VM_ZONE/instances
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "VM_NAME", "scheduling": { "onHostMaintenance": MAINTENANCE_POLICY, "automaticRestart": RESTART_ON_FAILURE, "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] }

更改下列內容:

  • PROJECT_ID:專案 ID。

  • VM_ZONE:要佈建單一租戶 VM 的可用區。

  • MACHINE_TYPE_ZONE:機器類型的可用區。

  • MACHINE_TYPE:單一租戶 VM 的機器類型。使用 machineTypes.list 方法,取得專案可用的機器類型清單。

  • VM_NAME:新的單一租戶 VM 名稱。

  • MAINTENANCE_POLICY:指定維護事件期間單一租戶 VM 的重新啟動行為。請設為下列其中一個值:

    • MIGRATE:在維護事件期間,VM 遷移至節點群組中的另一個節點。

    • TERMINATE:VM 在維護事件期間停止。

  • RESTART_ON_FAILURE:指出單一租戶 VM 是否會在停止後重新啟動。預設值為 true

  • GROUP_NAME:要佈建 VM 的節點群組名稱。

  • NETWORK:這個 VM 的網路資源網址。

  • REGION:包含這個 VM 子網路的區域。

  • SUBNETWORK:這個 VM 的子網路資源網址。

  • GPU_TYPE:GPU 類型。設定為建立節點範本時指定的其中一種加速器類型。

  • GPU_COUNT:節點範本指定的 GPU 總數,要附加至這個 VM。預設值為 1

  • IMAGE_PROJECT:圖片系列的圖片 專案。

  • IMAGE_FAMILY:用於建立 VM 的圖片映像檔系列

  • LOCAL_SSD_ZONE:本機 SSD 的可用區。

  • SSD_INTERFACE:本機 SSD 介面類型。如果開機磁碟映像檔驅動程式已針對 NVMe 最佳化,請設為 NVME,否則請設為 SCSI

佈建一組單一用戶群 VM

代管執行個體群組 (MIG) 可讓您佈建一組相同的單一租戶 VM。相依性標籤可讓您指定要佈建單一用戶群 VM 群組的單一用戶群節點或節點群組。

如果是地區性 MIG,您必須在每個地區性 MIG 的區域中建立節點群組,並在地區性 MIG 的執行個體範本中指定這些節點群組的節點親和性。

gcloud

  1. 使用 gcloud compute instance-templates create 指令,為要在單一租戶節點群組上建立的一組 VM 建立代管執行個體群組範本:

    gcloud compute instance-templates create INSTANCE_TEMPLATE \
      --machine-type=MACHINE_TYPE \
      --image-project=IMAGE_PROJECT \
      --image-family=IMAGE_FAMILY \
      --node-group=GROUP_NAME \
      [--accelerator type=GPU_TYPE,count=GPU_COUNT \]
      [--local-ssd interface=SSD_INTERFACE]
    

    更改下列內容:

    • INSTANCE_TEMPLATE:新執行個體範本的名稱。

    • MACHINE_TYPE:單一用戶群 VM 的機器類型。使用 gcloud compute machine-types list 指令,取得專案可用的機器類型清單。

    • IMAGE_PROJECT:映像檔系列的映像檔專案

    • IMAGE_FAMILY:用於建立 VM 的映像檔映像檔系列

    • GROUP_NAME:要佈建 VM 的節點群組名稱。或者,如要使用這個執行個體範本建立位於多個可用區的區域 MIG,請使用 --node-affinity-file 旗標,為區域 MIG 的節點群組指定值清單。

    • GPU_TYPE:GPU 類型。設定為建立節點範本時指定的其中一種加速器類型。

    • GPU_COUNT:節點範本指定的 GPU 總數,要附加至這個 VM。預設值為 1

    • SSD_INTERFACE:本機 SSD 介面類型。 如果開機磁碟映像檔驅動程式已針對 NVMe 最佳化,請設為 nvme,否則請設為 scsi。針對每個本機 SSD 分區,指定這個標記和對應的值一次。

  2. 使用 gcloud compute instance-groups managed create 指令,在單一租戶節點群組中建立代管執行個體群組:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
      --size=SIZE \
      --template=INSTANCE_TEMPLATE \
      --zone=ZONE
    

    更改下列內容:

    • INSTANCE_GROUP_NAME:這個執行個體群組的名稱。

    • SIZE:要納入這個執行個體群組的 VM 數量。您的節點群組必須具備足夠的資源,才能容納代管執行個體群組中的執行個體。使用代管執行個體群組自動調度器,自動管理代管執行個體群組的大小。

    • INSTANCE_TEMPLATE:用於建立這個 MIG 的執行個體範本名稱。範本必須具備一或多個節點親和性標籤,指向適當的節點群組。

    • ZONE:要在其中建立代管執行個體群組的可用區。如果是地區性 MIG,請將 --zone 旗標替換為 --region 旗標並指定地區,同時新增 --zones 旗標,指定節點群組所在的所有區域。

REST

  1. 使用 instanceTemplates.insert 方法,在單一租戶節點群組中建立代管執行個體群組範本:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/TEMPLATE_ZONE/instance-templates
    { "name": "INSTANCE_TEMPLATE", "properties": { "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "scheduling": { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "GROUP_NAME" ] } ] }, "networkInterfaces": [ { "network": "global/networks/NETWORK", "subnetwork": "regions/REGION/subnetworks/SUBNETWORK" } ], "guestAccelerators": [ { "acceleratorType": GPU_TYPE, "acceleratorCount": GPU_COUNT } ], "disks": [ { "boot": true, "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY" } }, { "type":"SCRATCH", "initializeParams":{ "diskType":"zones/LOCAL_SSD_ZONE/diskTypes/local-ssd" }, "autoDelete":true, "interface":"SSD_INTERFACE" } ] } }

    更改下列內容:

    • PROJECT_ID:專案 ID。

    • TEMPLATE_ZONE:要在其中建立執行個體範本的可用區。

    • INSTANCE_TEMPLATE:新執行個體範本的名稱。

    • MACHINE_TYPE_ZONE:機器類型的可用區。

    • MACHINE_TYPE:單一租戶 VM 的機器類型。使用 machineTypes.list 方法,取得專案可用的機器類型清單。

    • GROUP_NAME:要在其上佈建 VM 的節點群組名稱。如要使用這個執行個體範本建立存在於多個區域的區域 MIG,請指定與區域 MIG 區域位於相同區域的節點群組清單。

    • NETWORK:這個執行個體範本的網路資源網址。

    • REGION:包含這個執行個體範本子網路的區域。

    • SUBNETWORK:這個執行個體範本的子網路資源網址。

    • GPU_TYPE:GPU 類型。設定為建立節點範本時指定的其中一種加速器類型。

    • GPU_COUNT:要附加至這個 VM 的節點範本指定 GPU 總數。預設值為 1

    • IMAGE_PROJECT:映像檔系列的映像檔專案

    • IMAGE_FAMILY:用於建立 VM 的圖片映像檔系列

    • LOCAL_SSD_ZONE:本機 SSD 的可用區。

    • SSD_INTERFACE:本機 SSD 介面類型。如果開機磁碟映像檔驅動程式已針對 NVMe 最佳化,請設為 NVME,否則請設為 SCSI

  2. 使用 instanceGroupManagers.insert 方法,根據先前建立的執行個體範本,在單一租戶節點群組中建立 MIG。或者,如要建立區域性 MIG,請使用 regionInstanceGroupManagers.insert 方法,並指定所有節點群組的區域和可用區,如執行個體範本中所述。

    舉例來說,如要建立區域 MIG,請使用下列要求:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "baseInstanceName": "NAME_PREFIX",
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": SIZE,
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
    

    更改下列內容:

    • PROJECT_ID:專案 ID。

    • ZONE:要在其中建立代管執行個體群組的可用區。

    • NAME_PREFIX:代管執行個體群組中每個執行個體的前置字串名稱。

    • INSTANCE_GROUP_NAME:執行個體群組的名稱。

    • SIZE:要納入這個執行個體群組的 VM 數量。您的節點群組必須具備足夠的資源,才能容納代管執行個體群組中的執行個體。使用代管執行個體群組自動調度器,自動管理代管執行個體群組的大小。

    • INSTANCE_TEMPLATE:用於建立這個群組的執行個體範本網址。範本必須具備指向適當節點群組的節點親和性標籤

設定節點相依性標籤

節點相依性標籤可讓您在邏輯上將節點群組分組,並在特定節點群組組合中排程 VM。您也可以使用節點相依性標籤,在不同區域的節點群組上排程 VM,並將節點群組保留在邏輯群組中。以下程序是使用相依性標籤將 VM 與特定節點群組建立關聯的範例,該節點群組用於實際工作負載。本例說明如何排定單一 VM 的排程,但您也可以使用代管執行個體群組,排定一組 VM 的排程。

gcloud

  1. 使用 gcloud compute sole-tenancy node-templates create 指令,為生產環境工作負載建立一組親和性標籤,並使用這些標籤建立節點範本:

    gcloud compute sole-tenancy node-templates create prod-template \
      --node-type=n1-node-96-624 \
      --node-affinity-labels workload=frontend,environment=prod
    
  2. 使用 gcloud compute sole-tenancy node-templates describe 指令查看指派給節點範本的節點親和性標籤。

  3. 使用 gcloud compute sole-tenancy node-groups create 指令建立使用實際工作環境範本的節點群組:

    gcloud compute sole-tenancy node-groups create prod-group \
      --node-template=prod-template \
      --target-size=1
    
  4. 請針對實際工作環境 VM 建立 node-affinity-prod.json 檔案,指定實際工作環境 VM 的親和性。舉例來說,您可以建立檔案,指定 VM 只能在具有 workload=frontendenvironment=prod 相依性的節點上執行。使用 Cloud Shell 建立節點親和性檔案,或在您選擇的位置建立檔案。

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "IN",
        "values" : ["prod"]
      }
    ]
    
  5. 使用 node-affinity-prod.json 檔案搭配 gcloud compute instances create 指令,在具有相符相依性標籤的節點群組上排定 VM。

    gcloud compute instances create prod-vm \
      --node-affinity-file node-affinity-prod.json \
      --machine-type=n1-standard-2
    
  6. 使用 gcloud compute instances describe 指令,並檢查 scheduling 欄位,即可查看指派給 VM 的節點親和性。

設定節點反相依性標籤

節點相依性標籤可設為反相依性標籤,防止 VM 在特定節點上執行。舉例來說,您可以使用反相依性標籤,防止系統將用於開發目的的 VM 排定在與正式版 VM 相同的節點上。以下範例說明如何使用親和性標籤,防止 VM 在特定節點群組上執行。這個範例說明如何排定單一 VM 的排程,但您也可以使用代管執行個體群組,排定一組 VM 的排程。

gcloud

  1. 如要為開發 VM 指定親和性,請使用 Cloud Shell 建立 node-affinity-dev.json,或在您選擇的位置建立 node-affinity-dev.json。舉例來說,您可以建立檔案來設定 VM 在具有 workload=frontend 相依性的任何節點群組上執行,但前提是該節點群組不具有 environment=prod

    [
      {
        "key" : "workload",
        "operator" : "IN",
        "values" : ["frontend"]
      },
      {
        "key" : "environment",
        "operator" : "NOT_IN",
        "values" : ["prod"]
      }
    ]
    
  2. 使用 gcloud compute instances create 指令搭配 node-affinity-dev.json 檔案,建立開發 VM:

    gcloud compute instances create dev-vm \
      --node-affinity-file=node-affinity-dev.json \
      --machine-type=n1-standard-2
    
  3. 使用 gcloud compute instances describe 指令,並檢查 scheduling 欄位,即可查看指派給 VM 的節點反親和性。

刪除節點群組

如要刪除單一租戶節點群組,請先從節點群組中移除所有 VM。

主控台

  1. 前往「單一用戶群節點」頁面。

    前往單一用戶群節點

  2. 按一下要刪除的節點群組「名稱」

  3. 針對節點群組中的每個節點,按一下節點名稱,然後在節點詳細資料頁面中刪除個別 VM 執行個體,或按照標準程序刪除個別 VM。如要刪除代管執行個體群組中的 VM,請刪除代管執行個體群組

  4. 刪除節點群組所有節點上執行的所有 VM 執行個體後,請返回「單一租戶節點」頁面。

    前往「單一用戶群節點」

  5. 按一下「節點群組」

  6. 選取要刪除的節點群組名稱。

  7. 點選「刪除」。

gcloud

  1. 使用 gcloud compute sole-tenancy node-groups list-nodes 指令,列出節點群組中節點上執行的 VM 執行個體:

    gcloud compute sole-tenancy node-groups list-nodes GROUP_NAME \
      --zone=ZONE

    更改下列內容:

    • GROUP_NAME:節點群組名稱

    • ZONE:節點群組的可用區

  2. 如果節點群組上有任何 VM 正在執行,請按照刪除個別 VM 的程序,或刪除代管執行個體群組的程序操作。

  3. 刪除節點群組所有節點上執行的所有 VM 後,請使用 gcloud compute sole-tenancy node-groups delete 指令刪除節點群組:

    gcloud compute sole-tenancy node-groups delete GROUP_NAME \
        --zone=ZONE

    更改下列內容:

    • GROUP_NAME:節點群組的名稱

    • ZONE:節點群組的可用區

REST

  1. 使用 nodeGroups.listNodes 方法,列出節點群組中節點上執行的 VM 執行個體:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME/listNodes

    更改下列內容:

    • PROJECT_ID:專案 ID

    • ZONE:節點群組的可用區

    • GROUP_NAME:要列出 VM 的群組

  2. 如果節點群組上有任何 VM 正在執行,請按照刪除個別 VM 的程序,或刪除代管執行個體群組的程序操作。

  3. 刪除節點群組所有節點上執行的所有 VM 後,請使用 nodeGroups.delete 方法刪除節點群組:

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/GROUP_NAME
    

    更改下列內容:

    • PROJECT_ID:專案 ID

    • ZONE:節點群組的可用區

    • GROUP_NAME:要刪除的節點群組名稱

刪除節點範本

刪除使用範本的所有節點群組後,即可刪除節點範本。

主控台

  1. 前往 Google Cloud 控制台的「單一租戶節點」頁面。

    前往單一用戶群節點

  2. 按一下「節點範本」

  3. 選取未使用的節點範本名稱。

  4. 點選「刪除」。

gcloud

使用 gcloud compute sole-tenancy node-templates delete 指令刪除未使用的節點範本:

gcloud compute sole-tenancy node-templates delete TEMPLATE_NAME \
  --region=REGION

更改下列內容:

  • TEMPLATE_NAME:要刪除的節點範本名稱

  • REGION:節點範本的區域

REST

使用 compute.nodeTemplates.delete 方法刪除未使用的節點範本:

 DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/nodeTemplates/TEMPLATE_NAME
 

更改下列內容:

  • PROJECT_ID:您的專案 ID

  • REGION:包含節點範本的 Google Cloud 區域

  • TEMPLATE_NAME:要刪除的節點範本名稱

後續步驟