k8spacket 및 Grafana를 통한 kubernetes용 TCP 패킷 트래픽 시각화
3609 단어 tcpobservabilitydevopskubernetes
k8spacket
및 Grafana
를 사용하여 클러스터의 TCP 트래픽을 시각화할 수 있습니다. 워크로드가 함께 통신하는 방법을 확인하십시오. 설정된 연결 수, 교환된 바이트 수 및 이러한 연결이 활성화된 시간을 검사합니다.설명
k8spacket
는 Golang으로 작성된 도구이며 gopacket
타사 라이브러리를 사용하여 워크로드(수신 및 발신)에서 TCP 패킷을 스니핑합니다. 실행 중인 컨테이너 네트워크 인터페이스에 TCP 리스너를 생성합니다. 쿠버네티스가 새 컨테이너를 생성할 때 CNI 플러그인은 다른 컨테이너 또는 클러스터에서 전 세계로 통신할 수 있는 가능성을 제공합니다. 가장 일반적인 접근 방식은 linux namespace
를 사용하여 네트워크를 격리하고 veth pair
를 사용하여 격리된 네임스페이스를 브리지와 연결합니다. 더 알고 싶다면 Safak( )이 쓴 훌륭한 기사를 참조하십시오. type bridge
외에도 CNI 플러그인은 다른 유형( vlan
, ipvlan
, macvlan
)을 사용할 수 있지만 모두 k8spacket
스니퍼의 기본 핸들인 컨테이너 Linux 네임스페이스에 대한 네트워크 인터페이스를 생성합니다.k8spacket
가 옵션으로 실행 중입니다.hostNetwork: true
앞에서 언급한 격리를 제거합니다. TCP 스트림을 수집하고, 데이터를 처리하고,
Grafana
에서 사용할 API를 통해 결과를 노출합니다.추가적으로,
k8spacket
는 Kubernetes API 클라이언트이며 스니핑된 워크로드를 시각화에 표시되는 클러스터 리소스 이름( Pods
및 Services
)으로 해결할 수 있습니다. DaemonSet
로 실행됩니다. 10s
(기본값)를 구현했습니다. 클러스터 리소스의 그래프를 표시하는 것 외에도 지표도 노출합니다
Prometheus
.설치
k8spacket
를 설치하려면 Helm 및 Grafana가 설치되어 있어야 합니다. 또한 이 도구에는 Hamad의 Node Grafana API 플러그인( Node Graph API )이 필요합니다.모든 설치 단계here를 참조하십시오.
용법
통계 유형
connection
- 워크로드와 외부 클라이언트 간에 설정된 연결 수를 이해하는 데 도움이 됩니다. 어떤 소켓이 열려 있고 문제를 일으킬 수 있는지 알려줍니다. 포트가 소진된 일부 SNAT 게이트웨이 뒤에 있을 때 유용합니다(예: Azure AKS
). bytes
- 워크로드에서 보내고 받은 바이트 수를 표시합니다. duration
- 연결 수명을 계산합니다. 필터
by namespace
- 하나 이상의 k8s 네임스페이스 선택by names included
- 시각화를 위한 워크로드 이름 선택by names excluded
- 시각화에서 작업 부하 이름 제외요약
클러스터에서 TCP 트래픽이 어떻게 진행되고 있는지 알고 싶다면
k8spacket
를 시도하십시오. 트래픽 차단에 대한 조사( network policy
)는 외부에서 패키지가 누출되는 것을 볼 때 고통스럽지 않을 수 있습니다. 타사 라이브러리를 검토하여 세상과의 연결을 확인하십시오.
Reference
이 문제에 관하여(k8spacket 및 Grafana를 통한 kubernetes용 TCP 패킷 트래픽 시각화), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bareckidarek/tcp-packets-traffic-visualization-for-kubernetes-by-k8spacket-and-grafana-422c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)