1.31. Submariner 엔드 투 엔드 테스트 실패 문제 해결


Submariner 엔드 투 엔드 테스트를 실행한 후 오류가 발생할 수 있습니다. 다음 섹션을 사용하여 이러한 엔드 투 엔드 테스트 실패 문제를 해결하는 데 도움이 됩니다.

1.31.1. 증상: 하위 계층 데이터 플레인 테스트가 실패했습니다.

엔드 투 엔드 데이터 플레인 테스트에 실패하면 Submariner 테스트에서 커넥터 Pod가 리스너 Pod에 연결할 수 있지만 나중에 커넥터 Pod가 수신 대기 단계에서 중단되는 것을 보여줍니다.

1.31.2. 문제 해결: Submariner end-to-end data plane test fails

MTU(최대 전송 단위)는 엔드 투 엔드 데이터 플레인 테스트 실패를 유발할 수 있습니다. 예를 들어 MTU로 인해 IPsec(Internet Protocol Security)을 통한 클러스터 간 트래픽이 실패할 수 있습니다. 작은 패킷 크기를 사용하는 엔드 투 엔드 데이터 플레인 테스트를 실행하여 MTU가 실패했는지 확인합니다.

이 유형의 테스트를 실행하려면 Submariner 작업 영역에서 다음 명령을 실행합니다.

subctl verify --verbose --only connectivity --context <from_context> --tocontext <to_context> --image-override submariner-nettest=quay.io/submariner/nettest:devel --packet-size 200

테스트에 이 작은 패킷 크기로 성공하면 TCP(전송 제어 프로토콜) 최대 세그먼트 크기(MSS)를 설정하여 연결 문제를 해결할 수 있습니다. 다음 단계를 완료하여 TCP MSS를 설정합니다.

  1. 게이트웨이 노드에 주석을 달아 TCP MSS amping 값을 설정합니다. 예를 들어 값 1200 을 사용하여 다음 명령을 실행합니다.

    oc annotate node <node_name> submariner.io/tcp-clamp-mss=1200
  2. 다음 명령을 실행하여 모든 RouteAgent Pod를 다시 시작합니다.

    oc delete pod -n submariner-operator -l app=submariner-routeagent

1.31.3. 증상: 베어 메탈 클러스터에서 하위 계층 간 테스트가 실패했습니다.

컨테이너 네트워크 인터페이스(CNI)가 OpenShiftSDN인 경우 엔드 투 엔드 데이터 플레인 테스트가 없거나 클러스터 간 터널에 가상 확장 가능한 로컬 영역 네트워크(VXLAN)가 사용되는 경우 베어 메탈 클러스터에 실패할 수 있습니다.

1.31.4. 문제 해결: 베어 메탈 클러스터에서 하위 계층 간 테스트가 실패했습니다.

하드웨어에서 UDP(User Datagram Protocal) 체크섬 계산의 버그는 베어 메탈 클러스터의 엔드 투 엔드 데이터 플레인 테스트 실패의 근본 원인이 될 수 있습니다. 이 버그 문제를 해결하려면 다음 YAML 파일을 적용하여 하드웨어 오프로드를 비활성화합니다.

apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: disable-offload
  namespace: submariner-operator
spec:
  selector:
    matchLabels:
      app: disable-offload
  template:
    metadata:
      labels:
        app: disable-offload
    spec:
      tolerations:
      - operator: Exists
      containers:
        - name: disable-offload
          image: nicolaka/netshoot
          imagePullPolicy: IfNotPresent
          securityContext:
            allowPrivilegeEscalation: true
            capabilities:
              add:
              - net_admin
              drop:
              - all
            privileged: true
            readOnlyRootFilesystem: false
            runAsNonRoot: false
          command: ["/bin/sh", "-c"]
          args:
            - ethtool --offload vxlan-tunnel rx off tx off;
              ethtool --offload vx-submariner rx off tx off;
sleep infinity
      restartPolicy: Always
      securityContext: {}
      serviceAccount: submariner-routeagent
      serviceAccountName: submariner-routeagent
      hostNetwork: true
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.