【Kubernetes】(十九)监控与升级

目录

[一、集群资源监控核心: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:标准升级流程:

  1. 查询系统可用版本,确定目标升级版本;
  2. 封锁控制平面节点,驱逐节点内业务负载;
  3. 依次完成 kubeadm、kubelet、kubectl 核心组件版本升级;
  4. 执行升级预检,正式完成控制平面升级;
  5. 重启集群服务,解除节点限制,核验集群整体运行状态。

注意事项:升级前仔细阅读官方版本文档,规避版本兼容问题;集群需采用静态控制平面或外部 etcd 架构,保障升级稳定性;提前做好集群配置、数据与业务状态备份,防止升级故障造成数据丢失与业务中断。

相关推荐
炸炸鱼.3 小时前
Kubernetes Pod 深度理解:从入门到实战
云原生·容器·kubernetes·pod
云游牧者3 小时前
K8S网络策略全解-NetworkPolicy与GlobalNetworkPolicy实战
网络·容器·kubernetes·cni
宇明一不急3 小时前
k8s 常用的正则表达式
云原生·容器·kubernetes
云游牧者4 小时前
K8S-HPA自动扩缩容实战指南
云原生·容器·kubernetes·hpa·弹性伸缩·hpv
念恒123064 小时前
Docker(容器技术发展史)
docker·容器
成为你的宁宁4 小时前
【K8S存储管理:PV/PVC动态供应及NFS动态供给实战】
云原生·容器·kubernetes
容器魔方4 小时前
“驾驭工程”下一跳?JiuwenClaw AgentTeam开启“协同工程”全新范式
人工智能·云原生·容器·架构·开源
YuanDaima20484 小时前
Docker 核心架构与底层技术原理解析
运维·人工智能·docker·微服务·容器·架构·个人开发
liux35284 小时前
Kubernetes v1.27.16 部署 Prometheus + Grafana + Alertmanager 监控体系
kubernetes