本文說明 GKE 連結的叢集如何與 Cloud Logging 整合,並示範如何存取記錄。
總覽
GKE 附加叢集支援 Cloud Logging,可記錄工作負載和在工作站節點上執行的系統元件。
GKE 附加叢集包含以 Fluentbit 為基礎的記錄代理程式,會以 Daemonset 的形式在工作站節點上執行。記錄代理程式收集的資料可像其他指標和記錄資料一樣管理及刪除,詳情請參閱 Cloud Logging 說明文件。
事前準備
符合 GKE 附加叢集的前提條件。
授權 Cloud Logging 和 Cloud Monitoring,設定 Google Cloud Observability 的權限。
我們會蒐集哪些資料
您可以設定 GKE 附加叢集,擷取下列任何或所有資訊:
- 工作負載記錄
啟用記錄功能
附加叢集時,如果未指定記錄模式,GKE 附加叢集會預設啟用系統記錄功能。如要記錄工作負載,叢集必須使用 Kubernetes 1.23 以上版本。
如要在附加叢集時啟用工作負載記錄,請按照附加 EKS 叢集的操作說明,並在 gcloud container attached clusters register
指令中加入選用的 --logging
旗標:
gcloud container attached clusters register CLUSTER_NAME ... --logging=LOGGING_FLAG
如要在已連結的叢集上啟用工作負載記錄功能,請按照更新 EKS 叢集的指示操作,並在 gcloud container attached clusters update
指令中加入選用的 --logging
標記:
gcloud container attached clusters update CLUSTER_NAME ... --logging=LOGGING_FLAG
將 LOGGING_FLAG 替換為標記,指出要啟用哪種記錄:
NONE
:停用記錄。SYSTEM
:啟用在特定命名空間中執行的系統工作負載記錄。SYSTEM,WORKLOAD
:在叢集的工作站節點上啟用系統和工作負載活動的記錄功能。
存取記錄
您可以使用下列幾種方式,在 Cloud Logging 中存取 GKE 附加叢集記錄:
記錄檔探索工具:您可以使用記錄篩選器選取 Kubernetes 資源 (例如叢集、節點、命名空間、Pod 或容器記錄),直接從記錄檔探索工具查看記錄。
Google Cloud CLI - 使用
gcloud logging read
指令,選取適當的叢集、節點、Pod 和容器記錄。
瞭解記錄檔
Cloud Logging 中的記錄是記錄項目的集合,每個記錄項目都對應到一個特定類型的記錄資源。
資源類型
以下是 GKE 連結叢集的專屬資源類型:
資源類型 | 顯示名稱 |
---|---|
k8s_container |
工作負載容器記錄 |
當 GKE 連結的叢集寫入叢集記錄時,每個記錄項目都會包含資源類型。瞭解記錄檔的顯示位置,有助於在需要時輕鬆找到記錄檔。
系統應用程式記錄
系統應用程式記錄檔屬於 k8s_container
資源類型。包括 GKE 連結叢集在工作站節點上安裝的 Pod 記錄。具體來說,下列命名空間中執行的容器都會納入:
gke-connect
gke-system
gmp-system
asm-user-auth
cnrm-system
config-management-system
gatekeeper-system
gmp-public
istio-system
knative-serving
在 Cloud Logging 使用者介面中尋找記錄
您可以在 Cloud Logging 使用者介面中,使用 Logs Explorer 查看記錄。
記錄檔探索工具
使用查詢產生器時,您可以手動新增查詢參數來建構查詢。舉例來說,如要探索系統工作負載的記錄,可以先選取或搜尋 k8s_container
資源類型,然後選取位置和叢集名稱。然後,您可以篩選容器或 Pod 名稱,縮小搜尋範圍。
您也可以使用 記錄檔欄位探索工具,在 Logs Explorer 中建構搜尋查詢。這個部分會顯示指定記錄檔欄位的記錄項目數量,並依數量遞減排序。使用記錄欄位探索器,可輕鬆為資源選取 Kubernetes 值,因此特別適合用於 GKE 連結的叢集記錄。舉例來說,您可以選取特定叢集、命名空間、Pod 名稱和容器名稱的記錄。
詳情請參閱「使用記錄檔探索工具」。
查詢範例
本節包含您可在記錄檔探索工具中執行的查詢範例。
範例 1:取得Google Cloud 叢集 CLUSTER_NAME 的 gke-connect-agent
容器記錄:
resource.type="k8s_container"
resource.labels.cluster_name="attachedClusters/CLUSTER_NAME"
resource.labels.container_name="gke-connect-agent"