本頁面說明如何排解及驗證 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 層網路遙測資料。
詳情請參閱「網路服務監控總覽」和「網路服務監控指標參考資料」。