目录
[一、集群资源监控核心:Metrics Server](#一、集群资源监控核心:Metrics Server)
[1. 组件核心价值](#1. 组件核心价值)
[2. 快速部署与基础使用](#2. 快速部署与基础使用)
[二、Kubeadm 集群控制平面标准化升级](#二、Kubeadm 集群控制平面标准化升级)
[1. 检索可升级版本](#1. 检索可升级版本)
[2. 节点前置维护隔离](#2. 节点前置维护隔离)
[3. 分步升级集群核心组件](#3. 分步升级集群核心组件)
[① 升级 kubeadm 工具](#① 升级 kubeadm 工具)
[② 升级预检查与控制平面更新](#② 升级预检查与控制平面更新)
[③ 同步升级 kubelet 与 kubectl](#③ 同步升级 kubelet 与 kubectl)
[4. 恢复集群正常运行状态](#4. 恢复集群正常运行状态)
一、集群资源监控核心:Metrics Server
1. 组件核心价值
在 Kubernetes 集群运维场景中,实时感知节点与 Pod 的 CPU、内存资源负载,是性能调优、故障排查、资源合理调度的关键前提。Metrics Server 是 K8s 官方轻量化指标采集组件,依托 metrics.k8s.io 标准接口,集中采集、汇总集群节点与容器的资源使用率数据。作为基础监控底座,它为 kubectl top 资源查看命令、HPA 容器弹性伸缩等核心功能提供数据支撑,是集群轻量化运维必备基础组件。
2. 快速部署与基础使用
通过官方配置清单一键完成部署,快速启用集群指标采集能力:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.7.0/components.yaml
部署生效后,可通过简单命令直观获取集群资源负载状态:
# 查看集群所有节点 CPU、内存实时占用
kubectl top nodes
# 全命名空间查看所有 Pod 资源消耗情况
kubectl top pod -A
二、Kubeadm 集群控制平面标准化升级
Kubernetes 持续迭代更新,集群版本平滑升级是生产运维的重要工作。业界统一遵循先升级控制平面、后升级工作节点 的规范流程。本文以集群从 v1.30.0 迭代至稳定版 v1.30.3 为例,完整演示安全、规范的升级流程。
1. 检索可升级版本
查询本地可更新的 kubeadm 版本,确认目标升级版本号,合理制定升级方案:
apt list kubeadm -a
2. 节点前置维护隔离
升级前对控制平面节点进行隔离保护,避免升级过程中业务异常调度与数据扰动:
# 封锁节点,禁止新 Pod 调度至当前节点
kubectl cordon cka-master
# 驱逐节点内业务 Pod,忽略 DaemonSet 常驻组件
kubectl drain cka-master --delete-emptydir-data --ignore-daemonsets
3. 分步升级集群核心组件
① 升级 kubeadm 工具
apt-mark unhold kubeadm
apt install kubeadm=1.30.3-1.1 -y
apt-mark hold kubeadm
② 升级预检查与控制平面更新
# 预览升级方案,自动校验环境兼容性、依赖完整性
kubeadm upgrade plan
# 正式执行控制平面版本升级
kubeadm upgrade apply v1.30.3 --etcd-upgrade=false
③ 同步升级 kubelet 与 kubectl
保证集群组件版本统一,避免版本不一致引发运行异常:
apt-mark unhold kubelet kubectl
apt install kubelet=1.30.3-1.1 kubectl=1.30.3-1.1 -y
apt-mark hold kubelet kubectl
4. 恢复集群正常运行状态
# 重载系统配置,重启 kubelet 服务生效新版本
systemctl daemon-reload
systemctl restart kubelet.service
# 解除节点封锁,恢复正常调度能力
kubectl uncordon cka-master
# 查验全部节点状态与集群版本,确认升级成功
kubectl get nodes
三、课后问答题
Q:举例说明 K8s 中都有哪些常规的维护管理操作?
A:K8s 日常运维常用维护操作包含:使用 kubectl describe pod 查看 Pod 详细信息与事件记录,快速定位运行异常;通过 kubectl logs 抓取容器日志,排查业务故障;使用 kubectl top 实时查看节点与 Pod 资源占用;通过 cordon 封锁节点、drain 迁移节点负载,实现节点停机维护与资源迁移。
Q:如何升级 K8s 到新的版本?升级过程中有哪些注意事项?
A:标准升级流程:
- 查询系统可用版本,确定目标升级版本;
- 封锁控制平面节点,驱逐节点内业务负载;
- 依次完成 kubeadm、kubelet、kubectl 核心组件版本升级;
- 执行升级预检,正式完成控制平面升级;
- 重启集群服务,解除节点限制,核验集群整体运行状态。
注意事项:升级前仔细阅读官方版本文档,规避版本兼容问题;集群需采用静态控制平面或外部 etcd 架构,保障升级稳定性;提前做好集群配置、数据与业务状态备份,防止升级故障造成数据丢失与业务中断。