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

news/2024/12/21 21:13:15/

前言

K8S 各个组件需要与 api-server 进行通信,通信使用的证书都存放在 /etc/kubernetes/pki 路径下,kubeadm 生成的证书默认有效为 1 年,因此需要定时更新证书,否则证书到期会导致整个集群不可用。

本篇文章主要介绍如何通过 kubeadm 重新生成证书。
 

一. 检查证书是否过期

1. kubeadm 命令查看

 kubeadm alpha certs check-expiration

  • 注:该命令仅在 v.15 之后的版本可用。

 

2 openssl 命令查看

版本过低无法使用 kubeadm 命令时,可以通过 openssl 查看对应证书是否过期

$ openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '
            Not Before: May  7 10:25:59 2020 GMT
            Not After : May  7 10:26:00 2021 GMT
 

二. 自动更新证书

Kubenetes 在升级控制面板相关组件时会主动更新证书,因此如果保证 Kubernetes 能够定期(一年以内)升级的话,证书会自动更新。

三. 手动更新证书

1. 证书备份

cp -rp /etc/kubernetes /etc/kubernetes.bak

2. 删除旧的证书
将 /etc/kubernetes/pki 下要重新生成的证书删除

sudo rm -rf /etc/kubernetes/pki/apiserver.key

3. 重新生成证书
主要通过 kubeadm alpha certs renew 命令生成
 

重新生成所有证书

kubeadm alpha certs renew all

重新生成某个组件的证书

kubeadm alpha certs renew apiserver

4. 重新生成配置文件
备份旧的配置

mv /etc/kubernetes/*.conf /tmp/
 

生成新的配置

主要通过 kubeadm init phase kubeconfig

  • 重新生成所有配置
kubeadm init phase kubeconfig all
  • 重新生成单个配置文件

// 重新生成 admin 配置文件
kubeadm init phase kubeconfig admin
// 重新生成 kubelet 配置文件
kubeadm init phase kubeconfig kubelet
 

5. 后续操作
完成证书和配置文件的更新后,需要进行一系列后续操作保证更新生效,主要包括重启 kubelet、更新管理配置。

重启 kubelet
> systemctl restart kubelet

更新 admin 配置
将新生成的 admin.conf 文件拷贝,替换 ~/.kube 目录下的 config 文件。

cp /etc/kubernetes/admin.conf ~/.kube/config

完成以上操作后整个集群就可以正常通信了,操作过程中主要就是 kubeadm alpha certs renew 命令和 kube init phase kubeconfig,


http://www.ppmy.cn/news/973790.html

相关文章

代码随想录-回溯(组合问题)|ACM模式

目录 前言: 77.组合 题目描述: 输入输出示例: 思路和想法: 216. 组合总和 III 题目描述: 输入输出示例: 思路和想法: 17. 电话号码的字母组合 题目描述: 输入输出描述&a…

netty组件详解-中

接着之前的博客netty组件详解-上,我们继续深入到源码层面,来探究netty的各个组件和其设计思想: netty内置的通讯模式 我们在编写netty代码时,经常使用NioServerSocketChannel 作为通讯模式。 例如下面的简单netty客户端示例: pri…

HTML与XHTML的不同和各自特点

HTML和XHTML都是用于创建Web页面的标记语言。HTML是一种被广泛使用的标记语言,而XHTML是HTML的严格规范化版本。在本文中,我们将探讨HTML与XHTML之间的不同之处,以及它们各自的特点。 HTML与XHTML的不同之处 HTML和XHTML之间最大的不同在于它…

多模态版ChatGPT,拿下视觉语言新SOTA, 代码已开源

点击上方“AI遇见机器学习”,选择“星标”公众号 重磅干货,第一时间送 文|羿阁 发自 凹非寺源|量子位 2022年流行“文生图”模型,那2023年流行什么? 机器学习工程师Daniel Bourke的答案是:反过来…

从地图获取5A风景区位置

以下是利用Python从高德地图获取5A风景区位置并将坐标转换为WGS84的步骤: 1. 安装requests库和pyproj库。您可以使用pip命令在终端或命令提示符中安装这些库。 2. 导入requests和pyproj库: import requests import pyproj 3. 设置高德地图API密钥和…

插入,选择,堆,快速排序算法思想与复杂度

目录 插入排序 思想 算法步骤 代码 复杂度 选择排序 思想 算法步骤 代码 复杂度 堆排序 思想 算法步骤 代码 复杂度 快速排序 思想 算法步骤 代码 复杂度 稳定性 插入排序 思想 插入排序是一种简单直观的排序算法。它的工作原理是将数组分为已排序和未排序…

使用 Flask 快速构建 基于langchain 和 chatGPT的 PDF摘要总结

简介 这里不对 langchain 和 chatGPT 进行介绍,仅对实现过程进行整理 环境 Python >3.8 Flask2.2.3 Jinja23.1.2 langchain0.0.143 openai0.27.4 实现 总结功能 使用 langchain 和 openai 接口实现总结功能 实现逻辑:通过text_splitter 将pdf 分…

pytorch如何混合进度训练transformer【各种不同方式】

Trainer, no trainer, accelerator 用huggingface 的Trainer Hugging Face 的 Transformers 库为我们提供了大量预训练的 Transformer 模型,以及一个易于使用的训练和微调工具——Trainer。在 Trainer 中,我们可以很容易地启用混…