K3s配置文件如何配置kube-proxy-arg多个配置项

环境信息:
K3s 版本:

[root@k8s-node-3 ~]# k3s -v
k3s version v1.23.6+k3s1 (418c3fa8)
go version go1.17.5
[root@k8s-node-3 ~]#

节点 CPU 架构、操作系统和版本::

[root@k8s-node-3 ~]# uname -a
Linux k8s-node-3 4.18.16-1.el7.elrepo.x86_64 #1 SMP Sat Oct 20 12:52:50 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux
[root@k8s-node-3 ~]#

集群配置:
1 servers

问题描述:
kube-proxy-arg如何在/etc/rancher/k3s/config.yaml添加多个参数?
kube-proxy-arg: proxy-mode=ipvs,masquerade-all=true 的方式不正确

复现步骤:

  • 安装 K3s 的命令:
    安装方式如下
mkdir -p  /etc/rancher/k3s/
cat > /etc/rancher/k3s/config.yaml <<EOF
write-kubeconfig-mode: 644
write-kubeconfig: /root/.kube/config
token: "token-12345"
cluster-cidr: 192.168.0.0/16
service-cidr: 172.18.0.0/16
kubelet-arg: eviction-hard=imagefs.available<25%,memory.available<25%,nodefs.available<25%
kube-proxy-arg: proxy-mode=ipvs
EOF
 

K3S_CONFIG_FILE=/etc/rancher/k3s/config.yaml  curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -

可以正常安装启动
如果修改配置文件把kube-proxy-arg: proxy-mode=ipvs 改成kube-proxy-arg: proxy-mode=ipvs,masquerade-all=true
重启k3s服务就无法启动

附加上下文/日志:

/var/log/messages日志提示如下

Error: failed validate: KubeProxyConfiguration.Mode.ProxyMode: Invalid value: "ipvs masquerade-all=true": must be iptables,ipvs,userspace or blank (blank means the best-available proxy [currently iptables])

可以尝试以下这种形式配置:

kube-proxy-arg:
- proxy-mode=ipvs
- masquerade-all=true

非常有用,问题解决