kubernetes中token过期的处理办法

我们在使用kubeadm部署kubernetes集群时,为了安全问题的考虑,默认生成的token的有效期是24小时,过期将失效,不过也可以在初始化master节点的时候通过指定--ttl的值为0来强制生成一个永不过期的token(不推荐)。
为什么会分享这篇文章呢?是因为我在部署k8s集群的时候,步骤进行到刚把第一台master节点初始化完成,需要进行worker节点的加入时,由于要处理一个紧急的生产业务问题,然后就随手关闭了终端,导致初始化完成后回显的提示信息“丢失”。所以将处理此问题的过程形成了此文档加以记录。
下面我就分为以下两种情况进行简单介绍:
1. 类似于我上面的操作:关闭了终端窗口,或者这条命令在后续给忘记了,worker节点还没有开始执行.
2. token过期.
# 查看token
root@master:~# kubeadm token list
# 生成一个永不过期的token
root@master:~# kubeadm token create --ttl 0
r089pu.3pjmew8vrv9mimty
root@master:~# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
abcdef.0123456789abcdef 23h 2023-09-07T15:59:13Z authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
r089pu.3pjmew8vrv9mimty <forever> <never> authentication,signing <none> system:bootstrappers:kubeadm:default-node-toke
由于在创建token的时候指定了ttl的值为0,可以看到新生成的token的有效期就变成了永久。
我们在对master节点进行初始化后,正常的情况下,都可以看到如下一些内容,即让worker nodes节点加入的方法:
kubeadm join 172.19.53.150:6443 --token abcdef.0123456789abcdef \
--discovery-token-ca-cert-hash sha256:2c062e93ff47d023801c8ab8a16d46c323e2977e54f7ed0de1a76b778dfe9589
我们来分解上面这条命令的组成:
172.19.53.150:6443:指定apiserver的地址及端口,也就是master节点或者是control-plane-endpoint的域名或者地址及端口。
--token:指定token值
--discovery-token-ca-cert-hash:这个和kubernetes的CA证书有关系。后面会讲如何获取。
## 忘记token的处理办法(token未过期)
1. 查看token值:
root@master:~# kubeadm token list
TOKEN TTL EXPIRES USAGES DESCRIPTION EXTRA GROUPS
abcdef.0123456789abcdef 23h 2023-09-07T15:59:13Z authentication,signing <none> system:bootstrappers:kubeadm:default-node-token
这里获取到的token值为:abcdef.0123456789abcdef
2. 获取ca证书sha256编码hash值(只适用于适用kubeadm方式部署的集群)
root@master:~# openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outfo
kubernetes中token过期的处理办法
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



