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

相关推荐
Linux-18743 小时前
分布式链路追踪系统之二进制安装skywalking
elasticsearch·云原生·skywalking·分布式链路追踪系统·应用程序性能监控
BullSmall7 小时前
Anolis OS 8.10 完整安装 Docker CE(生产可用,解决 podman 冲突)
docker·容器·podman
heimeiyingwang8 小时前
【架构实战】可观测性三支柱:日志、指标、链路的融合
elasticsearch·架构·kubernetes
阿里云云原生10 小时前
阿里云 AgentTeams 7月第二周产品动态
云原生
CodexDave14 小时前
数据库连接池耗尽:排查顺序与三层兜底
服务器·前端·数据库·git·云原生·容器·kubernetes
java_logo14 小时前
ELK Docker Compose 部署指南:轻松搭建日志检索平台
elk·elasticsearch·docker·容器·kibana·logstash·轩辕镜像
ShallWeL14 小时前
Orin 上用 Docker 跑通目标检测功能
人工智能·目标检测·docker·容器
辰同学ovo15 小时前
用“舞台换景”讲清 Docker 的 Restart 与 Recreate
运维·docker·容器
名字还没想好☜16 小时前
Kubernetes Ingress 实战:域名路由、TLS 证书与 502/404 排查
运维·云原生·容器·kubernetes·ingress
Zhu75816 小时前
在k8s部署alist 3.62.0
云原生·容器·kubernetes