如要將單一租戶 VM 移至其他節點或節點群組,可以手動啟動即時遷移。您也可以手動啟動即時遷移作業,將多租戶 VM 移至單一租戶。如要瞭解如何將 VM 移出單一租戶,請參閱「將 VM 移出單一租戶」。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,您可以選取下列其中一個選項,向 Compute Engine 進行驗證:
請根據您打算如何使用本頁範例,選取對應的分頁標籤:
gcloud
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init若您採用的是外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
- 設定預設區域和可用區。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
安裝 Google Cloud CLI。
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
詳情請參閱 Google Cloud 驗證說明文件中的「使用 REST 進行驗證」。
API 頻率限制
手動即時遷移要求會歸類在「查詢」API 速率限制。
手動將 VM 即時遷移至單一租戶或單一租戶內
如要手動將 VM 即時遷移至單一租戶或單一租戶內,請使用 gcloud CLI 或 REST。
如果 VM 的目的地是節點群組,Compute Engine 會選取群組中具備足夠空間且閒置容量最少的節點。
使用共用單一租戶節點群組時,無法在專案之間執行即時遷移。
這項工作需要的權限
如要執行這項工作,您必須具備下列權限:
-
VM 上的
compute.instances.update權限。
gcloud
如要手動將 VM 即時遷移至單一租戶節點或單一租戶節點內,請使用下列 gcloud compute instances update 指令:
gcloud compute instances update VM_NAME \
( --node=NODE \
--node-group=NODE_GROUP \
--node-affinity-file=NODE_AFFINITY_FILE )
更改下列內容:
VM_NAME:要更新節點親和性標籤的 VM 名稱。
請替換下列其中一項:
NODE:要將 VM 即時遷移至的節點名稱。NODE_GROUP:要將 VM 即時遷移至的節點群組名稱。NODE_AFFINITY_FILE:JSON 檔案的名稱,其中包含可排定這個 VM 的節點設定。詳情請參閱「設定節點親和性標籤」。
REST
如要手動將 VM 即時遷移至單一租戶或單一租戶內,請使用下列 instances.update 方法:
PUT https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME
{
...
"scheduling": {
"nodeAffinities": [
{
"key": "NODE_AFFINITY_LABEL_KEY",
"operator": "IN",
"values": [
"NODE_AFFINITY_LABEL_VALUE"
]
}
]
}
...
}
更改下列內容:
PROJECT_ID:要更新節點親和性標籤的 VM 所在專案 ID。ZONE:要更新節點親和性標籤的 VM 所在區域。VM_NAME:要更新節點親和性標籤的 VM 名稱。NODE_AFFINITY_LABEL_KEY:下列其中一個字串,用於指定是否要將 VM 即時遷移至節點群組或節點:VM 目的地 要指定的鍵 節點群組 compute.googleapis.com/node-group-name節點 compute.googleapis.com/node-nameNODE_AFFINITY_LABEL_VALUE:要將 VM 即時遷移至的節點群組或節點名稱。