当我运行kubeadm init
时,它会显示一个令牌,我应该使用其他主机连接到此主机。该令牌存储在哪里?我试图通过在Terraform中添加kubeadm来找出更多自动化方法。
谢谢你的帮助!
--token
默认情况下,kubeadm init会自动生成用于初始化每个新节点的令牌。如果要手动指定此标记,可以使用--token标志。标记的格式必须为“<6个字符串>。<16个字符串>”。
您可以使用命令在主节点上查看令牌值:
cat /etc/kubernetes/pki/tokens.csv
可以找到Kubernetes 1.9.x(及以上)的说明here。
我使用的命令是:
kubeadm token generate
kubeadm token create <generated-token> --print-join-command --ttl=0
在主节点中运行此命令以获取令牌
kubeadm token list
kubectl -n kube-system get secret clusterinfo -o yaml | grep token-map | awk '{print $2}' | base64 -d | sed "s|{||g;s|}||g;s|:|.|g;s/\"//g;" | xargs echo
避免创建新令牌的最佳方法是 -
kubeadm list
kubeadm token create <copied token from previous command output>** --print-join-command
您将获得JOIN命令在任何物理/虚拟机上运行以加入kubernetes集群....
尝试按照以下命令创建新的,因为初始令牌仅在24小时内有效。
kubeadm token create --ttl=0
这里ttl = 0表示生成的令牌永不过期。
然后根据以下命令加入节点:
kubeadm join <generated_token>
如果您在验证ca hash时遇到任何错误,请按以下方式加入:
kubeadm join <generated_token> --discovery-token-unsafe-skip-ca-verification