為工作負載設定自動監控應用程式功能


啟用支援工作負載的自動應用程式監控功能,即可節省設定及維護 Google Kubernetes Engine (GKE) 執行監控應用程式的時間和精力。

自動監控應用程式的運作方式

啟用自動應用程式監控功能後,GKE 會偵測已部署的支援工作負載執行個體,並為每個偵測到的工作負載執行個體部署 PodMonitoring 資源

自動監控應用程式功能也會安裝立即可用的資訊主頁,方便您監控應用程式。這些指標是由 Google Cloud Managed Service for Prometheus 收集。

支援的工作負載

自動監控應用程式支援下列工作負載:

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 叢集必須符合下列條件:

啟用自動監控應用程式功能

您可以使用 Google Cloud 控制台、Google Cloud CLI 或 GKE API,為新的或現有的 GKE 叢集啟用自動應用程式監控功能。

部署新工作負載或為叢集啟用自動應用程式監控功能後,系統最多需要 10 分鐘,才會開始擷取支援的工作負載指標。

主控台

如要為新叢集啟用自動監控應用程式功能,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往「Create an Autopilot cluster」(建立 Autopilot 叢集) 頁面。

    前往「Create an Autopilot cluster」(建立 Autopilot 叢集) 頁面

    您也可以建立標準叢集來完成這項工作。

  2. 如果是 Autopilot 模式叢集,請按一下「進階設定」。 如果是 Standard 模式叢集,請按一下「Features」(功能)

  3. 在「Operations」(作業) 區段中,選取「Enable automatic application monitoring」(啟用自動應用程式監控)

  4. 點選「建立」

您也可以更新「叢集詳細資料」分頁的「作業」部分中「啟用自動監控應用程式功能」欄位,為現有叢集啟用自動監控應用程式功能。

gcloud

如要為新叢集啟用自動監控應用程式功能,請使用 --auto-monitoring-scope=ALL 選項:

gcloud container clusters create-auto CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=ALL

更改下列內容:

您也可以使用 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,判斷叢集是否已啟用或停用自動應用程式監控功能。

主控台

請執行下列步驟:

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:

    前往「Google Kubernetes Engine」

  2. 在叢集清單中,按一下叢集名稱。

  3. 在「功能」部分,「自動監控應用程式功能」欄位會指出自動監控應用程式功能是否已啟用。

gcloud

描述叢集:

gcloud container clusters describe CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --format='value(monitoringConfig.managedPrometheusConfig.autoMonitoringConfig.scope)'

更改下列內容:

輸出結果會與下列內容相似:

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 頁面中查看資訊主頁,瞭解自動監控工作負載的遙測資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:

    前往「Google Kubernetes Engine」

  2. 按一下要查看自動監控工作負載資訊主頁的叢集名稱。

  3. 按一下「可觀測性」分頁標籤。 「整合」部分會顯示為叢集上執行的支援工作負載設定的資訊主頁。

如要在 Cloud Monitoring 頁面中查看資訊主頁,瞭解自動監控工作負載的遙測資料,請按照下列步驟操作:

  1. 前往「資訊主頁」頁面。

    前往資訊主頁

  2. 按一下「資訊主頁清單」分頁標籤。

  3. 選取「整合」類別。

  4. 按一下資訊主頁名稱。例如「RabbitMQ Prometheus 總覽」。

停用自動監控應用程式功能

如果在叢集上停用自動應用程式監控功能,GKE 建立的 PodMonitoring 資源會保持不變,且 GKE 會繼續監控現有的支援工作負載。GKE 會停止自動監控您部署至叢集的支援工作負載新例項。如要停止監控現有支援的工作負載,請刪除 GKE 建立的 PodMonitoring 資源。如果重新啟用叢集的應用程式自動監控功能,GKE 會偵測並調解先前建立的 PodMonitoring 資源。

您可以使用Google Cloud console、gcloud CLI 或 GKE API,為叢集停用自動應用程式監控功能。

主控台

  1. 前往 Google Cloud 控制台的「Google Kubernetes Engine」頁面:

    前往「Google Kubernetes Engine」

  2. 按一下叢集名稱。

  3. 在「功能」清單中,找出「自動應用程式監控」欄位。

  4. 按一下「編輯」

  5. 取消選取「啟用自動監控應用程式功能」

  6. 按一下 [儲存]

gcloud

使用 --auto-monitoring-scope=NONE 選項更新叢集:

gcloud container clusters update CLUSTER_NAME \
    --location=COMPUTE_LOCATION \
    --auto-monitoring-scope=NONE

更改下列內容:

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 資源:

  1. 前往「物件瀏覽器」頁面。

    前往物件瀏覽器

  2. 在「叢集」欄位中輸入叢集名稱。

  3. 在「命名空間」欄位中輸入命名空間名稱。

  4. 在「Object Kinds」(物件種類) 篩選器中,選取「PodMonitoring」

  5. monitoring.googleapis.com 下方,選取「PodMonitoring」

  6. 按一下物件名稱即可檢查物件。 中繼資料標籤 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 資源,可以刪除監控設定。

如要刪除個別工作負載的自動應用程式監控設定,請按照下列步驟操作:

  1. 從自動應用程式監控中排除工作負載
  2. 找出 GKE 為工作負載建立的 PodMonitoring 資源。
  3. 刪除 PodMonitoring 資源:

    kubectl delete podmonitoring POD_MONITORING_NAME -n NAMESPACE
    

    更改下列內容:

    • POD_MONITORING_NAMEPodMonitoring資源的名稱。
    • NAMESPACE:資源的命名空間。PodMonitoring

如要刪除叢集中所有工作負載的自動應用程式監控設定,請按照下列步驟操作:

  1. 停用自動監控應用程式功能
  2. 使用中繼資料標籤 source:gke-auto-monitoring 刪除叢集中的所有 PodMonitoring 資源:

    kubectl delete podmonitorings -l source=gke-auto-monitoring --all-namespaces
    

定價

自動應用程式監控功能會自動設定應用程式監控,並為支援的工作負載安裝立即可用的資訊主頁,無須額外付費。不過,Monitoring 會根據 Monitoring 定價,針對 Google Cloud Managed Service for Prometheus 擷取的指標收費。

後續步驟