kubernetes token过期生成永久过程

 更新时间:2025年12月22日 09:14:37   作者:sxpnp  
本文介绍了如何生成、查看和更新JWT(JSON Web Token),包括生成带有过期时间的token,以及如何更新token以重新加入node

写在前面:如有问题,以你为准,

查看 token

kubeadm token list 查看过期时间和token,初始化的token是一天时长

详细查看

# 查看token密钥
[root@master k8s]# kubectl get secrets -n kube-system
NAME                     TYPE                            DATA   AGE
bootstrap-token-h3j3ns   bootstrap.kubernetes.io/token   7      168m
# 其他插件的日志与token密钥
[root@master k8s]# kubectl get secrets -A
NAMESPACE          NAME                     TYPE                            DATA   AGE
calico-apiserver   calico-apiserver-certs   Opaque                          2      120m
calico-system      node-certs               Opaque                          2      154m
calico-system      typha-certs              Opaque                          2      154m
kube-system        bootstrap-token-h3j3ns   bootstrap.kubernetes.io/token   7      169m
tigera-operator    calico-apiserver-certs   Opaque                          2      120m
tigera-operator    node-certs               Opaque                          2      154m
tigera-operator    tigera-ca-private        Opaque                          2      154m
tigera-operator    typha-certs              Opaque                          2      154m
[root@master k8s]# kubectl get secrets -n kube-system bootstrap-token-h3j3ns -oyaml
apiVersion: v1
data:
  auth-extra-groups: c3lzdGVtOmJvb3RzdHJhcHBlcnM6a3ViZWFkbTpkZWZhdWx0LW5vZGUtdG9rZW4=
  description: VGhlIGRlZmF1bHQgYm9vdHN0cmFwIHRva2VuIGdlbmVyYXRlZCBieSAna3ViZWFkbSBpbml0Jy4=
  expiration: MjAyMy0wMi0wM1QxMjoxMToxM1o=
  token-id: aDNqM25z
  token-secret: bmI5eGwycDV6MW1uYTB4eA==
  usage-bootstrap-authentication: dHJ1ZQ==
  usage-bootstrap-signing: dHJ1ZQ==
kind: Secret
metadata:
  creationTimestamp: "2023-02-02T12:11:13Z"
  name: bootstrap-token-h3j3ns
  namespace: kube-system
  resourceVersion: "209"
  uid: 26807d30-dcfd-4034-a658-820f7a0c842f
type: bootstrap.kubernetes.io/token

expiration 字段是其过期时间,base64加密

[root@master k8s]# echo "MjAyMy0wMi0wM1QxMjoxMToxM1o=" | base64 --decode
2023-02-03T12:11:13Z
# 可以看到是 2023年 2月 3日 12点过期

生成 token

#删除现有token
[root@master k8s]# kubectl delete secrets -n kube-system bootstrap-token-h3j3ns
secret "bootstrap-token-h3j3ns" deleted
# 生产 node 节点 token
[root@master k8s]# kubeadm token create --print-join-command --cri-socket unix:///var/run/cri-dockerd.sock
kubeadm join 192.168.100.53:6443 --token 5h02s0.n7htz6mfdlg8kh40 --discovery-token-ca-cert-hash sha256:7f81fa35fc8f5d8640a167634df99d7f6998c28e996748f16ee86f422641119a 
#  注意如果是1.20以上版本要加上这个才能使用 --cri-socket unix:///var/run/cri-dockerd.sock

生成 master 的 token

[root@master k8s]# kubeadm token create --print-join-command
kubeadm join 192.168.100.53:6443 --token 5h02s0.n7htz6mfdlg8kh40 --discovery-token-ca-cert-hash sha256:7f81fa35fc8f5d8640a167634df99d7f6998c28e996748f16ee86f422641119a

[root@master k8s]# kubeadm init phase upload-certs --upload-certs
[upload-certs] Using certificate key:
6d7089e97b8c96ac7ad478173c7928e5becdf1faed85ccd2d4654b8dc514fc32
# 将certificate key,与上面的进行拼接,得出如下

kubeadm join 10.136.17.12:6443 --token abcdef.0123456789abcdef \
    --discovery-token-ca-cert-hash sha256:2fbacdf6a9473d5da1d98900f73cxxx772b12ac99017d6ae756d8c3cc \
    --control-plane --certificate-key f0725584c26c192478d266c4dc5804a1ss5d7b40257837eea0676d1972cca
    
    #  注意如果是1.20以上版本要加上这个才能使用 --cri-socket unix:///var/run/cri-dockerd.sock

永久 token

--ttl 0 参数
[root@master k8s]# kubeadm token create --print-join-command  --ttl 0
kubeadm join 192.168.100.53:6443 --token 7blbsw.pthel6ipumqnwjza --discovery-token-ca-cert-hash sha256:7f81fa35fc8f5d8640a167634df99d7f6998c28e996748f16ee86f422641119a 

#  注意如果是1.20以上版本并使用docker容器运行时才要加上这个才能使用 --cri-socket unix:///var/run/cri-dockerd.sock

# 查看
[root@master k8s]# kubeadm token list
TOKEN                     TTL         EXPIRES                USAGES                   DESCRIPTION                                                EXTRA GROUPS
5h02s0.n7htz6mfdlg8kh40   23h         2023-02-03T15:09:24Z   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token
7blbsw.pthel6ipumqnwjza   <forever>   <never>   authentication,signing   <none>                                                     system:bootstrappers:kubeadm:default-node-token

# 删除原先1天时长的token
[root@master k8s]# kubeadm token delete 5h02s0.n7htz6mfdlg8kh40
bootstrap token "5h02s0" deleted

更新 token

就是重新加入node,例子如下面更新node1

# master 删除 node1
[root@master k8s]# kubectl delete node node1
node "node1" deleted
# 更新 node1 节点执行命令
rm -rf /etc/kubernetes/kubelet.conf
rm -rf /etc/kubernetes/pki/ca.crt
systemctl restart kubelet.service
 kubeadm join 192.168.100.53:6443 --token 7blbsw.pthel6ipumqnwjza --discovery-token-ca-cert-hash sha256:7f81fa35fc8f5d8640a167634df99d7f6998c28e996748f16ee86f422641119a --cri-socket unix:///var/run/cri-dockerd.sock

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 虚拟化和云计算的区别分析

    虚拟化和云计算的区别分析

    这篇文章主要介绍了虚拟化和云计算的区别,深入浅出的列举分析了虚拟化与云计算的几点常见区别,需要的朋友可以参考下
    2016-10-10
  • K8s内存溢出问题剖析之排查与解决过程

    K8s内存溢出问题剖析之排查与解决过程

    这篇文章主要介绍了K8s内存溢出问题剖析之排查与解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-07-07
  • Kubekey安装Kubernetes-1.24.8的详细过程

    Kubekey安装Kubernetes-1.24.8的详细过程

    这篇文章主要介绍了Kubekey安装Kubernetes-1.24.8的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-05-05
  • 云原生要素配置分离ConfigMap创建方式

    云原生要素配置分离ConfigMap创建方式

    这篇文章主要为大家介绍了云原生要素配置分离ConfigMap以及多种创建方式,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • kubernetes需要默认的serviceaccount的原因解析

    kubernetes需要默认的serviceaccount的原因解析

    这篇文章主要介绍了kubernetes为何需要默认的serviceaccount,ServiceAccount 是 Kubernetes 中的一种重要概念,它的实际使用场景包括很多,本文给大家讲解的非常详细,需要的朋友可以参考下
    2023-04-04
  • k8s的包管理工具helm使用简介

    k8s的包管理工具helm使用简介

    这篇文章主要为大家介绍了k8s的包管理工具helm使用简介,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-03-03
  • kubernetes(k8s)安装metrics-server实现资源使用情况监控方式详解

    kubernetes(k8s)安装metrics-server实现资源使用情况监控方式详解

    这篇文章主要介绍了kubernetes(k8s)安装metrics-server实现资源使用情况监控,包括Metrics Server下载方式, k8s集群安装部署metrics的问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • K8S部署rocketmq5全过程

    K8S部署rocketmq5全过程

    在开发环境中部署RocketMQ 5并验证新版本代理特性,遇到一系列问题,包括存储权限、主从副本配置和命名空间问题,通过修改配置文件和PV设置,最终解决了这些问题,成功部署了RocketMQ集群
    2025-01-01
  • 在K8S中实现会话保持的两种方案

    在K8S中实现会话保持的两种方案

    这篇文章主要介绍了在K8S中实现会话保持的两种方案,每种方案结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • Kubernetes中的service使用及说明

    Kubernetes中的service使用及说明

    Kubernetes Service通过固定IP和端口实现Pod的负载均衡和服务发现,解决动态IP问题,支持ClusterIP、NodePort、LoadBalancer等五种类型,适用于集群内通信、对外暴露及访问外部服务,结合Endpoints和负载均衡策略确保服务稳定性
    2025-10-10

最新评论