本頁說明如何修改 VM 的節點相依性標籤,以更新 VM 的租用戶。
根據預設,Compute Engine 會在多租戶主機上部署 VM。在多租戶主機上,VM 通常會與其他專案和客戶的 VM 共用主機資源。將 VM 移至單一用戶群節點後,專案將擁有單一用戶群節點硬體的專屬存取權和完全控制權。您是該節點的唯一租用戶,因此您的工作負載會與其他專案的工作負載和 VM 隔離。
您可以修改節點相依性標籤,以以下方式移動 VM:
- 從多用戶群主機轉換為單一用戶群節點群組或節點
- 從單一用戶群節點群組或節點轉換為多用戶群主機
- 從一個單一租戶節點移至另一個單一租戶節點或節點群組
- 從單一用戶群節點群組移至另一個單一用戶群節點群組或節點
暫時將工作負載遷移至單一用戶群
由於工作負載的需求會隨時間而變動 (例如,需要定期進行額外隔離來檢查效能,或是法規遵循規定有所變更),因此您可能需要將特定工作負載暫時移至單一用戶群節點。之後,當您不再需要單租戶時,請將 VM 重新部署至多租戶主機。修改 VM 的租用戶身分時,Compute Engine 會保留 VM 的設定。
重新平衡單一用戶群工作負載
除了在單一租用戶節點和節點群組之間移動 VM 外,您還可以在節點和節點群組之間移動 VM,這有助於您整合節點並重新平衡工作負載。遷移 VM 需要重新啟動,因此請根據工作負載的可用性需求規劃 VM 遷移作業。
限制
- 當您移動在單一用戶群節點上執行的 VM 時,VM 可能會在另一個節點上重新啟動。如果 VM 的單一租用權是透過節點群組名稱或使用
node-group-name
預設相依性標籤指定,VM 便可在節點群組中的任何節點上重新啟動。如果使用相依性或反相依性自訂相依性標籤指定 VM 的單一租用權,VM 可能會在該區域中任何節點群組的任何節點上重新啟動。
事前準備
-
如果尚未設定,請先設定驗證機制。「驗證」是指驗證身分,以便存取 Google Cloud 服務和 API 的程序。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,以便對 Compute Engine 進行驗證:
Select the tab for how you plan to use the samples on this page:
gcloud
-
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.
- Set a default region and zone.
停止 VM。
gcloud compute instances stop VM_NAME
將
VM_NAME
替換為要停止的 VM 名稱。指定要將 VM 移至的節點群組,以更新租用戶。
gcloud compute instances set-scheduling VM_NAME \ --node-group=NODE_GROUP_NAME
更改下列內容:
要移至特定節點群組的 VM
VM_NAME
名稱NODE_GROUP_NAME
要將 VM 移至的節點群組名稱
或者,您也可以使用節點名稱或親和力標籤,將 VM 移至單租戶節點。詳情請參閱
gcloud compute instances set-scheduling
指令。啟動 VM。
gcloud compute instances start VM_NAME
將
VM_NAME
替換為要啟動在節點群組的 VM 名稱,該名稱先前已由親和性標籤檔案內容指定。停止 VM。如要進一步瞭解這個指令,請參閱 instances.stop。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
更改下列內容:
PROJECT_ID
:包含要停止的 VM 的專案 IDZONE
區域,其中包含專案VM_NAME
要停止的 VM 名稱
指定要將 VM 移至的節點群組,以更新租用戶。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [ { "key": "compute.googleapis.com/node-group-name", "operator": "IN", "values": [ "NODE_GROUP_NAME" ] } ] }
更改下列內容:
PROJECT_ID
包含要移動的 VM 的專案 IDZONE
區域,其中包含專案要移至特定節點群組的 VM
VM_NAME
名稱NODE_GROUP_NAME
要將 VM 移至的節點群組名稱
或者,您也可以使用節點名稱或親和力標籤,將 VM 移至單租戶節點。詳情請參閱
instances.setScheduling
方法。啟動 VM。如要進一步瞭解這個指令,請參閱
instances.start
。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
更改下列內容:
PROJECT_ID
包含要啟動的 VM 的專案 IDZONE
區域,其中包含專案VM_NAME
要啟動的 VM 名稱
停止 VM。
gcloud compute instances stop VM_NAME
將
VM_NAME
替換為要停止的 VM 名稱。清除 VM 中的節點相依性,以便將 VM 移至多租戶主機。
gcloud compute instances set-scheduling VM_NAME --clear-node-affinities
將
VM_NAME
替換為要移除節點相依性 的 VM 名稱。在多租戶主機上啟動 VM。
gcloud compute instances start VM_NAME
將
VM_NAME
替換為先前清除節點關聯性的 VM 名稱。停止 VM。如要進一步瞭解這個指令,請參閱
instances.stop
。POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/stop
更改下列內容:
PROJECT_ID
要停止的 VM 所屬專案 IDZONE
區域,其中包含專案VM_NAME
要停止的 VM 名稱
清除 VM 的節點相依性,將 VM 移至多租戶主機。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/setScheduling { "nodeAffinities": [] }
更改下列內容:
PROJECT_ID
包含要移動的 VM 的專案 IDZONE
區域,其中包含專案VM_NAME
要清除節點相依性的 VM 名稱
在多租戶主機上啟動 VM。如要進一步瞭解這個指令,請參閱 instances.start。
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/start
更改下列內容:
PROJECT_ID
包含要啟動的 VM 的專案 IDZONE
區域,其中包含專案VM_NAME
要啟動的 VM 名稱
- 將 VM 移至單一用戶群節點前,請先參閱單一用戶群節點的定價。
- 請參閱「自備授權」。
- 請參閱 Microsoft 授權常見問題。
- 瞭解如何將含有現有授權的圖片匯入Google Cloud。
- 瞭解如何自動調度單一用戶群節點群組。
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 驗證說明文件中的「驗證以使用 REST」。
將 VM 移至單一用戶群
將 VM 從另一個節點或節點群組,或從多租戶主機移至特定單一用戶群節點或節點群組,藉此更新租用戶群。
gcloud
REST
將 VM 移出單一用戶群
如果 VM 不再需要專用硬體 (例如,在發生需要將 VM 與其他 VM 隔離的事件後),請將 VM 從單一用戶群節點移至多租戶主機。
gcloud
REST
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-06-16 (世界標準時間)。
-