在使用k8s集群中,我们往往需要添加新的节点,比如当节点资源不够用的情况下,我们可以通过kubeadm来添加新的节点。
前提
添加新节点必须保证节点要安装基础的docker kubeadm 等环境。以及一些基础配置请查看我的博文K8S集群搭建
kubeadm 查看添加命令
一般我们通过kubeadm 来搭建K8S集群环境(这种方式比较快速方便)。主要步骤是通过kubeadm初始化master节点后,会提示添加节点的过程以及命令。其实我们也可以通过kubeadm来查看添加新节点的命令
kubeadm token create --print-join-command
得到命令后再需要添加到集群中的k8s节点机器中执行即可
kubeadm join 192.168.3.5:6443 --token 1rj6sy.5bh7v47d3e115rq6 --discovery-token-ca-cert-hash sha256:8e83bd560d687ca4885cfc38e47708306a606b236b2cca4baca300a422b6648c
执行过程中可能会遇到问题,还需要认证看日志。如果提示配置文件存在,可以在计算节点中执行kubeadm reset --v=5命令。
kubeadm reset --v=5
token过期问题
一般来说,在master节点初始化完成后,生成token一般24小时后回过期,此时我们需要生成新的token来添加集群节点。
创建新的token
#查看token列表
kubeadm token list
#创建一个新的token
kubeadm token create
获取ca证书sha256编码hash值
[root@k8s-master ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
执行添加节点命令
kubeadm join 192.168.6.190:6443 --token ty8a90.l4shqmrypvx1xmqz \
--discovery-token-ca-cert-hash sha256:91ca783858fbe9806560e8253ec47fe734addba3c8ee64ddbeace077a5101aee
-
注意以上命令参数--token 是通过 kubeadm token create创建是输出的授权码,当然我们也可以通过 kubeadm token list来查看token。
-
--discovery-token-ca-cert-hash 是我们获取ca证书sha256编码的hash值