当前位置: 首页 > article >正文

k8s证书过期怎么更新?

在 Kubernetes 集群中,证书过期可能导致集群不可用,尤其是 API Server、Controller Manager、Scheduler 等组件所使用的证书。为了恢复集群的正常运行,您需要更新这些证书。以下是更新 Kubernetes 证书的基本步骤:

1. 检查证书状态

首先,确认哪些证书已经过期或即将过期。

sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep "Not After"

您可以在 /etc/kubernetes/pki/ 目录下找到 Kubernetes 的证书文件,如 apiserver.crt、ca.crt、etcd/server.crt 等。

2. 自动更新证书(kubeadm 管理的集群)

如果您是使用 kubeadm 部署的 Kubernetes 集群,kubeadm 提供了更新证书的简便方法:

sudo kubeadm certs renew all

该命令会自动更新所有证书,包括 API Server、Controller Manager、Scheduler 等组件的证书。更新完成后,您可以查看新的证书有效期:

sudo kubeadm certs check-expiration

3. 手动更新证书

对于手动部署的 Kubernetes 集群,您可能需要自行生成和替换证书。以下是手动更新的步骤:

  1. 生成新的证书和私钥: 使用 openssl 或 cfssl 工具生成新的证书。例如,使用 openssl:
openssl genrsa -out apiserver.key 2048
openssl req -new -key apiserver.key -out apiserver.csr -subj "/CN=kube-apiserver"
openssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out apiserver.crt -days 365
  1. 替换旧证书和密钥: 将生成的新的证书和密钥替换到 /etc/kubernetes/pki/ 目录下。注意确保文件名与旧的证书和密钥一致,如 apiserver.crt、apiserver.key 等。

重启相关 Kubernetes 组件: 替换证书后,您需要重启 Kubernetes 的组件,以便它们加载新的证书。

  1. 对于 kube-apiserver,使用以下命令:
sudo systemctl restart kube-apiserver

或者使用 Kubernetes 静态 Pod 文件的方式管理时,直接重启 kubelet 会自动重启这些组件。

4. 更新 kubelet 证书

kubelet 证书的更新稍有不同,您可以通过以下方式更新:

  • 如果 kubelet 使用的是自动轮换的证书,您可以手动触发轮换:
sudo systemctl restart kubelet
  • 如果 kubelet 没有自动轮换证书,您可以使用 kubeadm 重新生成:
sudo kubeadm certs renew kubelet

5. 检查证书更新状态

确保所有证书已正确更新并生效,可以再次检查证书的过期时间:

bash
openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep "Not After"

6. 备份新证书

在更新证书之后,建议将新生成的证书和密钥进行备份,以防日后需要恢复或排查问题。

总结

在 Kubernetes 集群中,证书的更新可以通过 kubeadm 工具自动完成,也可以通过手动生成和替换证书的方式来实现。对于使用 kubeadm 部署的集群,自动更新方法较为简单。对于非 kubeadm 管理的集群,则需要手动管理证书的生成和替换。无论哪种方法,更新后都需要重启相关的 Kubernetes 组件以使新证书生效。


http://www.kler.cn/a/539278.html

相关文章:

  • 使用云计算,企业的数据监管合规问题如何解决?
  • android手机安装deepseek-r1:1.5b
  • Java 中 ArrayList 和 LinkedList 有什么区别?
  • PlantUml常用语法
  • 高并发读多写少场景下的高效键查询与顺序统计的方案思路
  • Docker 部署 redis | 国内阿里镜像
  • Activity相关学习(二)
  • mmap 文件映射
  • 【C编程问题集中营】使用数组指针时容易踩得坑
  • 单片机之基本元器件的工作原理
  • 4.寻找两个正序数组的中位数
  • PAT乙级真题 — 1074 宇宙无敌加法器(java)
  • 降低获客与裂变渠道成本的新策略:融合开源2+1链动模式、AI智能名片与S2B2C商城小程序
  • Linux 创建进程 fork()、vfork() 与进程管理
  • python基础入门:3.5实战:词频统计工具
  • 问卷数据分析|SPSS之分类变量描述性统计
  • 深入浅出:SSL证书的作用与重要性
  • 第二十一章:考研的艰难抉择与放弃入学的转折
  • 基于javaweb的SpringBoot+MyBatis毕业设计选题答辩管理系统(源码+文档+部署讲解)
  • PromptSource安装报错
  • 科普书《从一到无穷大》的科普知识推翻百年集论
  • PlantUml常用语法
  • 青少年编程与数学 02-009 Django 5 Web 编程 02课题、开发环境
  • DeepSeek在无人机上应用技术详解
  • leetcode_80删除有序数组中的重复项 II
  • 【算法】快速排序算法的实现:C 和 C++ 版本