k8s v1.20.10 证书过期替换

news/2025/3/29 20:10:33/文章来源:https://www.cnblogs.com/wangguishe/p/18793663

查看证书过期时间

kubeadm 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 -o yaml'
[check-expiration] Error reading configuration from the Cluster. Falling back to default configurationCERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Mar 26, 2026 02:24 UTC   364d                                    no      
apiserver                  Mar 07, 2025 16:29 UTC   <invalid>       ca                      no      
apiserver-etcd-client      Mar 07, 2025 16:29 UTC   <invalid>       etcd-ca                 no      
apiserver-kubelet-client   Mar 07, 2025 16:29 UTC   <invalid>       ca                      no      
controller-manager.conf    Mar 26, 2026 02:24 UTC   364d                                    no      
etcd-healthcheck-client    Mar 07, 2025 16:29 UTC   <invalid>       etcd-ca                 no      
etcd-peer                  Mar 07, 2025 16:29 UTC   <invalid>       etcd-ca                 no      
etcd-server                Mar 07, 2025 16:29 UTC   <invalid>       etcd-ca                 no      
front-proxy-client         Mar 07, 2025 16:29 UTC   <invalid>       front-proxy-ca          no      
scheduler.conf             Mar 26, 2026 02:24 UTC   364d                                    no      CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Feb 27, 2033 02:08 UTC   7y              no      
etcd-ca                 Feb 27, 2033 02:08 UTC   7y              no      
front-proxy-ca          Feb 27, 2033 02:08 UTC   7y              no   

备份证书和配置文件

mkdir  /etc/kubernetes/k8s-202503261410 && cp /etc/kubernetes/*.conf /etc/kubernetes/k8s-202503261410 && cp -rf /etc/kubernetes/pki /etc/kubernetes/k8s-202503261410

更新证书

kubeadm 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 -o yaml'
[renew] Error reading configuration from the Cluster. Falling back to default configurationcertificate 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 renewedDone renewing certificates. You must restart the kube-apiserver, kube-controller-manager, kube-scheduler and etcd, so that they can use the new certificates.

kubelet 配置

查看 kubelet 状态

E0326 14:34:36.318497 3419173 bootstrap.go:265] part of the existing bootstrap client certificate is expired: 2025-03-07 16:33:15 +0000 UTC

删除配置文件和证书

rm -rf /etc/kubernetes/kubelet.conf  /var/lib/kubelet/pki/kubelet-client*

重新生成配置文件

kubeadm init --kubernetes-version=v1.20.10  phase kubeconfig all  --apiserver-advertise-address 192.168.174.100   --control-plane-endpoint 192.168.174.100:6443
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Writing "admin.conf" kubeconfig file
[kubeconfig] Writing "kubelet.conf" kubeconfig file
[kubeconfig] Writing "controller-manager.conf" kubeconfig file
[kubeconfig] Writing "scheduler.conf" kubeconfig file

重启 kubelet

systemctl restart kubelet

重启静态 Pod 

临时将清单文件从 /etc/kubernetes/manifests/ 移除并等待 20 秒之后可以将文件移回去,kubelet 可以完成 Pod 的重建,而组件的证书更新操作也得以完成。

证书请求签名

查看证书请求签名

如果CONDITION显示的是Approved,Issued,说明证书签名请求CSR已经被批准,如果CONDITION显示的是Pending,则需要手动批准证书签名请求CSR
kubectl get csr
NAME        AGE     SIGNERNAME                                    REQUESTOR                                  CONDITION
csr-llhc8   46s     kubernetes.io/kube-apiserver-client-kubelet   system:node:paas-container-c1-master-003   Pending

批准证书请求签名

kubectl certificate approve csr-llhc8
certificatesigningrequest.certificates.k8s.io/csr-llhc8 approved

确认证书请求签名

kubectl get csr
NAME        AGE     SIGNERNAME                                    REQUESTOR                                  CONDITION
csr-llhc8   5m2s    kubernetes.io/kube-apiserver-client-kubelet   system:node:paas-container-c1-master-003   Approved,Issued

查看节点状态

kubelet 日志信息

Mar 26 14:53:01 paas-container-c1-master-003 kubelet[3430694]: I0326 14:53:01.588679 3430694 kubelet_node_status.go:71] Attempting to register node 192.168.174.101
Mar 26 14:53:01 paas-container-c1-master-003 kubelet[3430694]: I0326 14:53:01.601388 3430694 kubelet_node_status.go:109] Node 192.168.174.101 was previously registered
Mar 26 14:53:01 paas-container-c1-master-003 kubelet[3430694]: I0326 14:53:01.601480 3430694 kubelet_node_status.go:74] Successfully registered node 192.168.174.101

节点状态

kubectl get node
NAME              STATUS   ROLES                  AGE     VERSION
192.168.174.101   Ready    control-plane,master   709d    v1.20.10
192.168.174.102   Ready    control-plane,master   2y25d   v1.20.10
192.168.174.103   Ready    control-plane,master   2y25d   v1.20.10
192.168.174.104   Ready    <none>                 2y25d   v1.20.10
192.168.174.105   Ready    <none>                 34d     v1.20.10
192.168.174.106   Ready    <none>                 2y25d   v1.20.10

替换工作节点 kubelet 证书

备份旧证书

cp -r /var/lib/kubelet/pki /var/lib/kubelet/pki.bak

删除旧证书

sudo rm -f /var/lib/kubelet/pki/kubelet.*

生成 kubelet.conf

在master节点执行
kubeadm init --kubernetes-version=v1.20.10 phase kubeconfig kubelet --node-name 192.168.174.106 --apiserver-advertise-address 192.168.174.100  --control-plane-endpoint 192.168.174.100:6443 --kubeconfig-dir /tmp/
复制到工作节点
scp /tmp/kubelet.conf root@192.168.174.106:/etc/kubernetes/kubelet.conf

重启 kubelet

systemctl restart kubelet

查看证书

ls -l /var/lib/kubelet/pki
total 12
-rw------- 1 root root 2810 Mar 26 15:33 kubelet-client-2025-03-26-15-33-58.pem
lrwxrwxrwx 1 root root   59 Mar 26 15:33 kubelet-client-current.pem -> /var/lib/kubelet/pki/kubelet-client-2025-03-26-15-33-58.pem
-rw-r--r-- 1 root root 2266 Mar 26 15:29 kubelet.crt
-rw------- 1 root root 1679 Mar 26 15:29 kubelet.key

查看证书有效期

openssl x509 -in /var/lib/kubelet/pki/kubelet.crt -noout -dates
notBefore=Mar 26 06:29:22 2025 GMT
notAfter=Mar 26 06:29:22 2026 GMT

总结

场景 操作步骤
正常证书轮换 删除旧证书 → 重启 kubelet → 批准 CSR
手动强制更新 生成新证书 → 替换文件 → 重启 kubelet
自动轮换配置 修改 kubelet.conf → 重启服务

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/906279.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

matplotlib之散点图

# 散点图 import matplotlib.pyplot as plt import random from pylab import mpl # 设置显示中文字体 mpl.rcParams["font.sans-serif"] = ["SimHei"]# 准备数据 x=[225.98,247.07,253.14,457.85,241.58,301.01, 20.67,288.64…

Jmeter 连接hive配置

环境:部署的hive 版本是4.0.0 jmeter 连接hive时连接驱动跟安装的hive版本有极大关系,比如说hive 版本是4.0.0版本,在jmeter的测试计划【test plan】中添加的hive-jdbc驱动如果是hive-jdbc-3.1.3-standalone.jar版本的话会连接失败,只能添加hive 4.0.0 或以上的版本。如hiv…

北京智和信通正式发布全球语言版本智能运维平台,开启网络运维国际视野

北京智和信通正式推出全球语言版本,在自研中文版运维平台的基础上,全面实现对汉语、英语、日语、韩语、法语、德语、俄语、印地语、西班牙语、阿拉伯语、葡萄牙语等语言界面的支持,让运维工作开启全球化高效协作的大门 数字化浪潮席卷全球,网络运维的边界已超越地域…

AI 网关需要具备的 10 大基本能力

我们认为 AI 网关并不是独立于 API 网关的新形态,本质也是一种 API 网关,区别在于针对 AI 场景的新需求专门做了扩展,它既是 API 网关的继承,也是 API 网关的演进。因此我们从 API 视角,对 AI 网关的能力做了分类,便于形成概念的共识。大模型主战场从训练转向推理,已经成…

[限时福利]免费领取华为云DeepSeek API

@目录一、登录华为云官网二、进入大模型平台免费领取1.进入ModelArts Studio大模型即服务平台2.在模型推理——>在线推理中领取额度即可三、在线使用deepseek四、本地调用华为云API五、总结 一、登录华为云官网华为云官网登录地址:用户登录—华为云没注册过的需要先进行认证…

编译前端项目

1,找到 package.json 文件 2,右键,点击显示 npm 脚本 3,点击build 成功编译。​npm run dev ​用途:启动本地开发服务器,用于开发调试。 ​典型场景:在开发阶段实时编译代码、热更新(HMR)和错误提示。 ​底层工具:可能关联 vite、webpack-dev-server 或 next dev 等工…

win10下实现Cl__sh小猫控制WSL网络

情况说明: win10+WSL ,实现在win10下配置小猫咪 for Windows,从而让WSL内也能google上网。 一切都在win10下进行配置在win10-内下载最新的小猫咪 关闭win10下的防火墙(所有的) 按照步骤依次打开,其中图中第二步是安装一个模块,应用会重启。

星源物联插入SQL数据设置

1、第一步先设置好本机的IP地址 2、第二步在配置SQL权限,把本机IP配置管理权限 3、设置物联网配置

一文搞懂Java的SPI机制

1 简介 SPI,Service Provider Interface,一种服务发现机制。有了SPI,即可实现服务接口与服务实现的解耦:服务提供者(如 springboot starter)提供出 SPI 接口。身为服务提供者,在你无法形成绝对规范强制时,适度"放权" 比较明智,适当让客户端去自定义实现 客户…

EDA 学习笔记之 def 文档笔记1:基础介绍

介绍 def 文件的一些基本内容@目录def 文件介绍基本定义VIAS 定义NDR 定义COMPONENTPINSBLOCKAGESSPECIAL NETSNETSFILLS def 文件介绍 DEF: Design Exchange Format , 描述了数字电路在布局布线后的连接关系和位置关系,是将数字实现前后端连接起来的桥梁。 目前常用的 def ve…

day01计算机基础

计算机三层结构软件开发流程运维职责 1.软件724365运行 ==>监控 2.数据备份 3.优化 计算机组成 控制器 运算器 存储器 输入输出设备cpu 控制和运算 存储器 存储器之内存 1.内存条相当于人脑的记忆功能,只能临时存放数据 2.内存里存放的都是电信号,断电数据则丢失,相当于人…