引言
kube-proxy 目前(v1.17)支持多种工作模式,如:userspace、iptables、ipvs,以及仅在 windows 环境可选的 kernelspace 等。在 linux 环境,未配置 kube-proxy 工作模式的情况下,将优先使用 iptables 模式运行,在不满足 iptables 模式工作条件时,自动回退到 userspace 模式。在 windows 环境,如未配置工作模式,将使用 userspace 模式运行。

ipvs 相比 iptables 提供了更优的性能,那么如何在 linux 环境启用 ipvs 模式呢?

其实很简单,只需要修改 kube-proxy 的启动配置(kube-system/kube-proxy ConfigMap),将 mode 修改为 ipvs 即可:

# kubectl edit cm kube-proxy -n kube-system
mode: “ipvs”
nodePortAddresses: null
oomScoreAdj: null
portRange: “”
— INSERT —
1
2
3
4
5
6
保存配置后,为了保证生效,重启 kube-proxy 服务(其实 kube-proxy 是支持自动重启的,奈何博主实验时并未正常重启,这是一个已知的 bug…)

# kubectl delete pod -l k8s-app=kube-proxy -n kube-system
pod “kube-proxy-j8586” deleted
pod “kube-proxy-pd4pz” deleted
pod “kube-proxy-ttrv8” deleted
1
2
3
4
查看 kube-proxy 启动日志,发现已经启用 ipvs:

如果您在设置后,发现并未成功启用 ipvs,可能是操作系统未达要求的原因,需要在安装缺失的内核模块后重试。笔者实验的操作系统为 CentOS Linux release 7.6.1810 (Core),直接启用 ipvs 即可成功。
————————————————
版权声明:本文为CSDN博主「shida_csdn」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/shida_csdn/article/details/104059222

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注