kubernetes:用kubeadm管理token(kubernetes 1.18.3)


一,token的用途:

1,token是node節點用來連接master節點的令牌字串,

    它和ca證書的hash值是把一台node節點加入到kubernetes集群時要使用的憑證

2, 通過kubeadm初始化后,都會提供node加入的token
    默認生成的token的有效期為24小時,當過期之后,該token即不可用
    這時我們可以用kubeadm來重新生成token
 

說明:劉宏締的架構森林是一個專注架構的博客,地址:https://www.cnblogs.com/architectforest

         對應的源碼可以訪問這里獲取: https://github.com/liuhongdi/

說明:作者:劉宏締 郵箱: 371125307@qq.com

 

二,用kubeadm管理token的例子:

1,列出所有的token
[root@kubemaster ~]# kubeadm token list
 
2,查看用kubeadm管理token的幫助信息
[root@kubemaster ~]# kubeadm token -h
查看token的create命令的幫助
[root@kubemaster ~]# kubeadm token create -h

 

3,創建一個token
[root@kubemaster ~]# kubeadm token create
W0618 14:46:52.793862   96998 configset.go:202] WARNING: kubeadm cannot validate component configs 
for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] 0bawqm.38quzatonv75y6sr

 

查看已創建的token
[root@kubemaster ~]# kubeadm token list
TOKEN                     TTL  EXPIRES                     USAGES                   DESCRIPTION   EXTRA GROUPS
0bawqm.38quzatonv75y6sr   23h  2020-06-19T14:46:52+08:00   authentication,signing   <none>        system:bootstrappers:kubeadm:default-node-token
說明:可以看到:新生成token的默認過期時間是24小時
 
4,生成一個沒有過期時間(永不過期)的token
#--ttl 0: 表示ttl沒有過期時間
[root@kubemaster ~]# kubeadm token create --ttl 0
W0618 14:56:19.710949  105283 configset.go:202] WARNING: kubeadm cannot validate component configs 
for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] w56985.fiboh9v8vjqw2lap
查看已創建的token
[root@kubemaster ~]# kubeadm token list
TOKEN                     TTL      EXPIRES                   USAGES                   DESCRIPTION EXTRA GROUPS
0bawqm.38quzatonv75y6sr   23h      2020-06-19T14:46:52+08:00 authentication,signing   <none>      system:bootstrappers:kubeadm:default-node-token
w56985.fiboh9v8vjqw2lap   <forever><never>                   authentication,signing   <none>      system:bootstrappers:kubeadm:default-node-token

 

5,刪除一個token
[root@kubemaster ~]# kubeadm token delete w56985.fiboh9v8vjqw2lap
bootstrap token "w56985” deleted
 
用list查看
[root@kubemaster ~]# kubeadm token list
TOKEN                   TTL  EXPIRES                   USAGES                 DESCRIPTION EXTRA GROUPS
0bawqm.38quzatonv75y6sr 23h  2020-06-19T14:46:52+08:00 authentication,signing <none>      system:bootstrappers:kubeadm:default-node-token 
已成功刪除
 
6,一步生成新增集群節點的命令:
#--print-join-command:直接生成kubeadm的join命令 
[root@kubemaster ~]# kubeadm token create --print-join-command
W0618 15:07:30.243762  115106 configset.go:202] WARNING: kubeadm cannot validate component configs 
for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io] kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens \
--discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73

 

三,手動得到ca證書的hash值:

#-sha256:指定使用-sha256安全散列算法
[root@kubemaster ~]# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 -hex | sed 's/^.* //'
c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73
 
節點加入集群的命令形如:
kubeadm join 192.168.219.130:6443 --token cts238.khb7z4qwu1h6iens     \
--discovery-token-ca-cert-hash sha256:c718e29ccb1883715489a3fdf53dd810a7764ad038c50fd62a2246344a4d9a73

 

四,查看kubernetes的版本

[root@kubemaster ~]# kubelet --version
Kubernetes v1.18.3
[root@kubemaster ~]# kubeadm version
kubeadm version: &version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.3", GitCommit:"2e7996e3e2712684bc73f0dec0200d64eec7fe40",
GitTreeState:"clean", BuildDate:"2020-05-20T12:49:29Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64”}

 

五,查看linux的版本

[root@kubemaster ~]# cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
[root@kubemaster ~]# uname -r
4.18.0-193.el8.x86_64

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM