天天看點

kubeadm join 使用的 token 過期之後,如何加入叢集

在 k8s 1.8 之後,預設生成的 token 有效期隻有 24 小時,之後就無效了。if you require a non-expiring token use

--token-ttl 0

在初始化叢集之後如果 token 過期一般分一下幾部重新加入叢集。

  • 重新生成新的 token
$ kubeadm token create
m9rrtc.2cm48k5w6ymsprwt

$ kubeadm token list
TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION   EXTRA GROUPS
m9rrtc.2cm48k5w6ymsprwt   23h       2019-05-07T02:55:17-04:00   authentication,signing   <none>        system:bootstrappers:kubeadm:default-node-token
           
  • 擷取 CA 證書 sha256 編碼 hash 值
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
4a77cfd6f9e2a16a7a45351369275f102b9986b469d3f9f9865a87050e4bf0dc
           
  • 新節點加入叢集
# --skip-preflight-checks 跳過與檢查(可選)
$ kubeadm join ip:port --token m9rrtc.2cm48k5w6ymsprwt --discovery-token-ca-cert-hash sha256:4a77cfd6f9e2a16a7a45351369275f102b9986b469d3f9f9865a87050e4bf0dc