Flannel

Flannel #

https://github.com/flannel-io/flannel

Backends #

Backends

Flannel 可以与几种不同的后端配对。一旦设置,后端不应该在运行时更改。 VXLAN 是推荐的选择。host-gw 推荐给更高级的用户,他们想要性能提升并且其基础设施支持它(通常它不能在云环境中使用)。UDP 仅建议用于调试或非常旧的内核,不支持 VXLAN。

故障排除 #

更多内容参见"Troubleshooting"

性能 #

控制平面 #

Flannel以能够扩展到非常大量的主机而闻名。如果在与新创建的主机中的Pod联系时出现延迟,可能是控制平面存在问题。Flannel对CPU或RAM的需求较低,但首先要检查其是否有足够的资源可用。Flannel还依赖于数据存储的性能,无论是etcd还是Kubernetes API服务器,请检查它们的运行状况。

数据平面 #

Flannel依赖于底层网络,因此,如果看到数据平面性能不佳,首先应检查网络。

有两个与Flannel相关的选择可能会对性能产生重大影响:

  1. 后端类型(backend type)。例如,如果使用封装(encapsulation),vxlan的性能始终优于udp。为了获得最大的数据平面性能,应避免使用封装(encapsulation)。
  2. MTU的大小可能会产生很大影响。为了获得最大的原始带宽,应使用支持较大MTU的网络。Flannel将MTU设置写入subnet.env文件,该文件由Docker守护进程或CNI Flannel插件读取,后者负责为每个容器配置网络。故障排除时,首先确保Flannel使用的网络接口具有正确的MTU。然后,检查正确的MTU是否已写入subnet.env文件。最后,检查容器的虚拟以太网设备是否具有正确的MTU。

防火墙 #

在使用UDP backend时,Flannel使用UDP端口8285来发送封装数据包。

在使用VXLAN backend时,内核使用UDP端口8472来发送封装数据包。

确保防火墙规则允许所有参与叠加网络的主机之间的流量。

确保防火墙规则允许来自Pod网络CIDR的流量访问Kubernetes主节点。

Archives #

© 2024 青蛙小白 | 总访问量 | 总访客数