centos8版本(linux内核版本高于3.13)采用了nftables而不是iptables做数据包的转发,所以使用默认的iptables方式可能会出现错误。需要修改集群配置,修改集群配置文件为如下形势:
kubeproxy: extra_args: # 默认使用iptables进行数据转发 proxy-mode: "ipvs" # 如果要启用ipvs,则此处设置为`ipvs` extra_binds: - "/lib/modules:/lib/modules"
此外还要在每台宿主机执行如下操作:
yum install ipset ipvsadm -y mkdir -p /opt/ipvs-k8s/ cat > /opt/ipvs-k8s/ipvs.sh <<EOF #!/bin/bash modprobe -- ip_vs modprobe -- ip_vs_sh modprobe -- ip_vs_rr modprobe -- ip_vs_wrr modprobe -- nf_conntrack_ipv4 EOF chmod +x /opt/ipvs-k8s/ipvs.sh echo "/opt/ipvs-k8s/ipvs.sh" >> /etc/rc.d/rc.local chmox +x /etc/rc.d/rc.local