k8s(kubernetes)证书续期

本文介绍了如何使用kubeadm在Kubernetes集群上进行证书续期,包括查看证书有效期、更新证书、重启服务等关键步骤。提供了两种方法,一种是推荐的简单方式,另一种涉及详细操作。强调了证书备份和更新所有组件服务的重要性。

简介
kubernetes集群上kubeadm 安装的证书默认为 1 年,注意原证书文件必须保留在服务器上才能做延期操作,否则就会重新生成,集群可能无法恢复,这里在证书快到期之前进行续期操作。

证书续期

方式一(推荐)

一、准备工作
1、查看证书有效期
命令: kubeadm certs check-expiration

2、更新证书
命令: kubeadm certs renew all

3、重启master相关组件服务(重启后读取使用新证书)

docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart

方式二

具体操作
查看证书到期时间
一般k8s证书文件都在/etc/kubernetes/pki/下

openssl x509 -noout -text -in /etc/kubernetes/pki/apiserver.crt

多个证书一起查看到期时间

for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do echo "==========$item=========";openssl x509 -in $item -text -noout| grep Not;done

开始续期
一般是更新master节点证书文件(如果是但master节点则直接执行下面步骤,如果是高可用多master节点则所有master节点都需要执行下面步骤)

备份配证书目录

mkdir /backups/ && cp -r /etc/kubernetes/pki /backups/

生成配置文件

kubeadm config view > /data/backups/cluster.yaml

更新所有证书(对所有证书进行续期)

kubeadm alpha certs renew all --config=/data/backups/cluster.yaml

重启master相关组件服务(重启后读取使用新证书)

docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart

再次查看证书到期时间,查看是否成功续期

for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do echo "==========$item=========";openssl x509 -in $item -text -noout| grep Not;done
### Kubernetes 集群证书续期教程 为了确保 Kubernetes 集群的安全性和稳定性,定期检查并续期集群中的证书是非常重要的。以下是关于如何为 Kubernetes 集群续期证书的具体方法: #### 1. 检查当前证书的有效期限 在进行证书续期之前,先确认现有证书的有效期限是否即将到期。可以通过以下命令查看所有证书的状态: ```bash kubeadm certs check-expiration ``` 这一步可以帮助识别哪些证书需要更新[^4]。 #### 2. 更新所有证书 如果发现某些证书已经接近其有效期,则可以使用 `kubeadm` 工具来更新它们。具体操作如下: - **新版本 (v1.15 及以上)** 运行以下命令以一次性更新所有的证书: ```bash kubeadm certs renew all ``` - **老版本** 如果使用的 Kubernetes 版本较早,则需采用以下命令: ```bash kubeadm alpha certs renew all ``` 上述两种方式均会在不删除原有过期证书的情况下生成新的有效证书[^3]。 #### 3. 备份原始配置文件 为了避免意外情况发生,在执行任何更改前务必做好充分的数据备份工作。例如: ```bash mkdir ~/confirm # 创建用于保存备份数据的新目录 cp -rf /etc/kubernetes/ ~/confirm/ # 将整个Kubernetes配置复制过去 cp -rf /var/lib/etcd/* ~/confirm/data_etcd # 同样也要保护好Etcd数据库的内容 cp /usr/bin/kubeadm /usr/bin/kubeadm.bak # 对二进制程序本身做副本留存 ``` 这样即使出现问题也可以迅速恢复到初始状态[^4]。 #### 4. 修改 Kubelet 配置文件 由于仅靠上面提到的方法并不能同步更新 `/etc/kubernetes/kubelet.conf` 中所涉及的部分信息,因此还需要额外采取措施加以修正。具体做法是从 Master 节点获取最新版的认证材料覆盖掉 Node 上原有的那份: ```bash vim /etc/kubernetes/admin.conf # 把 user 下面 base64 编码后的字符串替换进去 scp /path/to/new/kubelet.conf node:/etc/kubernetes/ systemctl restart kubelet.service ``` 最后记得通知各节点重启相关服务以便应用最新的改动[^4]。 #### 5. 设置自动化的证书管理机制 考虑到手动方式进行周期性的维护既费时又容易犯错,推荐引入专门设计用来应对这种情况下的工具——如文中提及过的 update-kube-cert 。它具备高度自动化的特点,能够显著简化日常管理工作流程的同时还提供了诸如长期有效性设定等功能选项[^5]。 --- ### 注意事项 - 确认有足够的磁盘空间可用,因为每次创建都会新增一些临时文件。 - 若存在依赖于固定路径读取公私钥的应用组件,请相应调整逻辑适应变化后的位置关系。 - 生产环境下应尽早规划此类事务,并设立预警提示系统以防措手不及。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值