排解周邊網路問題

本頁面說明如何排解及驗證 Google Kubernetes Engine (GKE) 環境網路問題。這項工具提供相關操作說明,可檢查叢集內環境元件的健康狀態、診斷流量驗證和授權問題、驗證憑證核發情形,以及檢查指標和記錄。

確認元件已安裝且健康狀態良好

Cloud Service Mesh 環境模式的叢集內元件會安裝在 gke-managed-ambient 命名空間中。您可以使用下列指令,查看所有相關 Pod 的狀態:

kubectl get pods -n gke-managed-ambient

確認流量已通過驗證和授權

在Cloud de Confiance 控制台中使用 Logs Explorer,檢查與感興趣的連線相對應的存取記錄:

resource.type="k8s_container"
resource.labels.location="CLUSTER_LOCATION"
resource.labels.cluster_name="CLUSTER_NAME"
logName="projects/PROJECT_ID/logs/gke-ambient-node-proxy-accesslog"

存取記錄會顯示連線詳細資料,包括驗證和授權狀態。

記錄格式

欄位 類型 說明
connection 結構體 連線資訊。
connection.src_ip 字串 連線的來源 IP。
connection.src_port 整數 連線的來源通訊埠。
connection.dest_ip 字串 連線的目的地 IP。
connection.dest_port 整數 連線的目的地通訊埠。
connection.direction 字串 連線方向:{ingress, egress}
src 結構體 來源的端點資訊。
src.spiffe_id 字串 Pod 的 SPIFFE 身分。如果 Pod 沒有 SPIFFE 身分,則為空白。
dst 結構體 目的地的端點資訊。
dst.spiffe_id 字串 Pod 的 SPIFFE 身分。如果 Pod 沒有 SPIFFE 身分,則為空白。
error_details 字串 發生錯誤的詳細資料 (或 -,如果沒有發生錯誤)。
timestamp 字串 觀察到連線的時間 (世界標準時間)。
tls_failure_reason 字串 TLS 握手失敗原因。null如果連線不是 TLS。

確認憑證是否成功核發

使用下列指令檢查叢集中工作負載 Pod 的 CertificateSigningRequests 狀態:

kubectl get csr

您應該會看到類似以下的「已核准,已發行」條件:

NAME                           AGE   SIGNERNAME                 CONDITION
gke-ambient-spiffe-csr-q8kqh   2s    spiffe.gke.io/fleet-svid   Approved,Issued
gke-ambient-spiffe-csr-t5px2   7s    spiffe.gke.io/fleet-svid   Approved,Issued

網路服務監控指標

除了標準的 Cloud Observability 指標,Cloud Service Mesh 環境網路也整合了 Network Services Monitoring,可提供詳細的第 4 層網路遙測資料。

詳情請參閱「網路服務監控總覽」和「網路服務監控指標參考資料」。