如果master节点的IP已经在apiserver证书允许的列表中就可以直接执行如下命令添加
方法一(推荐):
将ca证书文件上传到secret
kubeadm init phase upload-certs --upload-certs
执行如下命令获取token
kubeadm token create --print-join-command ##创建的token默认有效期只有24小时,如果长期有效可以在后面加上 --ttl 0 通过kubeadm token list 列出所有token 如果不需要了可以通过kubeadm token delete删除token
返回结果,以实际返回为准
在192.168.1.110上执行
kubeadm join 192.168.1.100:8443 --token y51u50.n4kmflg7vddgpc5u --discovery-token-ca-cert-hash sha256:ac8ae2e78305da84cffa828d056472d2f8df5dcb47d604066ab0c525db07aad9 --control-plane --certificate-key 986cdfc8d856eb144a8e041f3f6e880adbf0f8e2bca6700ff265f1279b7a1c83 ##完成之后执行 mkdir -p $HOME/.kube cp -i /etc/kubernetes/admin.conf $HOME/.kube/config chown $(id -u):$(id -g) $HOME/.kube/config
------------------------------------------------------------------------------------------------------------------
方法二:
将192.168.1.110加如到当前master的免密登录列表中
ssh-copy-id 192.168.1.110
再执行如下面命令
newmaster=192.168.1.110 ssh ${newmaster} "cd /root && mkdir -p /etc/kubernetes/pki/etcd && mkdir -p ~/.kube/" scp /etc/kubernetes/pki/{ca,front-proxy-ca}.{crt,key} /etc/kubernetes/pki/sa.{pub,key} ${newmaster}:/etc/kubernetes/pki/ scp /etc/kubernetes/pki/etcd/ca.{crt,key} ${newmaster}:/etc/kubernetes/pki/etcd/ ##获取加入集群的token命令,因为我们取的临时的token,所以为了安全设置5分钟即可 joinconmand=$(kubeadm token create --print-join-command --ttl 5m) ##加入集群 ssh ${newmaster} "$joinconmand --control-plane" ##拷贝kubeconfig文件 ssh ${newmaster} "/bin/cp /etc/kubernetes/admin.conf /root/.kube/config"
新加入的master会自动从kubeadm-config获取apiServer.certSANs列表