啟用支援工作負載的自動應用程式監控功能,即可節省設定及維護 Google Kubernetes Engine (GKE) 執行監控應用程式的時間和精力。
自動監控應用程式的運作方式
啟用自動應用程式監控功能後,GKE 會偵測已部署的支援工作負載執行個體,並為每個偵測到的工作負載執行個體部署 PodMonitoring
資源。
自動監控應用程式功能也會安裝立即可用的資訊主頁,方便您監控應用程式。這些指標是由 Google Cloud Managed Service for Prometheus 收集。
支援的工作負載
自動監控應用程式支援下列工作負載:
- Apache Airflow
- Istio
- RabbitMQ
- AI 模型伺服器:
AI 模型伺服器的指標擷取間隔為 15 秒。對於非 AI 工作負載,擷取間隔為 30 秒。
如要進一步瞭解其他可手動設定的現成可觀測性解決方案,請參閱 Google Cloud Observability 說明文件的「匯出工具設定簡介」。
事前準備
開始之前,請確認你已完成下列工作:
- 啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 如要使用 Google Cloud CLI 執行這項工作,請安裝並初始化 gcloud CLI。如果您先前已安裝 gcloud CLI,請執行
gcloud components update
,取得最新版本。
自動監控應用程式功能的需求條件
如要啟用自動監控應用程式功能,GKE 叢集必須符合下列條件:
- 叢集必須執行 GKE 1.28 以上版本。
- 您必須使用 gcloud CLI 492.0.0 以上版本。
- 叢集必須啟用 Google Cloud Managed Service for Prometheus 代管收集作業。新叢集會預設啟用 Google Cloud Managed Service for Prometheus 代管收集功能。
啟用自動監控應用程式功能
您可以使用 Google Cloud 控制台、Google Cloud CLI 或 GKE API,為新的或現有的 GKE 叢集啟用自動應用程式監控功能。
部署新工作負載或為叢集啟用自動應用程式監控功能後,系統最多需要 10 分鐘,才會開始擷取支援的工作負載指標。
主控台
如要為新叢集啟用自動監控應用程式功能,請按照下列步驟操作:
在 Google Cloud 控制台中,前往「Create an Autopilot cluster」(建立 Autopilot 叢集) 頁面。
前往「Create an Autopilot cluster」(建立 Autopilot 叢集) 頁面
您也可以建立標準叢集來完成這項工作。
如果是 Autopilot 模式叢集,請按一下「進階設定」。 如果是 Standard 模式叢集,請按一下「Features」(功能)。
在「Operations」(作業) 區段中,選取「Enable automatic application monitoring」(啟用自動應用程式監控)。
點選「建立」。
您也可以更新「叢集詳細資料」分頁的「作業」部分中「啟用自動監控應用程式功能」欄位,為現有叢集啟用自動監控應用程式功能。
gcloud
如要為新叢集啟用自動監控應用程式功能,請使用 --auto-monitoring-scope=ALL
選項:
gcloud container clusters create-auto CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=ALL
更改下列內容:
CLUSTER_NAME
:新叢集的名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
您也可以使用 gcloud container clusters update
指令更新現有叢集。
API
如要為新叢集啟用自動監控應用程式功能,請對 clusters.create
方法提出 POST
要求:
POST https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters
{
"cluster": {
"name": "CLUSTER_NAME",
"initialNodeCount": 1,
"monitoringConfig": {
"managedPrometheusConfig": {
"enabled": true,
"autoMonitoringConfig": {
"scope": "ALL"
}
}
}
}
}
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 ID。CLUSTER_NAME
:新叢集的名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
判斷是否已啟用自動監控應用程式功能
您可以使用 Google Cloud 控制台、gcloud CLI 或 GKE API,判斷叢集是否已啟用或停用自動應用程式監控功能。
主控台
請執行下列步驟:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:
在叢集清單中,按一下叢集名稱。
在「功能」部分,「自動監控應用程式功能」欄位會指出自動監控應用程式功能是否已啟用。
gcloud
描述叢集:
gcloud container clusters describe CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'
更改下列內容:
CLUSTER_NAME
:叢集名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
輸出結果會與下列內容相似:
autoMonitoringConfig.scope: ALL
在輸出內容中,如果 autoMonitoringConfig.scope
欄位的值為 ALL
,表示自動監控應用程式功能已啟用。否則,系統會停用自動監控應用程式功能。
API
對 clusters.get
方法發出 GET
要求:
GET https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 ID。CLUSTER_NAME
:叢集名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
輸出結果會與下列內容相似:
autoMonitoringConfig.scope: ALL
在輸出內容中,如果 autoMonitoringConfig.scope
欄位的值為 ALL
,表示自動監控應用程式功能已啟用。否則,系統會停用自動監控應用程式功能。
查看資訊主頁
啟用自動應用程式監控功能後,GKE 會安裝立即可用的資訊主頁,監控部署至叢集的支援工作負載。如果叢集從未執行支援的工作負載,您就不會看到相關資訊主頁。
如要在 Google Kubernetes Engine 頁面中查看資訊主頁,瞭解自動監控工作負載的遙測資料,請按照下列步驟操作:
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:
按一下要查看自動監控工作負載資訊主頁的叢集名稱。
按一下「可觀測性」分頁標籤。 「整合」部分會顯示為叢集上執行的支援工作負載設定的資訊主頁。
如要在 Cloud Monitoring 頁面中查看資訊主頁,瞭解自動監控工作負載的遙測資料,請按照下列步驟操作:
前往「資訊主頁」頁面。
按一下「資訊主頁清單」分頁標籤。
選取「整合」類別。
按一下資訊主頁名稱。例如「RabbitMQ Prometheus 總覽」。
停用自動監控應用程式功能
如果在叢集上停用自動應用程式監控功能,GKE 建立的 PodMonitoring
資源會保持不變,且 GKE 會繼續監控現有的支援工作負載。GKE 會停止自動監控您部署至叢集的支援工作負載新例項。如要停止監控現有支援的工作負載,請刪除 GKE 建立的 PodMonitoring
資源。如果重新啟用叢集的應用程式自動監控功能,GKE 會偵測並調解先前建立的 PodMonitoring
資源。
您可以使用Google Cloud console、gcloud CLI 或 GKE API,為叢集停用自動應用程式監控功能。
主控台
前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:
按一下叢集名稱。
在「功能」清單中,找出「自動應用程式監控」欄位。
按一下「編輯」edit。
取消選取「啟用自動監控應用程式功能」。
按一下 [儲存]。
gcloud
使用 --auto-monitoring-scope=NONE
選項更新叢集:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--auto-monitoring-scope=NONE
更改下列內容:
CLUSTER_NAME
:叢集名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
API
對 clusters.update
方法發出 PUT
要求:
PUT https://container.googleapis.com/v1/projects/PROJECT_ID/locations/COMPUTE_LOCATION/clusters/CLUSTER_NAME
{
"update": {
"desiredMonitoringConfig": {
"managedPrometheusConfig": {
"autoMonitoringConfig": {
"scope": "NONE"
}
}
}
}
}
更改下列內容:
PROJECT_ID
:您的 Google Cloud 專案 ID。CLUSTER_NAME
:叢集名稱。COMPUTE_LOCATION
:叢集的 Compute Engine 位置。
自訂支援工作負載的自動監控功能
您可以自訂支援工作負載個別執行個體的監控設定,也可以選擇不監控支援工作負載的個別執行個體。
如要為已部署的支援工作負載執行個體自訂 PodMonitoring
資源,但不想影響其他工作負載的自動應用程式監控功能,請先排除該執行個體,不要讓系統自動監控應用程式,然後更新設定或替換與目標工作負載執行個體相關聯的 PodMonitoring
資源。
如果您更新或刪除 GKE 建立的 PodMonitoring
資源,但未排除相關聯的工作負載,GKE 會還原 PodMonitoring
資源,確保持續性,同時監控其他支援的工作負載。
找出工作負載的 PodMonitoring
資源
您可以使用 Google Cloud 控制台,找出 GKE 為工作負載建立的 PodMonitoring
資源:
前往「物件瀏覽器」頁面。
在「叢集」欄位中輸入叢集名稱。
在「命名空間」欄位中輸入命名空間名稱。
在「Object Kinds」(物件種類) 篩選器中,選取「PodMonitoring」。
在 monitoring.googleapis.com 下方,選取「PodMonitoring」。
按一下物件名稱即可檢查物件。 中繼資料標籤
source:gke-auto-monitoring
表示 GKE 建立了PodMonitoring
資源。
從自動監控中排除已部署的執行個體
如不想監控已部署的支援工作負載執行個體,或想自訂工作負載的監控設定,可以從自動應用程式監控中排除該工作負載。
如要排除工作負載,請務必將中繼資料標籤 allow-gke-auto-monitoring: false
新增至目標工作負載設定。舉例來說,下列資訊清單說明自動應用程式監控功能未監控的 RabbitMQ StatefulSet:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: rabbitmq
labels:
allow-gke-auto-monitoring: "false"
spec:
serviceName: rabbitmq
replicas: 3
排除工作負載執行個體後,您可以刪除 GKE 為工作負載建立的 PodMonitoring
資源。如果您刪除或修改 PodMonitoring
資源,GKE 不會嘗試還原該資源。如果您使用中繼資料標籤 allow-gke-auto-monitoring: false
部署新的工作負載,GKE 不會為該工作負載建立 PodMonitoring
資源。
刪除工作負載的監控設定
如要停止監控工作負載,或為工作負載部署自訂 PodMonitoring
資源,可以刪除監控設定。
如要刪除個別工作負載的自動應用程式監控設定,請按照下列步驟操作:
- 從自動應用程式監控中排除工作負載。
- 找出 GKE 為工作負載建立的
PodMonitoring
資源。 刪除
PodMonitoring
資源:kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
更改下列內容:
POD_MONITORING_NAME
:PodMonitoring
資源的名稱。NAMESPACE
:資源的命名空間。PodMonitoring
如要刪除叢集中所有工作負載的自動應用程式監控設定,請按照下列步驟操作:
- 停用自動監控應用程式功能。
使用中繼資料標籤
source:gke-auto-monitoring
刪除叢集中的所有PodMonitoring
資源:kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
定價
自動應用程式監控功能會自動設定應用程式監控,並為支援的工作負載安裝立即可用的資訊主頁,無須額外付費。不過,Monitoring 會根據 Monitoring 定價,針對 Google Cloud Managed Service for Prometheus 擷取的指標收費。
後續步驟
- 瞭解如何查看觀測指標。