如果在启动集群中的第一个 Server 时未提供 Token,则会使用随机密码创建。Server Token 始终以安全格式写入 /var/lib/rancher/k3s/server/token 。
/var/lib/rancher/k3s/server/token
Server Token 可用于将 Server 和 Agent 节点加入集群。一旦创建了集群,它就无法更改,任何有权访问 Server Token 的用户基本上都拥有集群的完全管理员访问权限。因此,你需要小心保管 Token。
Server Token 还用作密钥的 PBKDF2 密码,该密钥用于加密持久保存到数据存储的机密信息,例如 Secret 加密配置、wireguard 密钥,集群 CA 证书的私钥以及 service-account Token。因此,Token 必须与集群数据存储一起备份。
默认情况下,Agent Token 与 Server Token 相同。你可以通过更改集群中所有 Server 上的 CLI 选项或环境变量,在集群启动之前或之后设置 Agent Token。Agent Token 类似于 Server Token,是静态配置的并且不会过期。
Agent Token 以安全格式写入 /var/lib/rancher/k3s/server/agent-token 。如果未指定 Agent Token,则此文件是指向 Server Token 的链接。
/var/lib/rancher/k3s/server/agent-token
k3s token create [token]
创建一个新 Token。 [token] 是要写入的实际 Token,由 k3s token generate 生成。如果没有指定 Token,将生成一个随机 Token。
[token]
k3s token generate
安全格式的 Token(包括集群 CA 哈希)会写入到 stdout。Token 的 secret 部分只显示一次,因此你需要保存此命令的输出。