本文說明如何為虛擬機器 (VM) 指定時間限制,自動終止代管執行個體群組 (MIG) 中的 VM。本文也說明 MIG 中 VM 的時間限制運作方式。
您可以為 MIG 中的 VM 指定時間限制,藉此最佳化臨時工作負載。VM 達到時間限制後,MIG 會自動終止 (刪除) 該 VM。設定時間限制,限制 MIG 中的 VM 執行時間,有助於盡量減少費用並釋出配額。
如要瞭解如何為獨立 VM 指定時間限制,請參閱「限制 VM 的執行時間」。如要讓 MIG 根據工作負載自動新增或刪除 VM,請參閱「自動調度執行個體群組資源」。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證可確認您的身分,以便存取 Google Cloud 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列其中一個選項,向 Compute Engine 進行驗證:
選取這個頁面上的分頁,瞭解如何使用範例:
控制台
使用 Google Cloud 控制台存取 Google Cloud 服務和 API 時,無須設定驗證。
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 進行驗證」。
限制 MIG 中 VM 的執行時間
您可以在用於 MIG 的執行個體範本中指定時間限制,藉此限制 MIG 中 VM 的執行時間。當 MIG 根據範本建立 VM 時,時間限制會套用至每個 VM。
您可以指定下列其中一種時間限制:
- 跑步時間限制
- 終止時間限制
如要為 MIG 中的 VM 指定時間限制,請按照下列步驟操作:
限制
您必須遵守限制獨立 VM 執行時間的規定。
建立執行個體範本,為 MIG 中的 VM 指定時間限制時,須遵守下列限制:
您只能將終止動作設為
DELETE。只有在執行個體範本指定標準或彈性啟動佈建模式時,才能使用該範本。
如果 MIG 同時指定下列兩項設定,您就無法限制區域性 MIG 中 VM 的執行時間:
EVEN目標分配型態
建立含有 VM 執行時間的執行個體範本
如要讓 MIG 中的 VM 在執行一段時間後自動終止,請在執行個體範本中設定最長執行時間 (maxRunDuration)。
控制台
前往 Google Cloud 控制台的「Instance templates」(執行個體範本) 頁面。
點選「建立執行個體範本」。
按照以下方式選取「Location」(位置):
- 如要跨區域使用執行個體範本,請選擇「Global」(全域)。
- 如要減少跨區域依附元件,請選擇「Regional」(區域)。
如果您選擇了「Regional」(區域),請選取您要建立執行個體範本的「區域」。
在「可用性政策」部分,展開「VM 佈建模型進階設定」。
選取「設定 VM 的時間限制」核取方塊。
在「時間限制類型」欄位中,選取「以小時為單位」 (預設),將時間限制指定為一段時間。在下一個欄位中,輸入時數。
在「On VM termination」(在 VM 終止時) 清單中,選取「Delete」(刪除)。
請針對其他欄位,接受預設值或視需要進行修改。
點選「建立」。
gcloud
使用 instance-templates create 指令。
如要在特定時間後自動刪除 VM,請加入 --max-run-duration 旗標,並將 --instance-termination-action 旗標設為 DELETE,如下所示:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--max-run-duration=DURATION \
--instance-termination-action=DELETE
更改下列內容:
INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。DURATION:您希望 VM 執行的時間長度。 MIG 會在指定時間過後自動刪除 VM。將時間長度格式化為天數、時數、分鐘數和秒數,並分別加上
d、h、m和s。舉例來說,如要指定 30 分鐘的時長,請輸入30m;如要指定 1 天 2 小時 3 分鐘 4 秒的時長,請輸入1d2h3m4s。最短時間為 30 秒 (30s),最長為 120 天 (120d)。
Terraform
如要使用 Terraform 建立執行個體範本,請使用 google_compute_instance_template 資源。如要建立執行個體範本,在特定時間長度後自動刪除 VM,請務必加入 max_run_duration 引數,並將 instance_termination_action 引數設為 DELETE。
REST
請使用 instanceTemplates.insert 方法。如要在特定時間後自動刪除 VM,請加入 maxRunDuration 欄位,並將 instanceTerminationAction 欄位設為 DELETE,如下所示:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default",
"accessConfigs": [
{
"name": "external-IP",
"type": "ONE_TO_ONE_NAT"
}
]
}
],
"disks": [
{
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"initializeParams":
{
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
]
"scheduling": {
"maxRunDuration":
{
"seconds": DURATION
},
"instanceTerminationAction": "DELETE"
}
}
}
更改下列內容:
PROJECT_ID:您要在其中建立執行個體範本的專案 ID。INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。MACHINE_TYPE:群組中 VM 的預先定義或自訂機器類型。IMAGE_PROJECT:包含圖片的圖片專案,例如debian-cloud。IMAGE或IMAGE_FAMILY:指定下列其中一個值:IMAGE:作業系統映像檔的特定版本,例如debian-10-buster-v20200309。IMAGE_FAMILY:映像檔系列。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定family/debian-10,系統會使用 Debian 10 映像檔系列中的最新版本。
DURATION:您希望 VM 執行的時間長度。 MIG 會在指定時間過後自動刪除 VM。將時間長度格式化為天數、時數、分鐘數和秒數,並分別加上
d、h、m和s。舉例來說,如要指定 30 分鐘的時長,請輸入30m;如要指定 1 天 2 小時 3 分鐘 4 秒的時長,請輸入1d2h3m4s。最短時間為 30 秒 (30s),最長為 120 天 (120d)。
建立含有 VM 終止時間的執行個體範本
如要在特定時間自動終止 MIG 中的 VM,請在執行個體範本中設定終止時間 (terminationTime)。您可以設定日期和時間,讓 MIG 終止 VM。
控制台
前往 Google Cloud 控制台的「Instance templates」(執行個體範本) 頁面。
點選「建立執行個體範本」。
按照以下方式選取「Location」(位置):
- 如要跨區域使用執行個體範本,請選擇「Global」(全域)。
- 如要減少跨區域依附元件,請選擇「Regional」(區域)。
如果您選擇了「Regional」(區域),請選取您要建立執行個體範本的「區域」。
在「可用性政策」部分,展開「VM 佈建模型進階設定」。
在「時間限制類型」欄位中,選取「依日期」,將時間限制指定為時間和日期。在下一個欄位中,按一下「選取日期和時間」,然後選取自動終止的日期、時間和時區。
在「On VM termination」(在 VM 終止時) 清單中,選取「Delete」(刪除)。
請針對其他欄位,接受預設值或視需要進行修改。
點選「建立」。
gcloud
使用 instance-templates create 指令。
如要在特定時間自動刪除 VM,請加入 --termination-time 旗標,並將 --instance-termination-action 旗標設為 DELETE,如下所示:
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--termination-time=TIME \
--instance-termination-action=DELETE
更改下列內容:
INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。TIME:您希望系統自動終止 VM 的時間。指定時間必須在至少 30 秒後,且不得超過 120 天。將時間格式設為 RFC 3339 時間戳記:YYYY-MM-DDTHH:MM:SSOFFSET
更改下列內容:
YYYY-MM-DD:日期格式為 4 位數年份、2 位數月份和 2 位數日期,並以半形連字號分隔。HH:MM:SS:時間格式為 2 位數的小時 (採用 24 小時制)、2 位數的分鐘和 2 位數的秒數,並以半形冒號分隔。OFFSET:時區格式為世界標準時間 (UTC) 的偏移量。舉例來說,如要使用太平洋標準時間 (PST),這比世界標準時間 (UTC) 早 8 小時,請指定-08:00。如要使用零時差 (世界標準時間+0),請指定Z。
REST
請使用 instanceTemplates.insert 方法。如要在特定時間自動刪除 VM,請加入 terminationTime 欄位,並將 instanceTerminationAction 欄位設為 DELETE,如下所示:
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default",
"accessConfigs": [
{
"name": "external-IP",
"type": "ONE_TO_ONE_NAT"
}
]
}
],
"disks": [
{
"type": "PERSISTENT",
"boot": true,
"mode": "READ_WRITE",
"initializeParams":
{
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
]
"scheduling": {
"terminationTime": TIME,
"instanceTerminationAction": "DELETE"
}
}
}
更改下列內容:
PROJECT_ID:您要在其中建立執行個體範本的專案 ID。INSTANCE_TEMPLATE_NAME:執行個體範本的名稱。MACHINE_TYPE:群組中 VM 的預先定義或自訂機器類型。IMAGE_PROJECT:包含圖片的圖片專案,例如debian-cloud。IMAGE或IMAGE_FAMILY:指定下列其中一個值:IMAGE:作業系統映像檔的特定版本,例如debian-10-buster-v20200309。IMAGE_FAMILY:映像檔系列。這會指定最新的非已淘汰 OS 映像檔。舉例來說,如果您指定family/debian-10,系統會使用 Debian 10 映像檔系列中的最新版本。
TIME:您希望系統自動終止這個 VM 的時間。指定時間必須在至少 30 秒後,且不得超過 120 天。將時間格式設為 RFC 3339 時間戳記:YYYY-MM-DDTHH:MM:SSOFFSET
更改下列內容:
YYYY-MM-DD:日期格式為 4 位數年份、2 位數月份和 2 位數日期,並以半形連字號分隔。HH:MM:SS:時間格式為 2 位數的小時 (採用 24 小時制)、2 位數的分鐘和 2 位數的秒數,並以半形冒號分隔。OFFSET:時區格式為世界標準時間 (UTC) 的偏移量。舉例來說,如要使用太平洋標準時間 (PST),這比世界標準時間 (UTC) 早 8 小時,請指定-08:00。如要使用零時差 (世界標準時間+0),請指定Z。
查看 MIG 中 VM 的終止時間戳記
如要查看 Compute Engine 何時會終止 MIG 中的 VM,請檢查 VM 的終止時間戳記。如要瞭解 MIG 如何計算終止時間戳記,請參閱本文的「MIG 中 VM 的時間限制運作方式」一節。
如要查看終止時間戳記,請採取下列其中一種做法:
控制台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
按一下 MIG 名稱。
在「總覽」分頁的「VM 執行個體」表格中,找到「終止時間戳記」欄。
gcloud
如要查看 MIG 中 VM 的終止時間戳記,請使用 beta compute instance-groups managed list-instances 指令。如要篩選輸出內容中的終止時間戳記,請使用 --format 標記,如下列範例所示。
如為可用區 MIG,請執行下列指令。如果是區域 MIG,請將下列指令中的 --zone=ZONE 旗標替換為 --region=REGION 旗標。
gcloud beta compute instance-groups managed list-instances MIG_NAME \
--zone=ZONE \
--format="table(name, instanceStatus, scheduling.terminationTimestamp)"
更改下列內容:
MIG_NAME:MIG 的名稱。ZONE:MIG 所在的可用區。
以下是輸出範例。只有在 VM 設定終止時間戳記時,TERMINATION_TIMESTAMP 欄位才會顯示值。
NAME STATUS TERMINATION_TIMESTAMP new-mig-2-2mr4 RUNNING 2025-06-12T16:09:00.366292Z new-mig-2-6b0v RUNNING
REST
如要查看 MIG 中 VM 的終止時間戳記,請使用下列其中一種方法:
- 如果是區域 MIG,請使用
beta.regionInstanceGroupManagers.listManagedInstances方法。 - 如果是區域 MIG,請使用
beta.instanceGroupManagers.listManagedInstances方法。
如要篩選終止時間戳記,請在要求網址中加入 fields 參數。以下範例顯示區域 MIG 的要求:
POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/listManagedInstances?fields=managedInstances(name%2Cscheduling)
更改下列內容:
PROJECT_ID:專案 ID。ZONE:MIG 所在的可用區。VM_NAME:MIG 的名稱。
以下是回應範例。只有在 VM 設定終止時間戳記時,才會顯示 terminationTimestamp 欄位。
{
"managedInstances": [
{
"name": "new-mig-2-2mr4",
"scheduling": {
"terminationTimestamp": "2025-06-12T16:09:00.366292Z"
}
},
{
"name": "new-mig-2-6b0v"
}
]
}
MIG 中 VM 的時間限制運作方式
為 MIG 中的 VM 指定時間限制時,系統會自動在 VM 的終止時間戳記 (terminationTimestamp) 欄位中,設定 MIG 終止 VM 的時間。
系統會根據您指定的時間限制類型,設定 VM 的終止時間戳記,如下所示:
時間限制 (以執行時間為準) (
maxRunDuration):VM 的
terminationTimestamp= VM 的最新建立或啟動時間 +maxRunDuration指定時間長度時,系統會根據 VM 的最新建立或啟動時間設定終止時間戳記。如果重新建立、重新啟動、繼續或替換 VM,系統會重新計算終止時間戳記。MIG 中各個 VM 的終止時間戳記可能不同,具體取決於每個 VM 上次建立或啟動的時間。舉例來說,如果 VM 經過修復,系統會將修復期間 VM 重新建立的時間加上持續時間,重新計算 VM 的終止時間戳記。
時間限制 (終止時間) (
terminationTime):terminationTimestamp的 VM =terminationTime指定時間後,終止時間戳記會設為該時間 (前提是該時間在未來)。如果終止時間已過,任何嘗試建立、重新啟動或更換 VM 的 MIG 動作都會失敗。如要解決這類錯誤,請建立新的執行個體範本,並設定未來的終止時間,然後將該範本套用至 MIG。如要在新範本中使用現有範本屬性,請根據現有範本建立執行個體範本。
VM 重新整理期間,終止時間戳記不會變更。舉例來說,如果將更新的中斷程度設為 REFRESH,則代管執行個體群組:MIG 更新 VM 時,系統會保留終止時間戳記。
在 MIG 中暫停或停止 VM 時,系統會自動清除終止時間戳記,無論時間限制類型為何皆是如此。當您恢復或啟動 VM 時,系統會根據時間限制類型重新設定終止時間戳記,如本節稍早所述。
設定時間限制時,自動調度資源的運作方式
自動調度資源功能可讓 MIG 根據負載的增減,自動新增或移除 VM。當 MIG 刪除已達終止時間戳記的 VM 時,MIG 會建立新的 VM,以維持自動調整程式的建議大小。新 VM 會在指定時限內執行。如果自動調度器建議減少 VM 數量,MIG 就會刪除 VM,即使 VM 尚未達到時間限制也一樣。
如果您已設定縮放時間表,VM 只會執行到時間表結束,或 VM 達到終止時間戳記為止,兩者取其先。
後續步驟
- 瞭解建立 MIG 的基本情境。
- 瞭解如何將新的執行個體範本套用至現有 MIG。