이 문서에서는 Google 연결과 관련된 문제에 대한 문제 해결 안내를 제공합니다.
네트워크 연결 게이트웨이
이 섹션에서는 네트워크 연결 게이트웨이와 관련된 문제 해결 팁을 제공합니다.
컨트롤러 및 게이트웨이 포드가 실행 중인지 확인
네트워크 연결 게이트웨이 포드를 나열합니다.
kubectl --kubeconfig CLUSTER_KUBECONFIG get pods \ --namespace kube-system | grep ncg
CLUSTER_KUBECONFIG
를 클러스터 kubeconfig 파일의 경로로 바꿉니다.출력에 컨트롤러 포드 및 게이트웨이 포드가 표시되는지 확인합니다. 컨트롤러 포드의 이름은
ncg-controller
로 시작하고 게이트웨이 포드의 이름은ncgd
로 시작합니다. 예를 들면 다음과 같습니다.ncg-controller-5f5d489b68-r87pp 1/1 Running ncgd-gvl76 1/1 Running
게이트웨이 포드 이름을 기록해 둡니다. 여러 가지 문제 해결 명령어를 실행하는 데 필요합니다.
게이트웨이 포드 로그 확인
게이트웨이 포드의 로그에 오류가 있는지 확인합니다.
kubectl --kubeconfig CLUSTER_KUBECONFIG logs GATEWAY_POD \ --namespace kube-system
GATEWAY_POD
를 게이트웨이 포드 이름으로 바꿉니다.
게이트웨이 포드 내에서 ncgcli
실행
게이트웨이 포드에는 터널의 게이트웨이 및 트래픽에 대한 정보를 가져오기 위해 사용할 수 있는 ncgcli
라는 명령줄 도구가 있습니다.
다음 명령어를 사용하여 게이트웨이 포드 내에서
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
게이트웨이 포드 내부에서 터널 상태를 확인합니다.
ncgcli overlay peers show
자세한 내용은 Cloud VPN 문제 해결을 참조하세요.
BGP 세션 설정 실패
Cloud Router와 클러스터의 게이트웨이 포드 간 BGP 세션에 대해 169.254.1.2
및 169.254.2.2
와 같은 링크-로컬 IP 주소가 사용되었는지 확인합니다.
BGP 세션의 상태를 확인합니다.
kubectl --kubeconfig CLUSTER_KUBECONFIG get OverlayBGPPeer \ --namespace kube-system --output yaml
게이트웨이 포드 내부에서 BGP 세션의 상태를 확인합니다.
ncgcli overlay routes show
BGP 세션의 문제 해결에 대한 자세한 내용은 BGP 세션 상태 및 일반 문제 해결을 참조하세요.
터널 작동 시에도 트래픽 전달 문제 발생
트래픽 전달이 실패하면 게이트웨이 포드 내에서 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
패킷 손실을 방지하려면 네트워크 연결 게이트웨이에 사용된 2개의
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가 트래픽 성능에 미치는 영향에 대한 자세한 내용은 MTU 고려 사항을 참조하세요.
트래픽 흐름 및 애플리케이션 수준 통계 보기
트래픽 흐름 및 통계를 보려면 게이트웨이 포드 내에서 ncgcli
를 실행합니다.
흐름 및 트래픽 애플리케이션을 즉시 보려면 다음을 수행합니다.
ncgcli forwarding flows top
흐름 수준에서 집계 통계를 보려면 다음을 수행합니다.
ncgcli forwarding flows aggregates show
인터페이스 수준에서 집계 통계를 보려면 다음을 수행합니다.
ncgcli interfaces statistics show