このドキュメントでは、Google への接続に関する問題のトラブルシューティングについて説明します。
Network Connectivity Gateway
このセクションでは、Network Connectivity Gateway に関連するトラブルシューティングのヒントについて説明します。
さらにサポートを必要とされる場合は、Cloud カスタマーケアにお問い合わせください。コントローラとゲートウェイ 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 セッションを確立できない
クラスタ内の Cloud Router とゲートウェイ Pod 間の BGP セッションに対して、169.254.1.2
や 169.254.2.2
などのリンクローカル IP アドレスを使用したことを確認します。
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
最大伝送単位を調整する
Maximum Transmission Unit(MTU)は、ネットワーク レイヤ プロトコルでサポートされる、ヘッダーとデータの両方を含めた最大パケットのサイズ(バイト単位)です。アンダーレイ ネットワーク MTU の制限が原因で発生したトラフィックの問題がある場合は、OverlayVPNTunnel
カスタム リソースで MTU を構成できます。トンネルのデフォルト MTU は 1,380 バイトです。
トンネルの 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
パケット損失を回避するには、Network Connectivity Gateway で使用される 2 つの
OverlayVPNTunnel
カスタム リソースに同じ MTU を構成します。最初のステップの
DiscoveredMTU
の値と一致するようにmtu
の値を設定します。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