【发布时间】:2021-06-23 21:12:51
【问题描述】:
我知道 kube-proxy 可以在 iptables 或 ipvs 模式下运行。此外,calico 设置了 iptables 规则。
但是 calico iptables 规则是否仅在 kube 代理在 iptables 模式下运行时安装,或者这些 iptables 规则安装时与 kube-proxy 模式无关?
【问题讨论】:
标签: kubernetes iptables calico
我知道 kube-proxy 可以在 iptables 或 ipvs 模式下运行。此外,calico 设置了 iptables 规则。
但是 calico iptables 规则是否仅在 kube 代理在 iptables 模式下运行时安装,或者这些 iptables 规则安装时与 kube-proxy 模式无关?
【问题讨论】:
标签: kubernetes iptables calico
如果 Calico 检测到,则会自动激活 Calico ipvs 支持 kube-proxy 正在该模式下运行。
【讨论】:
The short answer is yes - Calico 支持 IPVS kube-proxy 模式:
如果 Calico 检测到 kube-proxy 正在该模式下运行,则会自动激活 Calico ipvs 支持。
另外:
Calico 会在部署 Calico 后检测您是否更改了
kube-proxy的代理模式。在将kube-proxy代理模式更改为ipvs之前,任何 Kubernetes 的ipvs特定配置都需要为 configured
但是,正如您所注意到的,kube-proxy 可以在 iptables 或 ipvs 模式下运行。见iptables和ipvs mode之间的comparison:
IPVS 是专为负载平衡而设计的 Linux 内核功能。在 IPVS 模式下,kube-proxy 对 IPVS 负载均衡器进行编程,而不是使用 iptables。 此外,作为专用的负载均衡器,IPVS 拥有多种不同的调度算法,如循环、最短预期延迟、最少连接和各种散列方法。相比之下,iptables 中的 kube-proxy 使用的是随机等价选择算法。
与 iptables 模式相比,ipvs 模式将提供性能。但是,有一些限制:
- Calico 需要额外的 iptables 数据包标记位来跟踪通过 IPVS 的数据包。
- 必须使用分配给 Kubernetes NodePorts 的端口范围配置 Calico。如果服务使用超出预期 Calico 范围的 NodePort,Calico 会将这些端口的流量视为主机流量,而不是它们的流量。
Here你可以找到指南,如何使用IPVS kube-proxy。如果您选择使用此模式,Calico 会自动切换到此模式。
【讨论】: