k 8 sクラスタ内のノードがtokenパスワードを忘れた解決策

2111 ワード

導入時にtokenパスワードを忘れたらどうしますか?
まず、各ノードでkubeadm resetコマンドを実行すると、token(flannerネットワークコンポーネントを再インストールする必要がある)を再取得します.k 8 sクラスタをリセットする方法については、kubernetesクラスタをリセットする方法を参照してください.
1.新しいtokenを再生成するデフォルトtokenの有効期間は24時間で、期限が切れた後、このtokenは使用できなくなり、masterノードでkubeadm token createを実行します.
$ kubeadm token create
c9afga.w3fue0yh3gzxczic

tokenの表示
$ kubeadm token list
TOKEN                     TTL       EXPIRES                     USAGES                   DESCRIPTION   EXTRA GROUPS
c9afga.w3fue0yh3gzxczic   23h       2019-07-26T14:30:54+08:00   authentication,signing   <none>        system:bootstrappers:kubeadm:default-node-token
  

2.ca証明書sha 256符号化hash値の取得
$ openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
8b79b6461e58c07333cb2851fe74fd4374af8bbbe0bf7e040b415b86ad4fb89d

3.ノードがクラスタに参加する前に環境をクリーンアップしてからkubeadm join(Nodeノードで実行)
$ kubeadm reset

$ kubeadm join 192.168.38.11:6443 --token c9afga.w3fue0yh3gzxczic \
   --discovery-token-ca-cert-hash sha256:8b79b6461e58c07333cb2851fe74fd4374af8bbbe0bf7e040b415b86ad4fb89d

4.再確認
[root@k8s-master~]# kubectl get nodes
NAME         STATUS   ROLES    AGE    VERSION
k8s-master   Ready    master   4d8h   v1.14.1
k8s-node1    Ready    <none>   4d8h   v1.14.1
k8s-node2    Ready    <none>   4d8h   v1.14.1

方法は比較的簡単であるが,操作が多い.