Kubernetes集群升级与证书更新 学习笔记

Kubernetes集群升级与证书更新 学习笔记

前言

本笔记整合两大核心K8s运维实操内容:集群版本升级集群证书更新。所有步骤均为实操落地流程,适配生产环境运维,核心场景为 kubeadm 部署的Kubernetes集群,同时补充非kubeadm集群适配方案,可直接用于实操参考与技术复盘。

一、Kubernetes集群版本升级(v1.28.15 → v1.29.15)

1.1 升级核心原则

集群升级遵循先Master控制节点、后Node工作节点的顺序,采用滚动升级模式,最大限度保障集群服务不中断。不同K8s版本升级规则存在差异,本文为1.28→1.29专属实操流程,不可通用所有版本。

1.2 升级前置辅助命令

升级全程可通过以下命令查看集群状态、排查问题,为必备运维指令:

  • 查看指定节点运行的Pod:kubectl get pod -o wide |grep <nodename>

  • 查看集群kubeadm配置文件:kubectl -n kube-system get cm kubeadm-config -o yaml

  • 查看集群所有节点状态及版本:kubectl get node

1.3 Master控制节点升级步骤

步骤1:更新源并升级kubeadm组件

基于阿里云K8s镜像源更新,保证版本匹配v1.29:

bash 复制代码
# 更新系统包管理器
yum update
# 配置v1.29版本阿里云K8s源
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://mirrors.aliyun.com/kubernetes-new/core/stable/v1.29/rpm/repodata/repomd.xml.key

# 查看可升级的kubeadm版本
yum list | grep kubeadm
# 执行kubeadm升级
yum update -y kubeadm
# 验证升级后版本
kubeadm version

步骤2:校验升级计划(关键前置检查)

升级前必须校验集群兼容性、可升级版本、需手动升级的组件,避免升级失败:

bash 复制代码
# 检查集群可升级版本、组件差异、手动升级项
kubeadm upgrade plan
# 查看静态Pod资源清单升级差异
kubeadm upgrade diff 1.29.15

核心校验要点:关注输出中 MANUAL UPGRADE REQUIRED 字段,若为yes则需手动升级对应组件,no则可直接自动升级。本次1.28→1.29无需手动升级组件。

步骤3:执行控制平面版本升级

bash 复制代码
# 升级Master控制平面至v1.29.15
kubeadm upgrade apply v1.29.15

该命令自动完成etcd、kube-apiserver、kube-controller-manager、kube-scheduler等核心控制组件的镜像更新、证书续签、配置文件替换,升级成功会提示 SUCCESS! Your cluster was upgraded to "v1.29.15"

步骤4:排空节点、升级kubelet/kubectl

bash 复制代码
# 排空Master节点,驱逐普通Pod,保留守护进程Pod
kubectl drain <nodename> --ignore-daemonsets

# 升级kubelet、kubectl组件
yum update -y kubelet

# 重载配置、重启kubelet服务
systemctl daemon-reload
systemctl restart kubelet

# 解除节点调度保护,恢复节点工作
kubectl uncordon <nodename>

1.4 Node工作节点升级步骤

所有操作需在Master节点远程执行,逐节点滚动升级:

bash 复制代码
# 1. 更新node节点kubelet配置
kubeadm upgrade node

# 2. 排空待升级工作节点
kubectl drain <nodename> --ignore-daemonsets

# 3. 升级节点kubelet组件
yum update -y kubelet

# 4. 重启服务生效
systemctl daemon-reload
systemctl restart kubelet

# 5. 恢复节点调度能力
kubectl uncordon <nodename>

1.5 集群升级完整流程总结

  1. 升级前准备:备份集群配置、数据卷、证书等核心数据,测试环境预演升级流程;

  2. 控制平面升级:更新kubeadm→校验升级计划→执行控制平面升级;

  3. Master节点收尾:排空节点→升级kubelet→重启服务→解除调度保护;

  4. Node节点批量升级:逐节点执行配置更新、排空、组件升级、重启、恢复调度;

  5. 升级后校验:检查节点状态、Pod运行状态、业务应用可用性,排查日志异常;

  6. 故障回滚:升级失败可通过旧版本二进制文件、备份配置回滚集群。

二、Kubernetes集群证书更新

K8s集群证书默认有效期1年,证书过期会导致集群节点失联、API调用失败、Pod调度异常,需定期更新。分为**kubeadm自动更新(推荐)手动更新(非kubeadm集群)**两种方案。

2.1 kubeadm自动更新证书(主流方案)

适用于kubeadm部署的集群,一键更新所有控制平面证书,简单高效、不易出错。

步骤1:检查证书过期时间

bash 复制代码
kubeadm certs check-expiration

查看所有组件证书的过期时间、剩余有效期,确认需要更新的证书。

步骤2:批量更新所有证书

bash 复制代码
sudo kubeadm certs renew all

自动更新kube-apiserver、etcd、controller-manager、scheduler等所有控制平面证书。

步骤3:验证更新结果

bash 复制代码
kubeadm certs check-expiration

确认所有证书有效期已刷新为1年。

步骤4:重启组件加载新证书

静态Pod模式集群,重启kubelet即可加载新证书:

bash 复制代码
systemctl daemon-reload
systemctl restart kubelet

2.2 手动更新证书(非kubeadm部署集群)

适用于二进制手动部署的K8s集群,通过openssl工具手动生成、替换证书。

步骤1:查看证书过期时间

bash 复制代码
sudo openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text | grep "Not After"

步骤2:手动生成新证书

bash 复制代码
# 生成私钥
openssl genrsa -out apiserver.key 2048
# 生成证书请求文件
openssl req -new -key apiserver.key -out apiserver.csr -subj "/CN=kube-apiserver"
# 基于CA签发有效期1年的新证书
openssl x509 -req -in apiserver.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out apiserver.crt -days 365

其他组件(etcd、controller-manager等)证书生成方式一致。

步骤3:替换证书并重启服务

将新证书、私钥替换至 /etc/kubernetes/pki/ 目录,重启核心组件:

bash 复制代码
sudo systemctl restart kube-apiserver kube-controller-manager kube-scheduler

步骤4:校验集群状态

bash 复制代码
kubectl get nodes
kubectl get pods --all-namespaces

2.3 工作节点证书更新

工作节点需更新kubelet、kube-proxy证书,保证节点正常接入集群:

  1. 参考控制平面证书生成方式,为各工作节点生成新证书;

  2. 替换节点 /var/lib/kubelet/pki/ 目录下的旧证书文件;

  3. 重启kubelet服务生效:systemctl restart kubelet

2.4 证书更新通用核心注意事项

  • 提前备份 :更新证书前务必备份原有证书目录,用于故障回滚:tar -czvf /root/kubernetes-pki-backup.tar.gz /etc/kubernetes/pki

  • 时间同步:所有集群节点必须时间同步,时间偏差会导致证书验证失败、节点异常;

  • 全程校验:更新完成后必须检查节点、Pod、业务服务状态,确认集群无异常。

三、整体运维总结

  1. 集群升级:核心为「先控后工、滚动升级」,升级前校验兼容性、升级后全量巡检,不同版本升级规则不通用,需适配对应版本文档;

  2. 证书更新:kubeadm集群优先使用自动更新,高效稳定;手动集群需规范生成证书、逐一替换,重点做好备份;

  3. 通用准则:所有高危运维操作(升级、更证)必须提前备份,测试环境验证后再上生产,操作后全面校验集群与业务状态。

相关推荐
脆皮炸鸡7554 小时前
进程信号~信号的产生
linux·服务器·开发语言·经验分享·笔记·学习方法
_Evan_Yao4 小时前
计算机专业四年学习路线图(大一版)
学习
逆境不可逃4 小时前
【与我学 ClaudeCode】工具与执行篇:从 0 到 1 拆解 Agent Loop 与 Tool Use 的极简设计哲学
人工智能·学习·agent·claudecode
red_redemption4 小时前
自由学习记录(188)
学习
我想我不够好。4 小时前
2025.5.18 2.5hour
学习
可依软件crf2864 小时前
几个笔记软件的优缺点
笔记
大明者省4 小时前
宝塔无法登录完整排查步骤+经验总结
笔记
dreamsever5 小时前
OpenTelemetry可观测系统之Metrics学习
java·前端·学习
憧憬成为java架构高手的小白5 小时前
git(基于b站狂神说学习)【未完结】
git·学习