K3S集群 固定 agent 节点的注册地址是必须的么

环境信息:
K3s 版本: v1.23.6+k3s1

集群配置: 3 servers ,n+ agents

问题描述:
看到官方架构图,agent节点向server进行注册时,需要通过一个固定地址进行注册(nginx 或 F5)

我注册时没有使用负载,直接指定的某一台server地址进行注册。
在agent节点上:
cat /var/lib/rancher/k3s/agent/etc/k3s-agent-load-balancer.json
{
“ServerURL”: “https://10.196.26.43:6443”,
“ServerAddresses”: [
“10.196.26.43:6443”,
“10.196.26.44:6443”,
“10.196.26.45:6443”
],
“Listener”: null
}
看到了配置中识别了3台server的地址,但ServerURL是注册时的选中的server地址。

请问必须要使用固定地址来注册么,不使用的话带来的问题是什么?

这个固定地址不是必须的,没有这个固定地址也一样会搭建成高可用。

比如你注册 agent 节点的时候,使用的是第一个 server 节点的 IP(10.196.26.43),那么当这个 agent 节点注册成功后会从集群中查询所有的k3s master 节点,然后写入到 ServerAddresses ,当集群中有 master 节点有变化,会自动更新这个参数。

而且,agent 连接到 master 也是通过这个文件做的负载均衡。

个人感觉这个固定注册地址的用处主要是通过 kubectl 或 api 访问 K3s 的时候做高可用使用。

明白了,感谢!