环境信息:
K3s 版本:
k3s version v1.20.12+k3s1
节点 CPU 架构、操作系统和版本::
Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
集群配置:
1 server 1 agent
问题描述:
k3s 中创建了service,用于集群内调用。请求为资源敏感型,压测发现,不同pod请求量偏差加大。
ksd
2
这个和 K3s 没什么关系,可以百度或 google 下 K8s service 负载不均衡的原因。
1 个赞
该问题是因为安装k3s的时候,没有指定kube-proxy的代理模式,默认是iptables,iptables模式下,是随机选择后端pod(更多kube-proxy代理模式可自行搜索)。需要改为ipvs,选择轮询(rr)算法,才能做到平均分配流量。
解决方案:
方案1. 创建集群时,指定「–kube-proxy-arg=proxy-mode=ipvs」
curl -sfL http://rancher-mirror.cnrancher.com/k3s/k3s-install.sh | \
INSTALL_K3S_MIRROR=cn \
INSTALL_K3S_EXEC='--kube-proxy-arg=proxy-mode=ipvs' \
sh -
方案2. 已有集群,可以通过修改k3s的配置文件 /etc/systemd/system/k3s.service:
ExecStart=/usr/local/bin/k3s \
server \
'--kube-proxy-arg=proxy-mode=ipvs' \
systemctl daemon-reload
systemctl restart k3s
1 个赞