本頁面說明如何使用 Stackdriver Monitoring 監控您的 Google Kubernetes Engine (GKE) 叢集。
總覽
您可以使用 Monitoring 在 GKE 叢集中監控訊號及建立作業。
Stackdriver 會監控「系統指標」和「自訂指標」。系統指標是 CPU 或記憶體用量等叢集基礎架構的測量結果。自訂指標則是由您自行定義的應用程式專用指標,像是有效使用者工作階段總數或轉譯頁面總數等。
Stackdriver 會針對系統指標建立一個部署作業,以定期連線至每個節點,並收集有關節點的 Pod 和容器的指標,然後將指標傳送至 Stackdriver。
系統資源用量指標會從下列來源進行收集:
- CPU:
container/cpu/usage_time
- 記憶體:
container/memory/bytes_used
,從 cgroup 的memory.usage_in_bytes
收集 - 可收回的記憶體:
container/memory/bytes_used
,從memory.stat
的total_inactive_file
欄位收集 - 不可收回的記憶體:藉由
memory.usage_in_bytes
-memory.total_inactive_file
測量 - 磁碟:
container/disk/bytes_used
如要查看清單以瞭解從 GKE 收集到的其他系統指標,請參閱 Stackdriver 說明文件中的指標清單。
如要瞭解如何設定自訂指標,請參閱使用自訂指標,或是遵循使用自訂指標自動調整部署規模教學課程。
事前準備
如要準備這項工作,請執行下列步驟:
- 確認您已啟用 Google Kubernetes Engine API。 啟用 Google Kubernetes Engine API
- 確認您已安裝 Cloud SDK。
- 設定預設的專案 ID:
gcloud config set project [PROJECT_ID]
- 如果您使用區域叢集,請設定預設的運算區域:
gcloud config set compute/zone [COMPUTE_ZONE]
- 如果您使用地區叢集,請設定預設的運算地區:
gcloud config set compute/region [COMPUTE_REGION]
- 將
gcloud
更新到最新版本:gcloud components update
- 請確認您已建立 Stackdriver 工作區。詳情請參閱管理工作區一文。
啟用 Monitoring
您可以建立啟用 Monitoring 的叢集,或是在現有叢集中啟用 Monitoring。
叢集的節點集區 (包含預設的節點集區) 必須擁有與 Monitoring 互動所需的 GCP 範圍 (https://www.googleapis.com/auth/monitoring
範圍)。當您建立具有監控功能的新叢集時,Kubernetes Engine 會自動設定此範圍。然而,現有的叢集可能沒有必要的權限。
建立具有監控功能的叢集
gcloud
在您建立叢集時,系統會自動設定 --enable-cloud-monitoring
標記,這個標記會在叢集中啟用 Monitoring。
如要停用這個預設行為,請設定 --no-enable-cloud-monitoring
標記。
主控台
造訪 GCP 主控台的「Kubernetes Engine」選單。
按一下 [Create cluster] (建立叢集)。
視需要設定叢集。
按一下 [Advanced options] (進階選項)。確認已選取 [Enable Stackdriver Monitoring service] (啟用 Stackdriver Monitoring 服務)。
按一下 [Create] (建立)。
為現有叢集啟用監控功能
gcloud
如要為現有叢集啟用 Monitoring,請執行下列指令,其中 [CLUSTER_NAME]
是叢集名稱。
gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service monitoring.googleapis.com
如果您在最初建立叢集時並未啟用 Monitoring,但之後想要啟用這項功能,則該叢集的節點集區可能不具備所需的 GCP 範圍。解決方法是建立具有相同節點數和必要範圍的新節點集區,如下所示:
gcloud container node-pools create adjust-scope \ --cluster [CLUSTER_NAME] \ --num-nodes [NUM_NODES] \ --scopes https://www.googleapis.com/auth/monitoring
建立新的節點集區後,請將現有的 Pod 移至具有正確範圍的新節點集區,以便使用 Monitoring。詳情請參閱「透過不停機的方式更新 VM 範圍」一文。
主控台
如果您在最初建立叢集時並未啟用 Monitoring,但之後想要啟用這項功能,則該叢集的節點集區可能不具備所需的 GCP 範圍。請參閱前面的 gcloud
部分以取得解決方法。
造訪 GCP 主控台的「Kubernetes Engine」選單。
按一下鉛筆形狀的叢集 [Edit] (編輯) 按鈕。
將「Stackdriver Logging」下拉式選單的值設為「Enabled」(已啟用)。
按一下 [Save] (儲存)。
擴增基礎架構指標
除了應用程式指標以外,Stackdriver 自訂指標也可以使用未納入系統指標的叢集基礎架構測量結果,如容器磁碟 I/O 等。您可以部署自己的基礎架構監控代理程式,以便收集這些指標並推送到 Stackdriver。
cAdvisor
您可以使用 cAdvisor 收集指標,Kubernetes 使用這個開放原始碼監控代理程式來收集指標。您可以使用 prometheus-to-sd 將這些指標推送到 Stackdriver。
如要在自己的叢集上執行 cAdvisor,請執行下列步驟:
複製 cAdvisor:
git clone https://github.com/google/cadvisor.git cd cadvisor
按照 cAdvisor DaemonSet 操作說明安裝 kustomize。如果您使用的是 Cloud Shell,請執行下列指令:
go get github.com/kubernetes-sigs/kustomize
建立範例 cAdvisor 命名空間和 DaemonSet 以匯出所有容器指標:
kustomize build deploy/kubernetes/overlays/examples | kubectl apply -f -
此時您應該會在
gke_container
資源下的 Stackdriver 看到 Prometheus 指標。按照 cAdvisor kustomization 操作說明,變更提供的範例以配合您的需求。執行下列指令來套用您做的變更:
kustomize build deploy/kubernetes/overlays/<my_custom_patches> | kubectl apply -f -
查看指標
您可以在 Stackdriver Monitoring 主控台中查看指標。
叢集總覽
Monitoring 針對 GKE 有提供總覽選單,這個選單會收集關於叢集的有用資訊,並顯示在實用的資訊主頁中。
如要查看總覽選單,請執行下列步驟:
造訪 Stackdriver Monitoring 主控台:
將游標懸停在「Resources」(資源) 上,然後選取 [Kubernetes Engine]。
選取您的叢集。
總覽選單提供下列預設的資訊主頁:
- 「Incidents」(事件):違反快訊政策的事項。
- 「Events」(事件):依照時間先後列出發生在您雲端帳戶的異常情況、事件、生命週期、標記、身分與存取權管理政策、部署、附註、雲端供應商更新和使用者管理更新。
- 「CPU Usage」(CPU 用量):顯示每個叢集的 CPU 用量百分比。
- 「Disk I/O」(磁碟 I/O):顯示每個叢集的磁碟 I/O 速率,以每秒 KB 為單位。
- 「Network Traffic」(網路流量):顯示每個叢集的網路流量,以每秒 KB 為單位。
- 「Pods」:列出所有命名空間中的 Pod 和節點 (Compute Engine VM 執行個體)。選取任何 Pod 或節點將會開啟該資源的總覽畫面。
如要進一步瞭解如何查看指標,請參閱 Monitoring 說明文件和監控篩選器頁面。
資訊主頁
您可以建立 GKE 節點和容器的自訂資訊主頁。
如要建立資訊主頁,請執行下列步驟:
造訪 Stackdriver Monitoring 主控台:
將游標懸停在「Dashboards」上,然後選取 [Create Dashboard] (建立資訊主頁)。
如要建立新的資訊主頁,請按一下 [Add Chart]。
將資訊主頁的名稱填入「Title」(標題) 欄位。
在「Find resource type and metric」(尋找資源類型和指標) 欄位中,搜尋「instance」(執行個體) 和/或「container」(容器),然後選取需要的指標。
在「Metric Type」(指標類型) 欄位中,輸入需要的指標或從自動填入選單中選取。
您可以選擇使用「Filter」(篩選器),按照應用程式、名稱或版本等特定值進行篩選。
根據需要,進一步設定資訊主頁。如要建立資訊主頁,請按一下 [Save] (儲存)。
Metrics Explorer
Metrics Explorer 可讓您選取有關叢集的特定指標,並執行各種匯總作業。
如要使用 Metrics Explorer,請執行下列步驟:
造訪 Stackdriver Monitoring 主控台:
將游標懸停在「Resources」(資源) 上,然後選取 [Metrics Explorer]。
在「Find resource type and metric」(尋找資源類型和指標) 搜尋選單的「Resource type」(資源類型) 中,輸入
gke_container
。在「Metric」(指標) 中,選取需要的指標。
您可以選擇使用「Filter」選單,按照資源進行篩選。
使用「Aggregation」選項執行所需的匯總作業。
最佳做法
- 「Alerting」(快訊):您可以設定快訊政策,系統會在叢集發生任何可疑情況時通知您。
停用監控
gcloud
如要停用現有叢集的監控功能,請執行下列指令,其中 [CLUSTER_NAME]
是叢集名稱。
gcloud beta container clusters update [CLUSTER_NAME] --monitoring-service none
主控台
造訪 GCP 主控台的「Kubernetes Engine」選單。
按一下鉛筆形狀的叢集 [Edit] (編輯) 按鈕。
將「Stackdriver Logging」下拉式選單的值設為「Disabled」(已停用)。
按一下 [Save] (儲存)。
後續步驟
- 如要瞭解 Stackdriver 的費用,請參閱定價一文。
- 如需瞭解快訊政策以及如何進行設定,請參閱快訊政策相關說明。
- 如要瞭解如何建立和使用運作時間檢查,請參閱管理運作時間檢查一文。
- 如需瞭解如何自動調度資源,請參閱使用自訂指標自動調整部署規模教學課程。