您可以使用本頁中的方法查看代管執行個體群組 (MIG) 的相關資訊,並查看每個 MIG 內虛擬機器 (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
-
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.
REST
To use the REST API samples on this page in a local development environment, you use the credentials you provide to the 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.
For more information, see Authenticate for using REST in the Google Cloud authentication documentation.
-
查看 MIG 相關資訊
您可以擷取群組本身的相關資訊,例如檢查群組附加的政策,並檢查群組是否穩定或正在進行變更。如要取得 MIG 中 VM 執行個體的相關資訊,請參閱「查看代管執行個體的相關資訊」。
列出 MIG
如要取得代管執行個體群組清單,請使用主控台、gcloud CLI 或 REST。
主控台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
如果您已擁有執行個體群組,頁面會列出這些群組,包括代管執行個體群組和非代管執行個體群組。
「群組類型」欄會指定群組是否為受管理、有狀態或未受管理。有狀態群組類型也是代管執行個體群組。
gcloud
如要列出專案中的所有代管執行個體群組:
gcloud compute instance-groups managed list
REST
如果是區域 MIG,請呼叫 instanceGroupManagers.list
方法:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers
如果是區域 MIG,請呼叫 regionInstanceGroupManagers.list
方法。
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers
查看 MIG 的屬性
如要查看特定 MIG 的相關資訊,包括其政策 (例如群組的自動修復和更新政策),請使用主控台、gcloud CLI 或 REST。
如要查看群組的 id
值,您必須使用 gcloud CLI 或 Compute Engine API。
主控台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
如果您已擁有執行個體群組,頁面會列出這些群組。該頁面也會列出非代管執行個體群組。
在清單的「Name」(名稱) 欄底下,按一下要檢查之執行個體群組的名稱。按一下名稱會開啟頁面,其中包含執行個體群組的屬性及群組內執行個體的清單。
按一下「Details」即可查看群組的設定。
gcloud
如要取得特定群組的資訊:
gcloud compute instance-groups managed describe instance-group \ [--zone zone | --region region]
這個指令會傳回群組的詳細資料,包括附加的政策。
使用 --format
旗標限制輸出內容。舉例來說,下列指令只會傳回群組的自動配置器設定 (如果有)。
gcloud compute instance-groups managed describe instance-group --format="(autoscaler)"
REST
如果是區域 MIG,請呼叫 instanceGroupManagers.get
方法。如果是區域 MIG,請呼叫 regionInstanceGroupManagers.get
方法。
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group
回應會包含群組的詳細資料,包括附加的政策 (除了群組的自動調度資源政策以外)。雖然自動調度是 MIG 的功能,但它是單獨的 REST 資源。
自動調度資源政策
如果群組已連結自動配置器,群組的 status.autoscaler
欄位會列出自動配置器資源。
如要取得自動配置器的相關資訊,請針對區域 MIG 呼叫 autoscalers.get
方法,或針對區域 MIG 呼叫 regionAutoscalers.get
方法。自動配置器資源的網址包含其名稱,預設名稱為自動配置器所連結的群組名稱。舉例來說,您可以為區域 MIG 的自動調整大小功能提出下列要求:
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/regionAutoscalers/mig_name
檢查 MIG 是否穩定
許多指令與要求都會在代管執行個體群組中建立、刪除及修改執行個體。在群組安排建立、刪除或更新執行個體的時程之後,這些作業會以 DONE
狀態傳回。但是,在完成這些基本動作之前,系統並不會建立、刪除或更新群組中的執行個體。您必須驗證群組的狀態或驗證這些執行個體的狀態。
當代管執行個體群組中的所有執行個體都沒有任何變更、沒有排定執行個體的未來變更,且群組本身未經修改時,該群組就處於穩定狀態。
如果有依附元件需要群組中的所有例項都處於正常狀態並提供服務,您可能需要瞭解群組是否穩定。舉例來說,您可能會在確認所有 VM 都已執行且處於健康狀態後,開始排程工作、傳送流量或指派鍵值範圍。
如要確認代管執行個體群組中的所有執行個體是否都在執行中,且健康狀態良好,請查看群組的 status.isStable
欄位值。
gcloud
使用 describe
指令:
gcloud compute instance-groups managed describe instance-group-name \ [--zone zone | --region region]
gcloud CLI 會傳回 MIG 的詳細資訊,包括 status.isStable
欄位。
如要在 MIG 穩定之前暫停指令碼,請使用帶有 --stable
旗標的 wait-until
指令。例如:
gcloud compute instance-groups managed wait-until instance-group-name \
--stable \
[--zone zone | --region region]
Waiting for group to become stable, current operations: deleting: 4
Waiting for group to become stable, current operations: deleting: 4
...
Group is stable
在 MIG 的 status.isStable
設為 true
後,會傳回這個指令。
REST
如果是區域 MIG,請向 instanceGroupManagers.get
方法發出 GET
要求:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/get
如果是地區代管執行個體群組,請將 zones/zone
替換為 regions/region
:
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group-name/get
這些要求會傳回 MIG 的詳細資訊,包括 status.isStable
欄位。
當 status.isStable
為 false
時,代表變更已生效、待處理,或是系統正在修改 MIG。
當 status.isStable
為 true
時,則代表:
- MIG 中沒有任何執行個體遭到任何類型的變更,且所有執行個體的
currentAction
都顯示NONE
。 - MIG 中的執行個體沒有任何待處理的變更。
- MIG 本身不會經過修改。
請注意,MIG 的穩定性取決於許多因素,因為 MIG 可以透過多種方式進行修改。例如:
- 由您發出推出新執行個體範本的要求。
- 由您發出建立、刪除、調整大小或更新 MIG 中執行個體的要求。
- 由自動配置器要求調整 MIG 的大小。
- 自動修復程式資源正在取代 MIG 中一或多個健康狀態不良的執行個體。
- 在地區 MIG 中,部分執行個體正在重新分配。
完成所有動作後,該 MIG 的 status.isStable
會再次設為 true
。
如果為個別 VM 執行個體,請參閱檢查代管執行個體的狀態。
檢查是否已在 MIG 中關閉 VM 修復功能
如要檢查是否已在 MIG 中關閉 VM 修復功能,請使用控制台、gcloud CLI 或 API。
主控台
- 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
- 按一下要查看的執行個體群組名稱。系統隨即開啟一個頁面,頁面中包含執行個體群組的屬性及群組包含之執行個體的清單。
- 按一下 [Details] (詳細資料) 分頁標籤。
- 在「VM 執行個體生命週期」區段中,勾選「失敗時的預設動作」欄位。如果值為
No action
,則會在 MIG 中關閉修復功能。
gcloud
請使用 describe
方法,如下所示:
gcloud compute instance-groups managed describe instance-group \ --format="(instanceLifecyclePolicy)"
在回應主體中,檢查 defaultActionOnFailure
欄位。可能的值如下:
REPAIR
:MIG 會在相同區域中重新建立故障或不健康的 VM。DO_NOTHING
:MIG 已關閉維修功能。MIG 不會對群組中失敗或不健康的 VM 採取任何行動。
以下是輸出內容範例,指出 MIG 會透過重新建立 VM 來修復 VM。
instanceLifecyclePolicy: defaultActionOnFailure: REPAIR forceUpdateOnRepair: NO
API
如果是區域 MIG,請使用 instanceGroupManagers.get
方法;如果是區域 MIG,請使用 regionInstanceGroupManagers.get
方法。
如要查看區域 MIG 中 VM 失敗的 MIG 動作,請發出以下呼叫:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
在回應主體中,檢查 instanceLifecyclePolicy.defaultActionOnFailure
欄位。可能的值如下:
REPAIR
:MIG 會在相同區域中重新建立故障或不健康的 VM。DO_NOTHING
:MIG 已關閉維修功能。MIG 不會對群組中失敗或不健康的 VM 採取任何行動。
以下是範例回應,指出 MIG 會透過重新建立 VM 來修復 VM。
"instanceLifecyclePolicy": { "forceUpdateOnRepair": "NO", "defaultActionOnFailure": "REPAIR" }
如果不想讓 MIG 修復群組中失敗或不健康的 VM,可以關閉 MIG 中的修復功能。
查看自動修復作業記錄
如果您已設定自動修復功能,可以查看過去的自動修復事件。
監控滾動式更新
如果您啟動了滾動式更新,且想知道更新何時完成,請參閱「監控更新」一文。
查看有狀態設定
如果您已設定有狀態的 MIG,並想要查看設定,請參閱「查看有狀態設定」。
查看 MIG 內代管 VM 執行個體的相關資訊
列出 MIG 的代管執行個體
如要取得群組中的代管執行個體清單 (包括狀態和範本),請使用主控台、gcloud CLI 或 REST。
主控台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
如果您已擁有執行個體群組,頁面會列出這些群組。該頁面也會列出非代管執行個體群組。
在清單的「Name」(名稱) 欄底下,按一下要檢查之執行個體群組的名稱。按一下名稱會開啟頁面,其中包含執行個體群組的屬性及群組內執行個體的清單。
gcloud
使用 gcloud CLI list-instances
子指令。
gcloud compute instance-groups managed list-instances instance-group \ [--zone zone | --region region]
這個指令會傳回執行個體清單及其詳細資料,包括目前的狀態、執行個體範本和上次發生的錯誤。
REST
針對區域 MIG,請向 instanceGroupManagers.listManagedInstances
方法建構 GET
要求,並加入特定代管執行個體群組的名稱:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group
如為地區 (多區域) 代管執行個體群組,請改用 regionInstanceGroupManagers
資源:regionInstanceGroupManagers.list。
GET https://compute.googleapis.com/compute/v1/projects/project-id/regions/region/instanceGroupManagers/instance-group
系統的回應會包括執行個體清單及其詳細資料,包括目前的狀態和執行個體範本。
查看代管執行個體的狀態
許多指令與要求都會在代管執行個體群組中建立、刪除及修改執行個體。在群組安排建立、刪除或更新執行個體的時程之後,這些作業會以 DONE
狀態傳回。但是,在完成這些基本動作之前,系統並不會建立、刪除或更新群組中的執行個體。您必須驗證這些執行個體的狀態,或驗證群組的狀態本身。
使用 Google Cloud CLI 或 REST,查看代管執行個體群組中的執行個體詳細資料。詳細資料包括執行個體狀態,以及群組在執行個體上執行的目前動作。
gcloud
所有受管理的執行個體
如要檢查群組中所有執行個體的狀態和目前動作,請使用 list-instances
指令。
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
這個指令會傳回群組中的執行個體清單,包括執行個體的狀態、目前動作和其他詳細資料:
NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR vm-instances-9pk4 us-central1-f CREATING my-new-template vm-instances-h2r1 us-central1-f STOPPING DELETING my-old-template vm-instances-j1h8 us-central1-f RUNNING NONE my-old-template vm-instances-ngod us-central1-f RUNNING NONE my-old-template
除非您已設定健康狀態檢查,否則 HEALTH_STATE
欄會顯示為空白。
特定的受管理執行個體
如要檢查群組中特定執行個體的狀態和目前動作,請使用 describe-instance
指令。
gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--zone=ZONE | --region=REGION]
這個指令會傳回執行個體的詳細資料,包括執行個體狀態、目前動作,以及在有狀態 MIG 的情況下,保留的狀態:
currentAction: NONE id: '6789072894767812345' instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41 instanceStatus: RUNNING name: example-mig-hz41 preservedStateFromConfig: metadata: example-key: example-value preservedStateFromPolicy: disks: persistent-disk-0: autoDelete: NEVER mode: READ_WRITE source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41 version: instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template
REST
在區域或區域 MIG 資源上呼叫 listManagedInstances
方法。舉例來說,如要查看區域 MIG 資源中執行個體的詳細資料,您可以提出以下要求:
GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
這個呼叫會傳回 MIG 的執行個體清單,其中包含每個執行個體的 instanceStatus
和 currentAction
。
{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-prvp", "id": "5317605642920955957", "instanceStatus": "RUNNING", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template", "currentAction": "REFRESHING" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-pz5j", "currentAction": "DELETING" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-w2t5", "id": "2800161036826218547", "instanceStatus": "RUNNING", "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template", "currentAction": "REFRESHING" } ] }
如要查看有效的 instanceStatus
欄位值清單,請參閱 VM 執行個體生命週期。
如果執行個體正在經歷某種類型的變更,代管執行個體群組就會將執行個體的 currentAction
欄位設為下列任一動作,協助您追蹤變更進度。否則,currentAction
欄位會設為 NONE
。
可能的 currentAction
值:
ABANDONING
:執行個體正從 MIG 中移除。CREATING
:執行個體目前正在建立。CREATING_WITHOUT_RETRIES
:執行個體目前正在建立,且不會重試;如果執行個體在第一次嘗試時無法建立,則 MIG 不會嘗試再次取代執行個體。DELETING
:執行個體目前正在刪除。RECREATING
:正在取代執行個體。REFRESHING
:執行個體正從其目前目標集區中移除,並正讀入至現有的目標集區清單中 (此清單可能會與現有目標集區相同或不同)。RESTARTING
:系統正在使用stop
和start
方法重新啟動該執行個體。RESUMING
:執行個體在暫停後,目前正在重新啟動中。STARTING
:執行個體在停止後正在啟動中。STOPPING
:執行個體正在停止。SUSPENDING
:執行個體已暫停。VERIFYING
:執行個體已建立,目前正受到驗證。NONE
:目前並未對執行個體執行任何動作。
如要檢查整個群組是否穩定或正在經歷變更,請參閱檢查群組狀態一文。
檢查健康狀態
如果您為代管執行個體群組設定了自動修復功能,則可以檢視每個 VM 的健康狀態。請參閱檢查健康狀態一文。
列出執行個體錯誤
如果您的受管理執行個體發生錯誤,您可以查看這些錯誤,診斷並減輕錯誤原因。
使用 Google Cloud 控制台、gcloud CLI 或 REST 列出錯誤。
主控台
前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。
在清單的「Name」(名稱) 欄底下,按一下要檢查之執行個體群組的名稱。按一下名稱會開啟頁面,其中包含執行個體群組的屬性及群組內執行個體的清單。
按一下「錯誤」。
gcloud
使用 instance-groups managed list-errors
指令列出群組中最近的錯誤
gcloud compute instance-groups managed list-errors instance-group-name \ [--zone zone | --region region]
例如:
gcloud compute instance-groups managed list-errors example-group \ --region us-west1
INSTANCE_URL ACTION ERROR_CODE ERROR_MESSAGE TIMESTAMP INSTANCE_TEMPLATE VERSION_NAME https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-v0hl CREATING QUOTA_EXCEEDED Instance 'igm-1-v0hl' creation failed: Quota 'CPUS' exceeded. Limit: 1.0 in zone us-central1-a. 2019-07-11T07:44:40.156-07:00 https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1 https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-a/instances/igm-1-qp3d CREATING QUOTA_EXCEEDED Instance 'igm-1-qp3d' creation failed: Quota 'CPUS' exceeded. Limit: 1.0 in zone us-central1-a. 2019-07-11T07:44:40.081-07:00 https://www.googleapis.com/compute/v1/projects/my-project/global/instanceTemplates/instance-template-1 ...
REST
針對區域或地區代管執行個體群組,建構 GET
要求至 listErrors
方法。
例如:
GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100
要求會取得類似以下的回應:
{ "items": [ { "error": { "code": "QUOTA_EXCEEDED", "message": "Instance 'example-mig-m1sz' creation failed: Quota 'CPUS' exceeded. Limit: 50.0 in zone us-central1-c." }, "timestamp": "2019-01-03T18:47:28.457-08:00", "instanceDetails" : { "instance": "zones/us-central1-c/instances/example-mig-m1sz", "action": "CREATING", "version": { "name": "example-version-name", "instanceTemplate": "global/instanceTemplates/example-template", } } } ], ... "nextPageToken": "Ch0yMDE5LTA3LTI5VDExOjA4OjA2LjYxMi0wNzowMBJ5aHR0cHM6Ly93d3cuZ29vZ2xlYXBpcy5jb20vY29tcHV0ZS9zdGFnaW5nX2FscGhhL3Byb2plY3RzL215cnpha2VyZXltcy1zdGFnaW5nL3pvbmVzL3VzLWNlbnRyYWwxLWlyMS9pbnN0YW5jZXMvaWdtLTEtcXAzZA==" }
listErrors
API 支援清單分頁。如要取得下一頁結果,請在後續要求中使用某個回應中的 nextPageToken
欄位。例如:GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroupManagers/instance-group-name/listErrors&maxResults=100&nextPageToken=next-page-token
,將 next-page-token
替換為從先前回應中取得的符記。
可能的錯誤清單包括但不限於下列範例:
- 無法建立新例項的原因如下:
- 先占容量不足。
- 缺少配額,例如特定地區的 CPU 配額不足。
- 與群組相關聯的網路已達到 VM 執行個體數量上限。
- 執行個體範本的
properties.disks[].initializeParams.sourceImage
欄位中指定的磁碟映像檔已遭刪除,或其權限已變更。 - 與專案相關聯的帳單帳戶中的信用卡拒絕付款。
- 無法刪除現有執行個體,原因如下:
- 群組使用的服務帳戶沒有
compute.instances.delete
權限。 - 要求的並行刪除作業數量過多,超過頻率限制。
- 群組使用的服務帳戶沒有
- 目標集區已刪除,因此無法將執行個體新增至目標集區。
檢查這類錯誤後,您可以採取因應措施。例如:
- 將工作負載移至具有可搶佔容量的其他區域。
- 請在特定區域申請提高配額。
- 將
compute.instances.delete
權限新增至群組使用的服務帳戶。
如果由代管執行個體群組觸發的動作失敗 (例如,自動配置器在嘗試增加群組大小時遇到錯誤),群組可能會立即重試該動作。如果上次立即重試嘗試失敗,MIG 會記錄錯誤,您可以列出執行個體錯誤來查看錯誤。在一段延遲時間後,群組會再次重試失敗的動作。如果錯誤持續發生,系統可能會重複記錄。
即使基礎執行個體已不存在或無法建立,Compute Engine 仍會保留過去 8 天內的 500 個最新錯誤。
檢查 VM 執行個體是否屬於某個 MIG
如要檢查特定 VM 是否屬於某個群組,您可以使用主控台或 REST。
主控台
- 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面。
- 按一下要檢查的執行個體,存取其 VM 執行個體詳細資料。
- 如果 VM 執行個體屬於某個代管執行個體群組,「In use by」(使用者) 標頭底下會顯示該代管執行個體群組的名稱。如果 VM 執行個體不屬於任何群組,執行個體詳細資料頁面中就不會顯示「In use by」(使用者) 標頭。
REST
請參閱查看 VM 執行個體參照網址一文。
或者,如要識別 VM 是否屬於或曾屬於某個代管執行個體群組,請在執行個體的中繼資料中尋找以下兩個中繼資料鍵:
instance-template
表示用於建立 VM 的範本。created-by
表示建立 VM 的代管執行個體群組。
即使您捨棄執行個體,除非手動移除,否則 VM 仍會擁有這些中繼資料項目。
例如,如果有名為 random-instance-biy
的 VM,且您想要知道 VM 是否由代管執行個體群組建立,您可以描述執行個體並尋找上述中繼資料鍵。例如:
gcloud compute instances describe random-instance-biy \ --zone us-central1-f
gcloud CLI 會傳回類似以下的回應:
canIpForward: false cpuPlatform: Intel Ivy Bridge creationTimestamp: '2016-08-24T14:11:38.012-07:00' ... metadata: items: - key: instance-template value: projects/123456789012/global/instanceTemplates/example-it - key: created-by value: projects/123456789012/zones/us-central1-f/instanceGroupManagers/igm-metadata
查看受管理執行個體的保留狀態
如果您設定了有狀態的 MIG,且想查看每個代管執行個體的保留狀態,請參閱查看有狀態設定和保留狀態。
後續步驟
- 進一步瞭解代管執行個體群組。
- 建立執行個體範本,以便建立代管執行個體群組。