初始化 master 后找不到 kubeadm 令牌

Can't find kubeadm token after initializing master

当我 运行 kubeadm init 它显示一个令牌,我应该从其他主机使用它来连接到该主机。该令牌存储在哪里?我试图通过在 Terraform 中添加 kubeadm 来找出更多的自动化方法。

感谢您的帮助!

--token

By default, kubeadm init automatically generates the token used to initialise each new node. If you would like to manually specify this token, you can use the --token flag. The token must be of the format ‘<6 character string>.<16 character string>’.

您可以使用命令查看主节点上的令牌值:

cat /etc/kubernetes/pki/tokens.csv
kubectl -n kube-system get secret clusterinfo -o yaml | grep token-map | awk '{print }' | base64 -d | sed "s|{||g;s|}||g;s|:|.|g;s/\"//g;" | xargs echo

运行在master节点获取token的这条命令

kubeadm token list

Kubernetes 1.9.x(及更高版本)的说明可在 here.

中找到

我使用的命令是:

kubeadm token generate
kubeadm token create <generated-token> --print-join-command --ttl=0

尝试按照以下命令创建新的,因为初始令牌仅在 24 小时内有效。

kubeadm token create  --ttl=0

这里ttl=0表示生成的token永不过期

然后按照以下命令加入节点:

kubeadm join <generated_token>

如果您在验证 ca 哈希时遇到任何错误,请按照以下方式加入:

kubeadm join <generated_token> --discovery-token-unsafe-skip-ca-verification

避免创建新令牌的最佳方法是 -

  1. kubeadm token list
  2. kubeadm token create <copied token from previous command output>** --print-join-command

您将在任何 physical/vitual 机器上获得 运行 的 JOIN 命令以加入 kubernetes 集群....

使用这个命令:$ sudo kubeadm token list

不过,如果您没有得到,请使用以下命令

$ sudo kubeadm reset
$ sudo kubeadm init