3.7. CLI를 사용하여 OVS 샘플링에서 OVN-Kubernetes 네트워크 트래픽 확인
OVS 샘플링을 사용하여 OVN-Kubernetes 네트워크 트래픽을 확인하는 것은 기술 프리뷰 기능 전용입니다. 기술 프리뷰 기능은 Red Hat 프로덕션 서비스 수준 계약(SLA)에서 지원되지 않으며 기능적으로 완전하지 않을 수 있습니다. 따라서 프로덕션 환경에서 사용하는 것은 권장하지 않습니다. 이러한 기능을 사용하면 향후 제품 기능을 조기에 이용할 수 있어 개발 과정에서 고객이 기능을 테스트하고 피드백을 제공할 수 있습니다.
Red Hat 기술 프리뷰 기능의 지원 범위에 대한 자세한 내용은 기술 프리뷰 기능 지원 범위를 참조하십시오.
다음 네트워크 API의 CLI를 통해 OVS 샘플링을 사용하여 OVN-Kubernetes 네트워크 트래픽을 볼 수 있습니다.
-
NetworkPolicy -
AdminNetworkPolicy -
BaselineNetworkPolicy -
UserDefinedNetwork격리 -
EgressFirewall - 멀티 캐스트 ACL.
이러한 네트워킹 이벤트의 스크립트는 각 OVN-Kubernetes 노드의 /usr/bin/ovnkube-observ 경로에 있습니다.
Network Observability Operator와 OVS 샘플링을 사용하여 OVN-Kubernetes 네트워크 트래픽을 확인하는 것은 디버깅에 적합하지만 Network Observability Operator는 네트워크 이벤트를 관찰하기 위한 것입니다. 또는 CLI를 사용하여 OVS 샘플링에서 OVN-Kubernetes 네트워크 트래픽을 확인하는 것은 패킷 추적에 도움이 될 수 있습니다. Network Observability Operator가 설치된 경우에도 사용할 수 있지만 이는 필수 사항은 아닙니다.
관리자는 --add-ovs-collect 옵션을 추가하여 노드에서 네트워크 트래픽을 보거나 특정 Pod의 결과를 필터링하기 위해 추가 플래그를 전달할 수 있습니다. 추가 플래그는 "OVN-Kubernetes 네트워크 트래픽 with OVS 샘플링 플래그" 섹션에서 확인할 수 있습니다.
CLI를 사용하여 OVN-Kubernetes 네트워크 트래픽을 보려면 다음 절차를 사용하십시오.
사전 요구 사항
-
cluster-admin권한이 있는 사용자로 클러스터에 로그인합니다. - 소스 Pod와 대상 Pod를 생성하고 해당 Pod 간에 트래픽을 실행했습니다.
-
NetworkPolicy ,
AdminNetworkPolicy,Baseline,NetworkPolicyUserDefinedNetwork격리, 멀티 캐스트 또는 송신 방화벽 등 네트워크 API 중 하나 이상을 생성했습니다.
프로세스
OVS 샘플링 기능을 사용하여
OVNObservability를 활성화하려면 다음 명령을 입력하여cluster라는FeatureGateCR에TechPreviewNoUpgrade기능 세트를 활성화합니다.$ oc patch --type=merge --patch '{"spec": {"featureSet": "TechPreviewNoUpgrade"}}' featuregate/cluster출력 예
featuregate.config.openshift.io/cluster patched다음 명령을 입력하여
OVNObservability기능이 활성화되어 있는지 확인합니다.$ oc get featuregate cluster -o yaml출력 예
featureGates: # ... enabled: - name: OVNObservability다음 명령을 입력하여 관련 네트워크 API 중 하나를 생성한 네임스페이스 내부의 Pod 목록을 가져옵니다. 다음 단계에서 사용되므로 Pod의
NODE이름을 기록해 둡니다.$ oc get pods -n <namespace> -o wide출력 예
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES destination-pod 1/1 Running 0 53s 10.131.0.23 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none> source-pod 1/1 Running 0 56s 10.131.0.22 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> <none>OVN-Kubernetes Pod 목록을 가져오고 다음 명령을 입력하여 이전 단계에서 Pod와 동일한
NODE를 공유하는 Pod를 찾습니다.$ oc get pods -n openshift-ovn-kubernetes -o wide출력 예
NAME ... READY STATUS RESTARTS AGE IP NODE NOMINATED NODE ovnkube-node-jzn5b 8/8 Running 1 (34m ago) 37m 10.0.128.2 ci-ln-1gqp7b2-72292-bb9dv-worker-a-gtmpc <none> ...다음 명령을 입력하여
ovnkube-nodePod 내부에서 bash 쉘을 엽니다.$ oc exec -it <pod_name> -n openshift-ovn-kubernetes -- bashovnkube-nodePod 내부에서ovnkube-observ -add-ovs-collector스크립트를 실행하여 OVS 수집기를 사용하여 네트워크 이벤트를 표시할 수 있습니다. 예를 들면 다음과 같습니다.# /usr/bin/ovnkube-observ -add-ovs-collector출력 예
... 2024/12/02 19:41:41.327584 OVN-K message: Allowed by default allow from local node policy, direction ingress 2024/12/02 19:41:41.327593 src=10.131.0.2, dst=10.131.0.6 2024/12/02 19:41:41.327692 OVN-K message: Allowed by default allow from local node policy, direction ingress 2024/12/02 19:41:41.327715 src=10.131.0.6, dst=10.131.0.2 ...-filter-src-ip플래그와 Pod의 IP 주소로 다음 명령을 입력하여 소스 Pod와 같은 유형별로 콘텐츠를 필터링할 수 있습니다. 예를 들면 다음과 같습니다.# /usr/bin/ovnkube-observ -add-ovs-collector -filter-src-ip <pod_ip_address>출력 예
... Found group packets, id 14 2024/12/10 16:27:12.456473 OVN-K message: Allowed by admin network policy allow-egress-group1, direction Egress 2024/12/10 16:27:12.456570 src=10.131.0.22, dst=10.131.0.23 2024/12/10 16:27:14.484421 OVN-K message: Allowed by admin network policy allow-egress-group1, direction Egress 2024/12/10 16:27:14.484428 src=10.131.0.22, dst=10.131.0.23 2024/12/10 16:27:12.457222 OVN-K message: Allowed by network policy test:allow-ingress-from-specific-pod, direction Ingress 2024/12/10 16:27:12.457228 src=10.131.0.22, dst=10.131.0.23 2024/12/10 16:27:12.457288 OVN-K message: Allowed by network policy test:allow-ingress-from-specific-pod, direction Ingress 2024/12/10 16:27:12.457299 src=10.131.0.22, dst=10.131.0.23 .../usr/bin/ovnkube-observ를 사용하여 전달할 수 있는 전체 플래그 목록은 "OVS 샘플링 플래그를 사용한 OVN-Kubernetes 네트워크 트래픽"을 참조하십시오.
3.7.1. OVS 샘플링 플래그를 사용한 OVN-Kubernetes 네트워크 트래픽 링크 복사링크가 클립보드에 복사되었습니다!
CLI를 사용하여 OVN-Kubernetes 네트워크 트래픽을 확인하는 데 다음 플래그를 사용할 수 있습니다. ovnkube-node Pod 내에서 bash 쉘을 연 후 터미널의 다음 구문에 이러한 플래그를 추가합니다.
명령 구문
# /usr/bin/ovnkube-observ <flag>
| 플래그 | 설명 |
|---|---|
|
|
|
|
| 샘플링을 활성화하려면 OVS 수집기를 추가합니다. 주의해서 사용하십시오. 다른 사람이 관찰 기능을 사용하지 않는지 확인하십시오. |
|
|
NBDB 데이터로 샘플 강화 기본값은 |
|
| 지정된 대상 IP로 패킷만 필터링합니다. |
|
| 지정된 소스 IP의 패킷만 필터링합니다. |
|
| psample group_id를 사용하여 원시 샘플 쿠키를 출력합니다. |
|
| 샘플을 작성할 출력 파일입니다. |
|
| 완전히 수신된 패킷을 출력합니다. false인 경우 소스 및 대상 IP만 모든 샘플과 함께 인쇄됩니다. |