1.31. Submariner 端到端测试失败的故障排除


运行 Submariner 端到端测试后,您可能会遇到失败。使用以下部分帮助您对这些端到端测试失败进行故障排除。

1.31.1. 症状: Submariner 端到端数据平面测试失败

当端到端数据平面测试失败时,Submariner 测试显示 连接器 pod 可以连接到 监听程序 pod,但后续 连接器 pod 会一直处于 侦听 阶段。

1.31.2. 解决问题: Submariner 端到端数据平面测试失败

最大传输单元(MTU)可能会导致端到端数据平面测试失败。例如,MTU 可能会导致互联网协议安全(IPsec) 的集群间通信 失败。通过运行使用小数据包大小的端到端数据平面测试来验证 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 clamping 值。例如,运行以下命令,值为 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. 症状:对于裸机集群,Submariner 端到端测试失败

如果容器网络接口(CNI)是 OpenShiftSDN,或者将虚拟可扩展 local-area 网络(VXLAN)用于 集群 隧道,则端到端数据平面测试可能会失败。

1.31.4. 解决问题: 对于裸机集群,Submariner 端到端测试会失败

硬件的用户数据报 Protocal (UDP)校验和计算中存在一个错误,可能是裸机集群的端到端数据平面测试失败的一个根本原因。要排除这个程序错误,请通过应用以下 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

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.