28.11. 네트워크 관찰 문제 해결

네트워크 관찰 문제 해결을 지원하기 위해 몇 가지 문제 해결 작업을 수행할 수 있습니다.

28.11.1. must-gather 툴 사용

must-gather 툴을 사용하여 Network Observability Operator 리소스 및 Pod 로그, FlowCollector, Webhook 구성과 같은 클러스터 전체 리소스에 대한 정보를 수집할 수 있습니다.

절차

  1. must-gather 데이터를 저장하려는 디렉터리로 이동합니다.
  2. 다음 명령을 실행하여 클러스터 전체 must-gather 리소스를 수집합니다.

    $ oc adm must-gather
     --image-stream=openshift/must-gather \
     --image=quay.io/netobserv/must-gather

28.11.2. OpenShift Container Platform 콘솔에서 네트워크 트래픽 메뉴 항목 구성

네트워크 트래픽 메뉴 항목이 OpenShift Container Platform 콘솔의 Observe 메뉴에 나열되지 않은 경우 OpenShift Container Platform 콘솔에서 네트워크 트래픽 메뉴 항목을 수동으로 구성합니다.

사전 요구 사항

  • OpenShift Container Platform 버전 4.10 이상이 설치되어 있습니다.

절차

  1. 다음 명령을 실행하여 spec.consolePlugin.register 필드가 true 로 설정되어 있는지 확인합니다.

    $ oc -n netobserv get flowcollector cluster -o yaml

    출력 예

    apiVersion: flows.netobserv.io/v1alpha1
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      consolePlugin:
        register: false

  2. 선택 사항: Console Operator 구성을 수동으로 편집하여 netobserv-plugin 플러그인을 추가합니다.

    $ oc edit console.operator.openshift.io cluster

    출력 예

    ...
    spec:
      plugins:
      - netobserv-plugin
    ...

  3. 선택 사항: 다음 명령을 실행하여 spec.consolePlugin.register 필드를 true 로 설정합니다.

    $ oc -n netobserv edit flowcollector cluster -o yaml

    출력 예

    apiVersion: flows.netobserv.io/v1alpha1
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      consolePlugin:
        register: true

  4. 다음 명령을 실행하여 콘솔 포드의 상태가 실행 중인지 확인합니다.

    $ oc get pods -n openshift-console -l app=console
  5. 다음 명령을 실행하여 콘솔 Pod를 다시 시작합니다.

    $ oc delete pods -n openshift-console -l app=console
  6. 브라우저 캐시 및 기록을 지웁니다.
  7. 다음 명령을 실행하여 Network Observability 플러그인 Pod의 상태를 확인합니다.

    $ oc get pods -n netobserv -l app=netobserv-plugin

    출력 예

    NAME                                READY   STATUS    RESTARTS   AGE
    netobserv-plugin-68c7bbb9bb-b69q6   1/1     Running   0          21s

  8. 다음 명령을 실행하여 Network Observability 플러그인 Pod의 로그를 확인합니다.

    $ oc logs -n netobserv -l app=netobserv-plugin

    출력 예

    time="2022-12-13T12:06:49Z" level=info msg="Starting netobserv-console-plugin [build version: , build date: 2022-10-21 15:15] at log level info" module=main
    time="2022-12-13T12:06:49Z" level=info msg="listening on https://:9001" module=server

28.11.3. FlowLogs-Pipeline은 Kafka를 설치한 후 네트워크 흐름을 소비하지 않습니다.

deploymentModel: KAFKA 를 사용하여 흐름 수집기를 먼저 배포한 후 Kafka를 배포한 경우 흐름 수집기가 Kafka에 올바르게 연결되지 않을 수 있습니다. Flowlogs-pipeline에서 Kafka의 네트워크 흐름을 사용하지 않는 flow-pipeline pod를 수동으로 다시 시작합니다.

절차

  1. 다음 명령을 실행하여 flow-pipeline Pod를 삭제하여 재시작합니다.

    $ oc delete pods -n netobserv -l app=flowlogs-pipeline-transformer

28.11.4. br-intbr-ex 인터페이스에서 네트워크 흐름을 보지 못함

br-ex 및 br-int 는 OSI 계층 2에서 작동하는 가상 브리지 장치입니다. eBPF 에이전트는 각각 IP 및 TCP 수준, 계층 3 및 4에서 작동합니다. eBPF 에이전트는 물리적 호스트 또는 가상 Pod 인터페이스와 같은 다른 인터페이스에서 네트워크 트래픽을 처리할 때 br-exbr-int 를 통해 전달되는 네트워크 트래픽을 캡처할 수 있습니다. br-exbr-int 에만 연결하도록 eBPF 에이전트 네트워크 인터페이스를 제한하면 네트워크 흐름이 표시되지 않습니다.

네트워크 인터페이스를 br-intbr-ex 로 제한하는 인터페이스 또는 excludeInterfaces 의 부분을 수동으로 제거합니다.

절차

  1. 인터페이스 제거: [br-int', 'br-ex' ] 필드. 이를 통해 에이전트는 모든 인터페이스에서 정보를 가져올 수 있습니다. 또는 Layer-3 인터페이스를 지정할 수도 있습니다(예: eth0). 다음 명령을 실행합니다.

    $ oc edit -n netobserv flowcollector.yaml -o yaml

    출력 예

    apiVersion: flows.netobserv.io/v1alpha1
    kind: FlowCollector
    metadata:
      name: cluster
    spec:
      agent:
        type: EBPF
        ebpf:
          interfaces: [ 'br-int', 'br-ex' ] 1

    1
    네트워크 인터페이스를 지정합니다.

28.11.5. Network Observability 컨트롤러 관리자 Pod가 메모리 부족

CSV(Cluster Service Version)에 패치를 적용하여 Network Observability Operator의 메모리 제한을 늘릴 수 있습니다. 여기서 Network Observability 컨트롤러 관리자 Pod는 메모리가 부족합니다.

절차

  1. 다음 명령을 실행하여 CSV를 패치합니다.

    $ oc -n netobserv patch csv network-observability-operator.v1.0.0 --type='json' -p='[{"op": "replace", "path":"/spec/install/spec/deployments/0/spec/template/spec/containers/0/resources/limits/memory", value: "1Gi"}]'

    출력 예

    clusterserviceversion.operators.coreos.com/network-observability-operator.v1.0.0 patched

  2. 다음 명령을 실행하여 업데이트된 CSV를 확인합니다.

    $ oc -n netobserv get csv network-observability-operator.v1.0.0 -o jsonpath='{.spec.install.spec.deployments[0].spec.template.spec.containers[0].resources.limits.memory}'
    1Gi