排解與 Google 的連線問題

本文提供疑難排解指南,協助解決與 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.2169.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,請按照下列步驟操作:

  1. 檢查通道的狀態:

    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 值,使其相符。

  2. 使用 kubectl edit 指令開啟 OverlayVPNTunnel 自訂資源進行編輯:

    kubectl --kubeconfig CLUSTER_KUBECONFIG edit OVERLAY_VPN_TUNNEL_NAME
        --namespace kube-system --output yaml
    

    為避免封包遺失,請為網路連線閘道使用的兩個 OverlayVPNTunnel 自訂資源設定相同的 MTU。

  3. 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
    
  4. 如要套用變更,請儲存並關閉編輯器。

如要進一步瞭解 MTU 及其對流量效能的影響,請參閱「MTU 注意事項」。

查看流量和應用程式層級的統計資料

如要查看流量和統計資料,請在閘道 Pod 內執行 ncgcli

  • 如要即時查看流程和流量應用程式:

    ncgcli forwarding flows top
    
  • 如要查看流程層級的匯總統計資料:

    ncgcli forwarding flows aggregates show
    
  • 如要查看介面層級的匯總統計資料:

    ncgcli interfaces statistics show
    

後續步驟

如需其他協助,請與 Cloud Customer Care 團隊聯絡。如要進一步瞭解支援資源,包括下列項目,請參閱「取得支援」: