向K8S集群内增加新节点
我们在对master节点进行初始化后,会提示如下信息,让worker nodes节点加入集群的方法:
Then you can join any number of worker nodes by running the following on each as root:
kubeadm join 192.18.106.87:6443 --token r6pcfk.ak6bm89c3sbm5lp4
–discovery-token-ca-cert-hash sha256:0cd98b24ec444c83f9be3ccf2d043040808ece28721ce5a66ce72a1440b9f2d2
如果丢失了上面的命令信息,该如何处理呢?首先我们分析一下,这条命令的组成
第一部分:是指定jion加入的主机及端口,这里为 192.18.106.87:6443 , 这个就是master节点的IP地址+固定的端口
第二部分:需要指定token值,这个值,我们可以通过如下命令的TOKEN字段得到(默认情况下Token的有效期为24小时):
[root@k8s-master qq-5201351]# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
r6pcfk.ak6bm89c3sbm5lp4 21h 2023-05-17T03:17:40Z authentication,signing The default bootstrap token generated by 'kubeadm init'. system:bootstrappers:kubeadm:default-node-token
第三部分:这个与的kubernetes的CA 证书有关系,可以通过如下方式获得其sha256值
[root@k8s-master qq-5201351]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
0cd98b24ec444c83f9be3ccf2d043040808ece28721ce5a66ce72a1440b9f2d2
最后将三部分的值进行组合,形成最初的让nodes节点加入的命令:
kubeadm join 192.18.106.87:6443 --token r6pcfk.ak6bm89c3sbm5lp4 \
--discovery-token-ca-cert-hash sha256:0cd98b24ec444c83f9be3ccf2d043040808ece28721ce5a66ce72a1440b9f2d2
注意:这个命令有效的前提,是需要保证Token值还没有过期