AKS의 포드 간 네트워크 지연

3759 단어 dnskubernetesazureaks
지난 몇 달 동안 저는 AKS 클러스터의 포드 간 내부 http 통신에서 간헐적인 네트워크 지연을 관찰했습니다. 그러나 "간헐적"과 "느린"은 무엇을 의미합니까? 사진 한 장은 천 마디 말의 가치가 있습니다.





200-300ms에서 2초 범위의 이상값이 있음을 빠르게 알 수 있습니다!

자세히 살펴보면 out-of-process pod-to-pod 호출 중 하나가 너무 오래 걸립니다.



이제 그 이유는 다양할 수 있습니다.
  • 보낸 사람 문제(전송 지연)
  • 네트워크 문제(전송 지연)
  • 수신자 문제(수신/처리 지연)

  • 위의 마지막 스크린샷에서 수신자가 응답을 처리하는 데 매우 빠른 것으로 보이며 그 사이 어딘가에서 시간이 손실된 것으로 보입니다.

    그다지 도움이 되지 않을 것 같은 느낌이 들긴 했지만 AKS 클러스터의 네트워크 문제를 확인하기 위해 MS 지원 티켓을 열었습니다... MS 지원 에이전트가 네트워크 트래픽을 스니핑하라고 조언했는데 이것은 정말 좋은 힌트였습니다(I 내 Wireshark 지식을 연마해야 했지만).

    K8s 클러스터의 포드 간 네트워크 트래픽을 스니핑하는 것은 매우 쉽습니다(관리자 액세스 권한이 있는 경우). MS는 ksniff를 사용하도록 권고했지만 easier ways I googled only later on . 따라서 ksniff를 사용하면 다음 작업만 수행하면 됩니다.
  • Install krew(kubectl용 플러그인 설치 프로그램) - https://krew.sigs.k8s.io/docs/user-guide/setup/install/
  • ksniff 설치 - https://github.com/eldadru/ksniff#installation
  • Wireshark/tshark 설치 - 여기에서 기본 Ubuntu 리포지토리에 이전 버전의 Wireshark/tshark가 포함되어 있는 문제가 있었습니다. 그래서 this github issue comment helped me
  • 스니핑

  • kubectl sniff POD-NAME -n POD-NAMESPACE-NAME -p
    


    (인수 -p가 중요합니다. 그렇지 않으면 "... '/tmp/static-tcpdump'에 액세스할 수 없습니다: 해당 파일 또는 디렉터리가 없습니다."오류가 발생했습니다.)

    ...그리고 짜잔, Wireshark가 자동으로 열리고 네트워크 트래픽을 받기 시작합니다. http 트래픽만 볼 수 있도록 필터에 http를 넣고 다른 문제 발생을 기다리기 시작했습니다... 7-8이 걸렸습니다. 시간. 이것은 내가 얻은 것입니다 (이번에는 2초 대신 317ms이지만 다양합니다).



    그러나 Application Insights 스크린샷에서 300밀리초 이상 걸리는 요청은 이 추적에서 단 1밀리초만 걸리고 있었습니다. 이상한 점은 요청이 훨씬 늦게 시작되었다는 것입니다. Application Insights에서 본 것보다 300밀리초 늦게 시작했습니다...

    Wireshark에서 http 필터를 제거하면 흥미로운 DNS 통신이 표시되며 빨간색으로 표시된 요청-응답은 300ms가 걸립니다!



    다음과 같이 호출 포드 구성에서 대상 서비스(뒤에 1개 이상의 포드가 있는 Kubernetes 서비스) 호스트 이름을 사용하고 있는 것으로 나타났습니다.
    http://xxxxxxxx.default.svc.cluster.local/api/...
    어떻게든 AKS 또는 K8s는 다시.default.svc.cluster.local(또는 그 일부)를 추가하여 여러 DNS 조회를 시도하고 있습니다. 결국에는 당연히 즉시 발견되는 원래 호스트 이름을 조회하려고 시도합니다. 이러한 DNS 조회 중 하나는 때때로 더 오래.

    솔루션(적어도 지금은 MS가 더 나은 것이 무엇인지 조언할 때까지): 호출 포드 구성에서 모든 대상 서비스 호스트 이름에 대한 접미사.default.svc.cluster.local를 제거합니다. 지금은 그림이 다릅니다.



    위의 내용이 누군가가 이 문제를 피하는 데 도움이 되기를 바랍니다!

    좋은 웹페이지 즐겨찾기