本文提供疑難排解指南,協助解決與 Google 連線相關的問題。
Network Connectivity Gateway
本節提供與網路連線閘道相關的疑難排解提示。
如需其他協助,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解支援資源,包括下列項目,請參閱「取得支援」:確認控制器和閘道 Pod 正在執行
- 列出 Network Connectivity Gateway Pod: - kubectl --kubeconfig CLUSTER_KUBECONFIG get pods \ --namespace kube-system | grep ncg- 請將 - CLUSTER_KUBECONFIG替換為叢集 kubeconfig 檔案的路徑。- 在輸出內容中,確認您看到控制器 Pod 和閘道 Pod。控制器的 Pod 名稱開頭為 - ncg-controller,閘道 Pod 名稱開頭為- ncgd。例如:- ncg-controller-5f5d489b68-r87pp 1/1 Running ncgd-gvl76 1/1 Running- 請記下閘道 Pod 的名稱。您需要使用這項資訊執行各種疑難排解指令。 
檢查閘道 Pod 記錄
- 檢查閘道 Pod 的記錄中是否有任何錯誤: - kubectl --kubeconfig CLUSTER_KUBECONFIG logs GATEWAY_POD \ --namespace kube-system- 將 - GATEWAY_POD替換為閘道 Pod 的名稱。
在閘道 Pod 內執行 ncgcli
閘道 Pod 具有名為 ncgcli 的指令列工具,可用來取得閘道和通道中流量的相關資訊。
- 使用下列指令在閘道 Pod 內執行 - ncgcli:- kubectl --kubeconfig CLUSTER_KUBECONFIG exec -it GATEWAY_POD \ --namespace kube-system -- ncgCLI_COMMAND- 將 - ncgCLI_COMMAND替換為- ncgcli指令。- 例如: - kubectl --kubeconfig my-kubeconfig exec ncgd-6hkk2 --namespace kube-system \ -- ncgcli --help
下列各節提供更多 ncgcli 指令範例。
IPsec 通道無法啟動
- 檢查 - NetworkConnectivityGateway自訂資源的狀態:- kubectl --kubeconfig CLUSTER_KUBECONFIG get NetworkConnectivityGateway \ --namespace kube-system --output yaml- 在輸出內容中,確認您看到 - Status: Healthy。例如:- apiVersion: networking.gke.io/v1alpha1 kind: NetworkConnectivityGateway metadata: namespace: kube-system name: default spec: status: CurrNode: worker1-node CreatedTime: 2021-09-07T03:18:15Z LastReportTime: 2021-09-21T23:57:54Z Status: Healthy
- 檢查 - OverlayVPNTunnel自訂資源的狀態:- kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \ --namespace kube-system --output yaml
- 從閘道 Pod 內部檢查通道狀態: - ncgcli overlay peers show
詳情請參閱「Cloud VPN 疑難排解」。
無法建立 BGP 工作階段
確認您已使用連結本機 IP 位址 (例如 169.254.1.2 和 169.254.2.2),在 Cloud Router 與叢集中的閘道 Pod 之間建立 BGP 工作階段。
- 檢查 BGP 工作階段的狀態: - kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayBGPPeer \ --namespace kube-system --output yaml
- 從閘道 Pod 內部檢查 BGP 工作階段的狀態: - ncgcli overlay routes show
如要進一步瞭解如何排解 BGP 工作階段問題,請參閱下列文章:
即使通道已啟動,仍發生流量轉送問題
如果流量轉送失敗,請在閘道 Pod 內執行 ncgcli
,檢查通道、路由和資料層程式設計的狀態。
- 確認已建立與對等互連的 IPsec 通道: - ncgcli overlay peers show
- 確認已透過 BGP 交換疊加網路路徑,並解析為適當的 IPsec 通道: - ncgcli overlay routes show
- 顯示在資料平面中程式設計的路徑,輸出內容應包含疊加路徑: - ncgcli fast-path routes show
調整最大傳輸單位
最大傳輸單位 (MTU) 是網路層通訊協定支援的最大封包大小 (以位元組為單位),其中包含標頭與資料。如果流量問題是由底層網路 MTU 限制所造成,您可以在 OverlayVPNTunnel 自訂資源上設定 MTU。通道的預設 MTU 為 1380 位元組。
如要調整通道的 MTU,請按照下列步驟操作:
- 檢查通道的狀態: - kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayVPNTunnel \ --namespace kube-system --output yaml- status部分應如下列範例所示:- status: IfName: ipsec2 LastTransition: "2022-06-16T07:13:28Z" SLA: DiscoveredMTU: 1300 Jitter(ms): 1 Latency(ms): 26 Loss(%): "0.00"- 如果 - status.SLA.DiscoveredMTU值小於預設的- 1380,請按照下列步驟,變更自訂資源中的- Spec.mtu值,使其相符。- OverlayVPNTunel
- 使用 - kubectl edit指令開啟- OverlayVPNTunnel自訂資源進行編輯:- kubectl --kubeconfig CLUSTER_KUBECONFIG edit OVERLAY_VPN_TUNNEL_NAME --namespace kube-system --output yaml- 為避免封包遺失,請為網路連線閘道使用的兩個 - OverlayVPNTunnel自訂資源設定相同的 MTU。
- 將 - mtu值設為與第一個步驟中的- DiscoveredMTU值相符:- apiVersion: networking.gke.io/v1alpha1 kind: OverlayVPNTunnel metadata: name: vpc2 namespace: kube-system Spec: mtu: 1300 ikeKey: name: ike-key namespace: kube-system localTunnelIP: 169.254.0.2 peer: publicIP: 34.100.10.10 self: publicIP: 70.32.151.5
- 如要套用變更,請儲存並關閉編輯器。 
如要進一步瞭解 MTU 及其對流量效能的影響,請參閱「MTU 注意事項」。
查看流量和應用程式層級的統計資料
如要查看流量和統計資料,請在閘道 Pod 內執行 ncgcli。
- 如要即時查看流程和流量應用程式: - ncgcli forwarding flows top
- 如要查看流程層級的匯總統計資料: - ncgcli forwarding flows aggregates show
- 如要查看介面層級的匯總統計資料: - ncgcli interfaces statistics show