4장. ovnkube-trace를 사용하여 Openflow 추적
OVN 및 OVS 트래픽 흐름은 ovnkube-trace 라는 단일 유틸리티에서 시뮬레이션할 수 있습니다. ovnkube-trace 유틸리티는 ovn-trace , ovs-appctl ofproto/trace 및 ovn-detrace를 실행하고 해당 정보를 단일 출력으로 상관관계를 분석합니다.
전용 컨테이너에서 ovnkube-trace 바이너리를 실행할 수 있습니다. OpenShift Container Platform 4.7 이후 릴리스의 경우 바이너리를 로컬 호스트에 복사하여 해당 호스트에서 실행할 수도 있습니다.
4.1. 로컬 호스트에 ovnkube-trace 설치 링크 복사링크가 클립보드에 복사되었습니다!
ovnkube-trace 도구는 OVN-Kubernetes 기반 OpenShift Container Platform 클러스터의 지점 간 임의의 UDP 또는 TCP 트래픽에 대한 패킷 시뮬레이션을 추적합니다. ovnkube-trace 바이너리를 로컬 호스트에 복사하여 클러스터에서 실행할 수 있도록 합니다.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 클러스터에 로그인합니다.
프로세스
다음 명령을 사용하여 pod 변수를 만듭니다.
$ POD=$(oc get pods -n openshift-ovn-kubernetes -l app=ovnkube-control-plane -o name | head -1 | awk -F '/' '{print $NF}')로컬 호스트에서 다음 명령을 실행하여
ovnkube-control-plane포드에서 바이너리를 복사합니다.$ oc cp -n openshift-ovn-kubernetes $POD:/usr/bin/ovnkube-trace -c ovnkube-cluster-manager ovnkube-trace참고ovnkube-trace도구를 실행하기 위해 Red Hat Enterprise Linux(RHEL) 8을 사용하는 경우/usr/lib/rhel8/ovnkube-trace파일을 로컬 호스트에 복사해야 합니다.다음 명령을 실행하여
ovnkube-trace를실행 가능하게 만듭니다.$ chmod +x ovnkube-trace다음 명령을 실행하여
ovnkube-trace에서 사용할 수 있는 옵션을 표시합니다.$ ./ovnkube-trace -help예상 출력
Usage of ./ovnkube-trace: -addr-family string Address family (ip4 or ip6) to be used for tracing (default "ip4") -dst string dest: destination pod name -dst-ip string destination IP address (meant for tests to external targets) -dst-namespace string k8s namespace of dest pod (default "default") -dst-port string dst-port: destination port (default "80") -kubeconfig string absolute path to the kubeconfig file -loglevel string loglevel: klog level (default "0") -ovn-config-namespace string namespace used by ovn-config itself -service string service: destination service name -skip-detrace skip ovn-detrace command -src string src: source pod name -src-namespace string k8s namespace of source pod (default "default") -tcp use tcp transport protocol -udp use udp transport protocol지원되는 명령줄 인수는 네임스페이스, 포드, 서비스와 같은 익숙한 Kubernetes 구성 요소이므로 MAC 주소, 대상 노드의 IP 주소 또는 ICMP 유형을 찾을 필요가 없습니다.
로그 수준은 다음과 같습니다.
- 0 (최소 출력)
- 2(추적 명령의 결과를 보여주는 더 자세한 출력)
- 5 (디버그 출력)