k8s虽然默认带有ipvs,但是需要手动安装配置
安装:
apt install ipset
apt install ipvsadm
安装后 lsmod | grep ip_vs 查看已经存在
修改kube-proxy配置
kubectl edit configmap kube-proxy -n kube-system
修改文件中的mode
ipvs:
excludeCIDRs: null
minSyncPeriod: 0s
scheduler: ""
strictARP: false
syncPeriod: 0s
tcpFinTimeout: 0s
tcpTimeout: 0s
udpTimeout: 0s
kind: KubeProxyConfiguration
metricsBindAddress: ""
mode: "ipvs" #修改此处
nodePortAddresses: null
重启namespace为kube-system的pod
kubectl delete pod --all -n kube-system
检查是否使用ipvs
kubectl get pod -n kube-system
kubectl logs kube-proxy-jj72c -n kube-system
注意kube-proxy-jj72c使用自己的pod
日志中出现Using ipvs Proxier
查看ipvs代理规则
kubectl get svc --all-namespaces
ipvsadm -ln