【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 架构,保障升级稳定性;提前做好集群配置、数据与业务状态备份,防止升级故障造成数据丢失与业务中断。

相关推荐
垚垚学技术_聚焦云原生4 分钟前
K8s OpenEBS LVM 动态存储 PVC Pending 排查记
云原生·容器·kubernetes
m0_646429979 小时前
Docker 完整核心知识点总结(超通俗易懂版)
运维·docker·容器
我不是阵雨12 小时前
微服务幂等性深度解剖
微服务·云原生·架构
吴声子夜歌12 小时前
Docker入门与实战——实战案例(Web服务与应用)
docker·容器
a59865213 小时前
Docker云手机搭建挂机环境,外网远程访问完整实操
docker·容器·智能手机·云手机
郭老二14 小时前
【docker】使用阿里云的容器镜像服务(ACR)构建自己的容器仓库
阿里云·docker·容器
code_slave(码畜)15 小时前
微服务架构落地:消息队列架构设计(上篇)——异步解耦、削峰填谷,看懂业务事件流转本质
spring boot·spring cloud·微服务·云原生·架构
code_slave(码畜)18 小时前
微服务架构落地:消息队列架构设计(下篇)——消息堆积、死信治理与集群监控告警实战
spring boot·spring cloud·微服务·云原生·中间件·架构
灯澜忆梦19 小时前
【docker】#2 | 基础命令
docker·容器·eureka