1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| #!/usr/bin/env bash
# # 脚本名称: get_token.sh # 脚本功能: 获取加入节点命令信息 #
# 生成token #kubeadm token create|awk '{print $1}'|tail -n 1 # 获取token #Token=$(kubeadm token list|awk '{print $1}'|tail -n 1) Token=$(kubeadm token create|awk '{print $1}'|tail -n 1) # 获取masterUrl masterUrl=$(kubectl cluster-info|grep master |awk -F"https://" '{print $2}') # 显示token echo "Token=${Token}"
if [ ! -f /etc/kubernetes/pki/ca.crt ];then echo "not find /etc/kubernetes/pki/ca.crt , Please Check!" exit fi # 生成密钥 Pubkey=$(openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //')
certificate_key=$(kubeadm init phase upload-certs --upload-certs|awk '{print $1}'|tail -n 1)
# 返回信息 # 返回信息 echo "添加control-plane命令" echo "kubeadm join ${masterUrl} --token ${Token} \\ --discovery-token-ca-cert-hash sha256:${Pubkey} \\ --control-plane --certificate-key ${certificate_key}" echo "添加node命令" echo "kubeadm join ${masterUrl} --token ${Token} \\ --discovery-token-ca-cert-hash sha256:${Pubkey}" exit
|