20250710-3-Kubernetes 监控与日志管理-监控集群资源利用率(部署Metric-server)_笔记

一、基本资源概念

1. 命名空间



  • 概念:Kubernetes将资源对象逻辑上隔离,从而形成多个虚拟集群。
  • 应用场景:
    • 根据不同团队划分命名空间
    • 根据项目划分命名空间
    • 默认命名空间(default)
    • K8s系统命名空间(kube-system)
    • 公开命名空间(kube-public)
    • K8s内部命名空间(kube-node-lease)
  • 指定方法:
    • 命令行加-n参数
    • yaml资源元数据中指定namespace字段
  • 系统命名空间说明:
    • kube-system:存放K8s系统组件,如calico、coredns等
    • kube-public:公开可访问但很少使用
    • kube-node-lease:K8s内部使用,无需直接管理
1)示例操作
  • 查看资源:
    • kubectl get pods -n kube-system:查看系统命名空间中的pod
    • kubectl get pods:默认查看default命名空间
    • kubectl get namespace:查看所有命名空间
  • 创建命名空间:
    • kubectl create namespace a:创建命名空间a
    • kubectl create namespace b:创建命名空间b
  • 部署资源到指定命名空间:
    • kubectl create -n a:将资源部署到命名空间a
  • 删除命名空间:
    • kubectl delete namespace a:删除命名空间a
    • 注意:会级联删除命名空间内所有资源,属于高危操作
    • 最佳实践:先删除命名空间内资源再删除命名空间
  • 重要特性:
    • 不同命名空间资源名称可以重复
    • 资源不支持跨命名空间移动,只能重新部署
    • 命名空间主要用于逻辑隔离和权限控制

  • 权限控制:
    • 管理员可以查看所有命名空间
    • 普通用户只能访问被授权的命名空间
    • 后续可以通过RBAC进行细粒度权限控制
  • 注意事项:
    • 删除kube-system会导致集群崩溃
    • 操作命名空间前要做好备份
    • 删除操作没有确认提示,需格外谨慎
二、Kubernetes监控与日志管理

1. 查看资源集群状态



  • 组件状态检查:
    • 使用kubectl get cs命令查看Master节点组件运行状态
    • 该命令在v1.19+版本已被弃用,但仍可使用
    • 显示三个核心组件状态:scheduler(调度器)、controller-manager(控制器)、etcd-0(数据库)
  • 资源缩写查询:
    • 使用kubectl api-resources查看所有API资源及其缩写
    • 输出包含5列:资源名称、短格式、API版本、是否支持命名空间、资源类型
    • 系统中约有70种资源类型,每个都有对应的短格式(如pod→po)
  • 常用短格式示例:
    • pod→po
    • deployment→deploy
    • service→svc
    • componentstatuses→cs
    • 短格式可提高命令输入效率
  • 节点状态分析:
    • kubectl get node显示节点状态信息
    • 各列含义:名称、状态(Ready/NotReady)、角色标记、运行时长、版本
    • NotReady状态通常表示kubelet组件出现问题
  • 常用集群检查命令:
    • kubectl cluster-info:查看API Server代理的URL(了解即可)
    • kubectl describe <资源类型><名称>:查看资源详细信息
    • kubectl get <资源类型>:查看资源列表,常用选项:
      • -o wide:显示更详细信息(如Pod IP和所在节点)
      • -o yaml:以YAML格式导出资源配置
2. 监控集群资源利用率



  • 资源监控命令:
    • kubectl top node:查看节点资源利用率
    • kubectl top pod:查看Pod资源利用率
    • 默认会报错"Metrics API not available",需要额外安装metrics-server
  • Metrics Server介绍:
    • 集群范围的资源使用数据聚合器
    • 从各节点的kubelet API收集指标数据
    • 通过Kubernetes聚合器注册到Master API Server
    • 项目地址:https://github.com/kubernetes-sigs/metrics-server
  • 工作原理:
    • 每个节点的kubelet内置cadvisor组件
    • cadvisor负责采集容器资源指标
    • metrics-server聚合这些指标数据
    • 最终通过top命令展示给用户
三、知识小结

知识点

核心内容

关键操作/注意事项

难度系数

命名空间功能

逻辑隔离资源、分类整理、权限控制基础

不同命名空间可存在同名资源

⭐⭐

常用命名空间

default(默认)、kube-system(系统)、public(公开)

系统命名空间(kube-system)无需手动管理

资源查看命令

kubectl get pods -n <namespace>

必须指定命名空间查看非default资源

⭐⭐

命名空间创建

kubectl create namespace <name>

命名需体现业务/团队属性

资源部署定位

kubectl create -n <namespace>

部署时需明确目标命名空间

⭐⭐

高危删除操作

kubectl delete namespace <name>

连带删除所有内部资源,需先清理资源

⭐⭐⭐

资源类型缩写

po(pods)、svc(service)、deploy(deployment)

通过kubectl api-resources查询完整列表

⭐⭐

节点状态监控

kubectl get nodes

NotReady状态需检查kubelet服务

⭐⭐

详细日志查看

kubectl logs <pod> -n <namespace>

必须配套命名空间参数

⭐⭐

资源监控缺陷

kubectl top命令依赖metrics-server

需额外部署监控组件才能使用

⭐⭐⭐

权限控制基础

命名空间是RBAC授权的重要维度

后续可实现团队间的资源隔离

⭐⭐⭐

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值