Kubernetes 在初始化令牌过期后加入群集?

Kubernetes 在初始化令牌过期后加入群集?,kubernetes,Kubernetes,几天前,我创建了一个Kubernetes集群,其中有一个主节点和一个工作节点。现在我想向集群添加另一个节点,但是由主节点上原始“kubeadm init”打印的令牌已经过期(默认情况下,24小时后) “kubeadm join”命令有一个--discovery文件。它需要一个配置文件,我已经尝试了我在这里找到的格式: 我错过了什么 在我的情况下,什么程序才有效?我不希望拆下群集并再次加入。创建一个新的引导令牌并加入 使用kubeadm-token-create创建新的引导令牌,请参阅 注意:—

几天前,我创建了一个Kubernetes集群,其中有一个主节点和一个工作节点。现在我想向集群添加另一个节点,但是由主节点上原始“kubeadm init”打印的令牌已经过期(默认情况下,24小时后)

“kubeadm join”命令有一个--discovery文件。它需要一个配置文件,我已经尝试了我在这里找到的格式:

我错过了什么

在我的情况下,什么程序才有效?我不希望拆下群集并再次加入。

创建一个新的引导令牌并加入 使用
kubeadm-token-create
创建新的引导令牌,请参阅

注意:
——在Kubernetes 1.8及更高版本中,优先使用发现令牌ca证书哈希

(可选)使用发现文件建立信任
--发现文件
提供了一种带外方式来建立 主节点和引导节点之间的信任

如果要构建自动资源调配,请考虑使用此模式 使用kubeadm

发现文件没有提供有效的令牌,因此我们仍然需要
kubeadm-token-create
来创建一个新的令牌

kubeadm join --token abcdef.1234567890abcdef --discovery-file a.conf

感谢@silverfox的回答,但是手动键入这些命令仍然有点痛苦,所以我构建了下面的命令来帮助我快速完成这些任务

此命令将创建令牌并生成加入命令:

echo sudo kubeadm join$(kubeadm config view | grep^ controlPlaneEndpoint | awk'{print$2}')--令牌$(kubeadm令牌创建)--发现令牌ca证书哈希sha256:$(openssl x509-pubkey-in/etc/kubernetes/pki/ca.crt | openssl rsa-pubin-outform der 2>/dev/null | openssl dgst-sha256-hex | sed's/.*/'))

我所知道的将新节点加入现有集群的最简单方法是

kubeadm token create --print-join-command
这将产生这样的输出

kubeadm join 192.168.10.15:6443 --token l946pz.6fv0XXXXX8zry --discovery-token-ca-cert-hash sha256:e1e6XXXXXXXXXXXX9ff2aa46bf003419e8b508686af8597XXXXXXXXXXXXXXXXXXX

我在这里记录了这个过程:请详细说明如何处理生成的引导令牌,特别是当与OP要求的--discovery文件一起使用时。这个方法起作用了,我得到了join命令来添加工作节点
kubeadm join --token abcdef.1234567890abcdef --discovery-file a.conf
kubeadm token create --print-join-command
kubeadm join 192.168.10.15:6443 --token l946pz.6fv0XXXXX8zry --discovery-token-ca-cert-hash sha256:e1e6XXXXXXXXXXXX9ff2aa46bf003419e8b508686af8597XXXXXXXXXXXXXXXXXXX