Kubernetes — 更新证书

背景§

使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题

检查证书§

由 kubeadm 生成的客户端证书默认只有一年有效期,我们可以通过 check-expiration 命令来检查证书是否过期:

1kubeadm alpha certs check-expiration
sh

该命令显示 /etc/kubernetes/pki 文件夹中的客户端证书以及 kubeadm 使用的 KUBECONFIG 文件中嵌入的客户端证书的到期时间/剩余时间

手动更新§

kubeadm alpha certs renew
这个命令用 CA(或者 front-proxy-CA )证书和存储在 /etc/kubernetes/pki 中的密钥执行更新。
高可用的集群,这个命令需要在所有控制面板节点上执行

具体执行§

接下来我们来更新我们的集群证书,下面的操作都是在 master 节点上进行

  1. 备份节点
1$ mkdir /etc/kubernetes.bak
2$ cp -r /etc/kubernetes/pki/ /etc/kubernetes.bak
3$ cp /etc/kubernetes/*.conf /etc/kubernetes.bak
sh
  1. 备份 etcd 数据目录
1$ cp -r /var/lib/etcd /var/lib/etcd.bak
sh
  1. 执行更新证书的命令
1kubeadm alpha certs renew all --config=kubeadm.yaml
sh
  1. 检查更新
1kubeadm alpha certs check-expiration
sh
  1. 更新下 kubeconfig 文件
1kubeadm init phase kubeconfig all --config kubeadm.yaml
sh
  1. 覆盖掉原本的 admin 文件
1$ mv $HOME/.kube/config $HOME/.kube/config.old
2$ cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
3$ chown $(id -u):$(id -g) $HOME/.kube/config
sh
  1. 重启 kube-apiserver、kube-controller、kube-scheduler、etcd ,查看 apiserver 的证书的有效期
1echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
sh

总结§

可以看到现在的有效期是一年过后的,证明已经更新成功了。

  • 全部
  • 简体中文
  • 最佳匹配
  • 最旧的
  • 最新的
  • 2021
  • 2022
  • 2023
  • 2024
  • 2025
  • jobcher
  • docker
  • github
  • gitlab
  • go
  • IOS 开发
  • k8s
  • Mac
  • stable diffusion
  • web 服务器
  • web3.0
  • work
  • 人工智能
  • 周报
  • 基础
  • 打赏
  • 数据库
  • 旅行
  • 日常
  • 日报
  • 测试
  • 监控
  • 福利
  • 美食
  • 问题库
  • docker入门系列
  • docker进阶系列
  • github
  • git入门系列
  • go系列
  • IOS 开发
  • k8s入门系列
  • k8s系列
  • Mac系列
  • mysql系列
  • oracle系列
  • stable diffusion
  • web3.0
  • web服务入门系列
  • 人工智能系列
  • 周报系列
  • 基础知识系列
  • 打赏
  • 旅行系列
  • 日常系列
  • 日报
  • 测试
  • 福利系列
  • 美食家常菜系列
  • 运维监控系列
  • 问题库系列
  • ansible
  • brew
  • ChatGPT
  • daliy
  • docker
  • DockerCompose
  • dockerfile
  • error
  • github
  • gitlab
  • golang
  • IOS 开发
  • IPFS
  • java
  • javascript
  • k3s
  • k8s
  • linux
  • logstash
  • Markdown
  • midjourney
  • minIO
  • mysql
  • nginx
  • nps
  • oracle
  • Planet
  • prometheus
  • pve
  • RocketMQ
  • rsync
  • skywalking
  • stable diffusion
  • TCP/IP
  • Terraform
  • web3.0
  • work
  • 内网穿透
  • 周报
  • 基础
  • 外快
  • 打赏
  • 扩容磁盘
  • 日常生活
  • 日报
  • 树莓派
  • 测试
  • 网心云
  • 美食
  • 自动化
  • 运维