本文提供疑難排解指南,協助解決與 Google 連線相關的問題。
Network Connectivity Gateway
本節提供 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
,請按照下列步驟,在OverlayVPNTunel
自訂資源中變更Spec.mtu
值,使其相符。使用
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