UDP 数据包在简单的 Kubernetes 设置中顺序错误

问题描述 投票:0回答:0

我发现 UDP 数据包以错误的顺序从我的 pod 中传出。

当在 pod 的容器内使用 tshark 时(通过 kubernetes 仪表板并使用“exec”)在容器上

eth0
界面:

  • 我看到一些 UDP 数据包以错误的顺序发送(例如:1-2-10-11-12-3-4-5-6-7 ...)。
  • 这偶尔会发生。
  • 这是有问题的,因为这些数据包携带顺序相关信息。

例如,当在我的一个 pod 中使用

ffmpeg
命令通过 UDP 将视频文件发送到服务时,我遇到了问题。使用另一个程序而不是
ffmpeg
我仍然遇到同样的问题。它似乎不是来自应用程序本身。

相同的应用程序(

ffmpeg
,自定义应用程序,...)在集群外部使用 docker 或运行二进制文件时运行良好。这里没有 UDP 数据包以错误的顺序发送。

当我尝试将 UDP 数据包从一个容器发送到同一 pod 中的另一个容器时,我仍然遇到同样的问题。

我尝试了 4 种不同类型的机器/设置,结果相似:

  • 2 x 英特尔® NUC 套件 NUC8i7BEH(英特尔酷睿 i7-8559U @ 2.70GHz,32GB 内存):
    • 与地形一起部署
    • Rke集群(基于容器)
    • 容器运行时:dockerd
  • 2 x 英特尔® NUC 套件 NUC8i7BEH(英特尔酷睿 i7-8559U @ 2.70GHz,32GB 内存):
    • 使用 kubadm 部署
    • 网络插件(cni):calico
    • 容器运行时:crio
  • 3 x 旧的超微刀片服务器(Pentium 4 3Ghz,每台 2GB 内存):
    • 使用 kubadm 部署
    • 网络插件(cni):calico
    • 容器运行时:containerd
  • 3 x VM(每个 Intel(R) Xeon(R) Gold 5218R CPU @ 2.10GHz 12 个内核):
    • 使用 kubadm 部署
    • 网络插件(cni):calico
    • 容器运行时:crio

所有设置都使用有线以太网连接。

我应该怎么做才能保证我的 UDP 数据包在 Kubernetes 中从我的容器中出来时总是以正确的顺序发送?是否需要对集群进行网络配置?

kubernetes networking udp
© www.soinside.com 2019 - 2024. All rights reserved.