k8s证书过期---手动更新

K8S证书过期解决办法之替换证书 k8s证书过期解决方案之替换证书 阅读详情

背景:

执行命令发现报错:
Unable to connect to the server: x509: certificate has expired or is not yet valid
在这里插入图片描述
这就是k8s的证书过期了
k8s解决证书过期官方文档:https://kubernetes.io/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-certs/
查看是k8s master 节点证书过期了,登录master服务器,进入 /etc/kubernetes/ 查看:

[root@k8s-145246 ~]# cd /etc/kubernetes
[root@k8s-145246 kubernetes]# ll
total 40
-rw------- 1 root root 5455 Mar 16  2021 admin.conf
-rw------- 1 root root 5491 Mar 16  2021 controller-manager.conf
-rw------- 1 root root 1879 Mar 16  2021 kubelet.conf
drwxr-xr-x 2 root root 4096 Jul 27  2021 manifests
drwxr-xr-x 5 root root 4096 Apr  2  2021 pki
-rw------- 1 root root 5435 Mar 16  2021 scheduler.conf
drwxr-xr-x 3 root root 4096 Mar 18  2021 volumes
[root@k8s-145246 kubernetes]# cd pki/
[root@k8s-145246 pki]# ll
total 76
-rw-r--r-- 1 root root 1224 Mar 16  2021 apiserver.crt
-rw-r--r-- 1 root root 1090 Mar 16  2021 apiserver-etcd-client.crt
-rw------- 1 root root 1679 Mar 16  2021 apiserver-etcd-client.key
-rw------- 1 root root 1679 Mar 16  2021 apiserver.key
-rw-r--r-- 1 root root 1099 Mar 16  2021 apiserver-kubelet-client.crt
-rw------- 1 root root 1675 Mar 16  2021 apiserver-kubelet-client.key
-rw-r--r-- 1 root root  162 Apr  1  2021 basic_auth_file
-rw-r--r-- 1 root root   32 Apr  1  2021 basic_auth_file_ops
-rw-r--r-- 1 root root 1025 Mar 16  2021 ca.crt
-rw------- 1 root root 1675 Mar 16  2021 ca.key
drwxr-xr-x 2 root root 4096 Mar 16  2021 etcd
-rw-r--r-- 1 root root 1038 Mar 16  2021 front-proxy-ca.crt
-rw------- 1 root root 1679 Mar 16  2021 front-proxy-ca.key
-rw-r--r-- 1 root root 1058 Mar 16  2021 front-proxy-client.crt
-rw------- 1 root root 1679 Mar 16  2021 front-proxy-client.key
-rw------- 1 root root 1679 Mar 16  2021 sa.key
-rw------- 1 root root  451 Mar 16  2021 sa.pub
drwxr-xr-x 2 root root 4096 Apr  2  2021 ssl
drwxr-xr-x 2 root root 4096 Apr  2  2021 ssl_self

查看是否过期

[root@k8s-145246 pki]# openssl x509 -in apiserver.crt -noout -text |grep ' Not '
            Not Before: Mar 16 05:58:49 2021 GMT
            Not After : Mar 16 05:58:49 2022 GMT

检查k8s环境证书是否过期

[root@k8s-145246 pki]# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[check-expiration] Error reading configuration from the Cluster. Falling back to default configuration

W0316 14:21:38.307724   49056 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Mar 16, 2022 05:58 UTC   <invalid>                               no      
apiserver                  Mar 16, 2022 05:58 UTC   <invalid>       ca                      no      
apiserver-etcd-client      Mar 16, 2022 05:58 UTC   <invalid>       etcd-ca                 no      
apiserver-kubelet-client   Mar 16, 2022 05:58 UTC   <invalid>       ca                      no      
controller-manager.conf    Mar 16, 2022 05:58 UTC   <invalid>                               no      
etcd-healthcheck-client    Mar 16, 2022 05:58 UTC   <invalid>       etcd-ca                 no      
etcd-peer                  Mar 16, 2022 05:58 UTC   <invalid>       etcd-ca                 no      
etcd-server                Mar 16, 2022 05:58 UTC   <invalid>       etcd-ca                 no      
front-proxy-client         Mar 16, 2022 05:58 UTC   <invalid>       front-proxy-ca          no      
scheduler.conf             Mar 16, 2022 05:58 UTC   <invalid>                               no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Mar 14, 2031 05:58 UTC   8y              no      
etcd-ca                 Mar 14, 2031 05:58 UTC   8y              no      
front-proxy-ca          Mar 14, 2031 05:58 UTC   8y              no      

经查看k8s master 组件 证书都过期了,有效期是一年

解决问题:

以下操作均在master节点

1、备份一下 /etc /kubernetes /pki 目录下的所有文件。

[root@k8s-145246 pki]# cd ..
[root@k8s-145246 kubernetes]# ll
total 40
-rw------- 1 root root 5455 Mar 16  2021 admin.conf
-rw------- 1 root root 5491 Mar 16  2021 controller-manager.conf
-rw------- 1 root root 1879 Mar 16  2021 kubelet.conf
drwxr-xr-x 2 root root 4096 Jul 27  2021 manifests
drwxr-xr-x 5 root root 4096 Apr  2  2021 pki
-rw------- 1 root root 5435 Mar 16  2021 scheduler.conf
drwxr-xr-x 3 root root 4096 Mar 18  2021 volumes
[root@k8s-145246 kubernetes]# cp -r pki pki.bak20220316

2、手动更新所有证书,执行命令

[root@k8s-145246 kubernetes]# cd pki
[root@k8s-145246 pki]# kubeadm alpha certs renew all
[renew] Reading configuration from the cluster...
[renew] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'
[renew] Error reading configuration from the Cluster. Falling back to default configuration

W0316 14:22:47.549844    1406 configset.go:202] WARNING: kubeadm cannot validate component configs for API groups [kubelet.config.k8s.io kubeproxy.config.k8s.io]
certificate embedded in the kubeconfig file for the admin to use and for kubeadm itself renewed
certificate for serving the Kubernetes API renewed
certificate the apiserver uses to access etcd renewed
certificate for the API server to connect to kubelet renewed
certificate embedded in the kubeconfig file for the controller manager to use renewed
certificate for liveness probes to healthcheck etcd renewed
certificate for etcd nodes to communicate with each other renewed
certificate for serving etcd renewed
certificate for the front proxy client renewed
certificate embedded in the kubeconfig file for the scheduler manager to use renewed

3、查看证书有效期是否更新

[root@k8s-145246 pki]# openssl x509 -in apiserver.crt -noout -text |grep ' Not '
            Not Before: Mar 16 05:58:49 2021 GMT
            Not After : Mar 16 06:22:48 2023 GMT
[root@k8s-145246 pki]# kubectl get nodes
NAME         STATUS   ROLES         AGE    VERSION
k8s-145103   Ready    edge          365d   v1.18.16
k8s-145104   Ready    <none>        365d   v1.18.16
k8s-145246   Ready    edge,master   365d   v1.18.16

此时命令可用了
但是还没有结束,需要进行下一步,不然k8s组件会报错:

 authentication.go:65] Unable to authenticate the request due to an error: x509: certificate has expired or is not yet valid

导致不能重新创建pod
4、在master节点上将/etc/kubernetes目录下的所有配置文件备份

[root@k8s-145246 etc]# cp -r /etc/kubernetes /etc/kubernetes.bak

5、更新用户配置:执行下面多个命令

kubeadm alpha kubeconfig user --client-name=admin
kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf

6、用更新后的admin.conf替换/root/.kube/config文件

cp -i /etc/kubernetes/admin.conf /root/.kube/config

将/etc/kubernetes/admin.conf 分发到其他node节点后,node节点就可以使用kubectl命令了
7、重启所有master节点上的apiserver和scheduler两个系统组件
正常tar包部署的k8s可以使用下面的命令重启:

systemctl restart kube-apiserver
systemctl restart kube-scheduler

但是kubeadm部署的方式需要重启相关pod后再重启对应的docker

[root@k8s-145246 pki]# kubectl get po -n kube-system|grep k8s
etcd-k8s-145246                           1/1     Running             17         17h
kube-apiserver-k8s-145246                 1/1     Running             20         18h
kube-controller-manager-k8s-145246        1/1     Running             19         17h
kube-scheduler-k8s-145246                 1/1     Running             18         18h
docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart

此时证书更新全部完成,pod恢复正常

附上一个大神写的自动更新10年证书的文章参考:
https://www.qikqiak.com/post/update-k8s-10y-expire-certs/

k8s证书过期处理 证书一共分为根CA(ca.crt)master各组件的证书(包括etcd、apiserver、front-proxy、controller-manager等各种)kubelet证书其中,根CA和master各组件证书默认已经改成了100年,kubelet证书改成了10年且有自动轮换在一些用老包部署的环境里,可能出现证书过期问题,需要按如下操作解决证书问题。 阅读详情

相关推荐

[MicroK8s] Unable to connect to the server: x509: certificate has expired or is not yet valid 问题定位案例

如题

pcj_888的博客 1805

Unable to connect to the server: x509: certificate has expired or is not yet valid

【代码】Unable to connect to the server: x509: certificate has expired or is not yet valid。

weixin_54104864的博客 7156

K8S 证书过期后,kubeadm 重新生成证书

k8s证书更新

zhangchang3的博客 1515

K8S异常之Unable to connect to the server: x509: certificate has expired or is not yet valid

K8S异常之Unable to connect to the server: x509: certificate has expired or is not yet valid

一掬净土 1万+

Kubernetes集群证书过期处理:更新kubeadm生成的证书有效期为10年

通过遵循适当的步骤和使用适当的工具,您可以轻松地更新证书,并确保集群的顺利运行。证书的过期可能导致集群中的各种问题,因此及时更新证书是必要的。这将使用新的CA证书(ca.crt)和私钥(ca.key)签署apiserver证书签名请求,并生成一个新的apiserver证书(apiserver.crt)。现在,我们可以使用新的CA证书来签署先前生成的证书签名请求。最后一步是将新生成的证书替换掉旧证书,并重启相关的组件。对于其他组件的证书签署,也需要使用相应的CSR和CA证书。

2301_79325339的博客 1655

【软件安装系列】Ubuntu+mysql5.7.27+Jira8.3.1+邮箱服务器配置+Confluence6.15.7安装经验和采坑总结

文章目录一、软件准备(百度云易被吞,就不放了)1.1 官网下载的新鲜的Jira和Confluence1.2 linux的jdk一份1.3 Jira和Confluence的破解程序或者破解包一份1.4 java的连接器一份二、安装过程1--java环境配置2.1 将下载下来的jdk包解压在/usr/local/java目录中2.2 写入环境变量三、安装过程2--mysql5.7.27环境配置3.1 ...

xiaosha_的博客 6894

k8s集群证书过期--手动更新证书

k8s集群证书过期--手动更新证书处理方法

qq_36291550的博客 477

企业级AI Agent平台建设方案

本报告将深入剖析构成一个顶级AI Agent平台的各个功能层面,为构建者提供一份全面的战略蓝图。

分享AI和大数据领域的知识和研究 1585

k8s集群证书pki过期处理

参考:使用 kubeadm 进行证书管理 | Kubernetes 高可用k8s集群更新证书后,需要将新证书拷贝到所有主节点 我是整个/etc/kubernets拷贝覆盖其他主节点。先做好备份。 同时重启下服务kubelet和下面4个kube-apiserver|kube-controller-manager|kube-scheduler|etcd都重启下。docker ps | grep -v pause | grep -E "etcd|scheduler|controller|apiserver"

miracle_seed的博客 1416

WebUI自动化测试框架搭建(python+pytest+selenium+allure)

将鼠标移动到要定位的元素上面>右键>点击“检查”>在元素代码上右键>复制>复制XPath。

m0_63729339的博客 1281

Python+OpenCV实战:雨天车牌识别准确率提升300%的5个关键技巧

本文针对雨天车牌识别准确率骤降的难题,分享了五个基于Python和OpenCV的实战技巧。通过暗通道先验去雾、雨纹抑制、光照不变量颜色空间转换、多尺度自适应阈值分割以及融合传统特征与轻量级深度学习的混合识别策略,系统性地提升了算法在恶劣天气下的鲁棒性。这些方法能有效解决图像模糊、对比度低、字符断裂粘连等问题,为智能交通等实际应用提供可靠解决方案。

k8l9m0n的博客 717

kubernetes证书时间修改

此文档针对k8s版本1.14.1 kubeadm 默认证书为一年,一年过期后,会导致api service不可用,使用过程中会出现:x509: certificate has expired or is not yet valid. 方案一 通过修改kubeadm 调整证书过期时间 1、创建工作目录 [root@master ~]# mkdir /data 2、下载go环境(搜索go 中文网既可下载) [root@master ~]# cd /data [root@master data]# wge

liuchao666888的博客 1635

别再到处找数据了!用Python+Tushare Pro免费获取A股行情、财务、龙虎榜数据(附完整代码)

本文详细介绍了如何使用Python和Tushare Pro免费获取A股行情、财务数据和龙虎榜数据,并构建本地金融数据仓库。通过完整的代码示例,帮助读者快速掌握金融数据接口的使用方法,提升量化分析效率。Tushare Pro作为免费、稳定的数据源,覆盖全面且API友好,是个人投资者的理想选择。

weixin_30596343的博客 617

Kubernetes上生产环境后的常见问题以及解决方法

随着微服务的不断推进,使用 k8s 集群越来越多,越来越深入,随之而来会遇到一系列的问题,本文向大家介绍实际使用 k8s 遇到的一些问题以及解决方法。1问题一:修复 K8S 内存泄露问题问...

u012516914的专栏 2088

2026年数学建模国赛论文排版规范:Word与LaTeX终极对比及模板

提前演练:不要等到比赛开始才第一次使用排版工具。至少在赛前一个月完成1-2篇模拟论文的全流程排版练习。建立检查清单:基于国赛规范制定排版检查清单,在提交前逐项核对——公式编号连续?图表引用准确?参考文献完整?页数不超限?善用模板但不止于模板:模板提供的是起点而非终点。根据自身需求调整宏包配置和样式参数,理解每一行配置的含义。关注评审体验:从评委的视角审视论文——重点内容是否突出?逻辑结构是否清晰?视觉层次是否合理?备份与容错:无论使用何种工具,建立多级备份机制。本地、云端、U盘各存一份,且定期保存历史版本。

YOLO 210

译码器Multisim电路仿真汇总——硬件工程师笔记

本文详细介绍了74LS139D和74LS138D两种TTL译码器的功能特点及应用。74LS139D是2线-4线译码器,具有低电平有效输出和使能控制功能,常用于地址译码和数据分配。74LS138D是3线-8线译码器,通过3位输入实现8路输出控制,广泛应用于微处理器系统。文中提供了两种芯片的引脚说明、真值表和典型应用电路,并附有硬件工程师笔试面试相关资源链接。这些基础知识对数字电路设计和硬件工程师面试准备具有重要参考价值。

XU157303764的博客 1267

Kubernetes老出错怎么办?这2个问题99%都会遇到

因为我们是使用 kubeadm 部署的 k8s 集群,所以更新起证书也是比较方便的,默认的证书时间有效期是一年,我们集群的 k8s 版本是 1.15.3 版本是可以使用以下命令来更新证书的,但是一年之后还是会到期,这样就很麻烦,所以我们需要了解一下 k8s 的证书,然后我们来生成一个时间很长的证书,这样我们就可以不用去总更新证书了。​​​​​​​。

LinkSLA的博客 1237

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

KuboardSpray安全加固教程:CIS扫描与证书自动更新

KuboardSpray是一款图形化工具,能够帮助用户离线安装、维护和升级高可用的K8S集群。在保障K8S集群稳定运行的同时,安全问题也不容忽视。本文将详细介绍如何利用KuboardSpray进行CIS扫描和证书自动更新,为你的K8S集群提供全方位的安全加固。 ## 一、CIS扫描:全面评估K8S集群安全状况 ### 1.1 什么是CIS扫描 [CIS Kubernetes Benchmar

gitblog_00001的博客 483

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

两个 99% 的人都遇到过的 Kubernetes 故障处理技巧

随着微服务的不断推进,使用 k8s 集群越来越多,越来越深入,随之而来会遇到一系列的问题,本文向大家介绍实际使用 k8s 遇到的一些问题以及解决方法。1问题一:修复 K8S 内存泄露问题问...

关注微信公众号【开源Linux】,后台回复『10T』,领取10T学习资源大放送,涵盖Linux、虚拟化、容器、云计算、网络、Python、Go等书籍和视频 326

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Kubernetes生产环境常见故障

Kubernetes生产环境常见故障

weixin_45817985的博客 596

Kubeadm证书过期检查实操

技术栈:Kubernetes v1.32.13 + Rocky Linux 8.6 + Containerd 1.7.x + Calico v3.27.x操作环境 / 对接原理 / 详细步骤 / 完整命令 / 配置文件 / 验证流程 / 排错方案。

qq_27665533的博客 166

K8S 证书轮换与自动续期实战指南

本文详细介绍了K8S证书轮换与自动续期的实战指南,涵盖证书过期预警、手动轮换流程及自动化管理方案。通过kubeadm工具和cert-manager实现证书生命周期管理,避免因证书过期导致的集群故障,提升K8S集群的稳定性和安全性。

weixin_29211309的博客 119

k8s证书过期怎么更新?

在 Kubernetes 集群中,证书过期可能导致集群不可用,尤其是 API Server、Controller Manager、Scheduler 等组件所使用的证书。为了恢复集群的正常运行,您需要更新这些证书。管理的集群,则需要手动管理证书的生成和替换。对于手动部署的 Kubernetes 集群,您可能需要自行生成和替换证书。: 替换证书后,您需要重启 Kubernetes 的组件,以便它们加载新的证书。在更新证书之后,建议将新生成的证书和密钥进行备份,以防日后需要恢复或排查问题。

运维老生常谈 1742

k8s证书过期处理 手动生成证书、凭证

k8s证书过期处理 手动生成证书、凭证

寂夜了无痕的博客 2130

Kubernetes 证书以及证书续期、过期处理

Kubernetes集群通过多套CA证书体系实现组件间双向认证,确保通信安全。集群包含三套主要CA证书(K8s自身CA、front-proxy CA和etcd CA),其中根CA证书自签名且有效期长达10年。各组件证书(如apiserver、kubelet等)由CA颁发,有效期较短(通常1年)。不同于常规HTTPS的单向认证,K8s严格要求服务器端和客户端的双向验证,所有组件通信都需经过apiserver这个核心网关。用户账号证书也被集成在配置中,非CA证书同样遵循1年有效期原则。证书过期将导致集群完全不可

小楼一夜听春雨,深巷明朝卖杏花 4521
上一篇: Linux上配置Jupyter Notebook远程访问
下一篇: 定时语法测试
lcm_linux
博客等级 码龄7年 7258粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值