You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

k3s-ansible搭建K8s集群多节点不同ansible_user报错如何解决

问题根因

你遇到的token变量缺失报错,本质是master节点部署任务完全未执行成功,k3s server未完成初始化,自然不会生成对应的token存储到主机变量中,worker节点尝试获取master节点的token时就会抛出未定义错误。从执行日志的PLAY RECAP也能验证这点:master节点的ok值为0,说明没有任何任务执行成功。
而导致该问题的根源是你在inventory中直接将用户名写入主机地址(pi@x.x.x.x)的不规范写法,结合全局ansible_user配置冲突,最终引发主机变量索引异常、master节点部署失败。

解决步骤

1. 修正inventory配置

不要将ssh用户名直接拼接在主机IP前,改为按组/按主机单独指定ansible_user变量,同时删除all.yml中全局的ansible_user: antonis配置,避免全局值覆盖分组配置。
修改后的hosts.ini参考:

[master]
192.168.xxx.xxx ansible_user=antonis

[node]
192.168.xxx.xxx ansible_user=pi
192.168.xxx.xxx ansible_user=pi

[k3s_cluster:children]
master
node

如果节点数量多,也可以用分组变量简化配置:

  • 新建inventory/my-cluster/group_vars/master.yml,写入ansible_user: antonis
  • 新建inventory/my-cluster/group_vars/node.yml,写入ansible_user: pi
  • 此时hosts.ini里不需要每个主机单独加ansible_user变量,保持纯IP即可

2. 清理之前部署的残留文件

之前执行了一半的部署会留下残留配置,需要先清理避免后续部署异常:

  • 在master节点执行命令:sudo /usr/local/bin/k3s-uninstall.sh
  • 在两个worker节点执行命令:sudo /usr/local/bin/k3s-agent-uninstall.sh

3. 重新执行部署

执行以下命令启动集群部署:
ansible-playbook site.yml -i inventory/my-cluster/hosts.ini

内容的提问来源于stack exchange,提问作者e7lT2P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.11 21:36:01