K8S join 证书过期 节点报错:certificate has expired or is not yet valid

问题场景:

我是因为虚拟机,挂起了几天,再打开join节点的时候报错:

certificate has expired or is not yet valid: current time 就是指的证书过期,而且是master的证书过期。

解决办法:

检查各个证书是否真的过期

复制代码
[root@master pki]# kubeadm alpha certs check-expiration
CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Apr 27, 2025 12:59 UTC   364d                                    no
apiserver                  Apr 27, 2025 13:05 UTC   364d            ca                      no
apiserver-etcd-client      Apr 27, 2025 12:26 UTC   364d            etcd-ca                 no
apiserver-kubelet-client   Apr 27, 2025 12:59 UTC   364d            ca                      no
controller-manager.conf    Apr 27, 2025 12:59 UTC   364d                                    no
etcd-healthcheck-client    Apr 27, 2025 12:26 UTC   364d            etcd-ca                 no
etcd-peer                  Apr 27, 2025 12:26 UTC   364d            etcd-ca                 no
etcd-server                Apr 27, 2025 12:26 UTC   364d            etcd-ca                 no
front-proxy-client         Apr 27, 2025 12:59 UTC   364d            front-proxy-ca          no
scheduler.conf             Apr 27, 2025 12:59 UTC   364d                                    no

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Apr 25, 2034 12:26 UTC   9y              no
etcd-ca                 Apr 25, 2034 12:26 UTC   9y              no
front-proxy-ca          Apr 25, 2034 12:26 UTC   9y              no

我这里显示是没有过期的

如果没有过期就同步各个服务器的时间,一般安装k8s都有装ntpdate没有的话自行安装

复制代码
[root@master pki]# ntpdate time.windows.com
# 或者
[root@master pki]# ntpdate pool.ntp.org

如果过期了,就刷新重新刷新证书(全部)并重启Docker容器内容和K8S

复制代码
[root@master pki]# kubeadm alpha certs renew all
[root@master pki]# docker ps |grep kube-apiserver|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
[root@master pki]# docker ps |grep kube-controller-manage|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
[root@master pki]# docker ps |grep kube-scheduler|grep -v pause|awk '{print $1}'|xargs -i docker restart {}
[root@master pki]# systemctl restart kubelet
相关推荐
雨辰AI5 小时前
K8s 国产数据库慢 SQL 自动监控|Prometheus+Grafana 可视化全落地
数据库·sql·安全·容器·kubernetes·grafana·prometheus
GGG7665 小时前
k8s的 Node and Cluster实战
容器·kubernetes
半支烟隐 pzishuo6 小时前
Kubernetes Gateway API 完全指南
容器·kubernetes·gateway
兵bing6 小时前
Docker Compose 配置文件归纳总结-千问
运维·docker·容器
蓝田~7 小时前
Java镜像1.2GB→200MB的瘦身之路:Docker多阶段构建+K8s Pod OOMKilled(137)排查,后端部署避坑指南
java·docker·kubernetes
运维大师8 小时前
【K8S 运维实战】37-金融企业多集群落地
运维·金融·kubernetes
凌虚(失业了求个工作)9 小时前
Kubernetes 编年史:从 Borg 到云原生操作系统
云原生·容器·kubernetes
SLD_Allen9 小时前
从Cloud Native到AI Native:K8s DRA与Agent协议栈
人工智能·云原生·kubernetes·cloud native·ai native
冰封之寂9 小时前
Kubernetes Pod 管理完全指南:从基础命令到高级调度
云原生·容器·kubernetes
ZzzZZzzzZZZzzzz…10 小时前
K8s实战: 用OpenELB破解Service外部访问难题
云原生·容器·kubernetes