K8S系统监控:使用Metrics Server和Prometheus

Kubernetes 也提供了类似的linux top的命令,就是 kubectl top,不过默认情况下这个命令不会生效,必须要安装一个插件 Metrics Server 才可以。

Metrics Server 是一个专门用来收集 Kubernetes 核心资源指标(metrics)的工具,它定时从所有节点的 kubelet 里采集信息,但是对集群的整体性能影响极小,每个节点只大约会占用 1m 的 CPU 和 2MB 的内存,所以性价比非常高。

它调用 kubelet 的 API 拿到节点和 Pod 的指标,再把这些信息交给 apiserver,这样 kubectl、HPA 就可以利用 apiserver 来读取指标了。

Metrics Server 的所有依赖都放在了一个 YAML 描述文件里,你可以使用 wget 或者 curl 下载:

复制代码
wget https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

kubectl top 来查看 Kubernetes 集群当前的资源状态了。它有两个子命令,node 查看节点的资源使用率,pod 查看 Pod 的资源使用率。

复制代码
kubectl top node
kubectl top pod -n kube-system

Kubernetes 为此就定义了一个新的 API 对象,叫做"HorizontalPodAutoscaler",简称是"hpa"。它是专门用来自动伸缩 Pod 数量的对象,适用于 Deployment 和 StatefulSet。

HorizontalPodAutoscaler 的能力完全基于 Metrics Server,它从 Metrics Server 获取当前应用的运行指标,主要是 CPU 使用率,再依据预定的策略增加或者减少 Pod 的数量。

Prometheus 系统的核心是它的 Server,里面有一个时序数据库 TSDB,用来存储监控数据,另一个组件 Retrieval 使用拉取(Pull)的方式从各个目标收集数据,再通过 HTTP Server 把这些数据交给外界使用。

在 Prometheus Server 之外还有三个重要的组件:

  • Push Gateway,用来适配一些特殊的监控目标,把默认的 Pull 模式转变为 Push 模式。
  • Alert Manager,告警中心,预先设定规则,发现问题时就通过邮件等方式告警。
  • Grafana 是图形化界面,可以定制大量直观的监控仪表盘。

此文章为7月Day24学习笔记,内容来源于极客时间《Kubernetes入门实战课》,推荐该课程。

相关推荐
小小龙学IT3 小时前
Kubernetes 深度实践:架构、API 与避坑指南
容器·架构·kubernetes
MrSYJ8 小时前
别人再问你路由表是啥,这篇文章摔它脸上
docker·云原生·kubernetes
吴声子夜歌9 小时前
Nginx应用与运维——Nginx在Kubernetes中的应用(一)
运维·nginx·kubernetes
吴声子夜歌11 小时前
Nginx应用与运维——Nginx在Kubernetes中的应用(三)
运维·nginx·kubernetes
sbjdhjd11 小时前
云安全 | Docker 容器逃逸复盘(一):从隔离边界到运行时链路,如何确认自己身处容器
网络安全·docker·云原生·容器·kubernetes·云计算·云安全
吴声子夜歌12 小时前
Nginx应用与运维——Nginx在Kubernetes中的应用(二)
运维·nginx·kubernetes
寻林写彡1 天前
01| 裸机部署 K8S:从零搭建生产可用集群
云原生·kubernetes
wzq11_6661 天前
Kubernetes集群——Service篇(详细讲解!!!)
云原生·容器·kubernetes
小匠石钧知2 天前
06_在k8s集群中安装MetalLB实现LoadBalancer
云原生·容器·kubernetes·service·loadbalancer·metallb
troy1283 天前
阿里云 vs 谷歌云:Kubernetes 部署深度对比分析
阿里云·kubernetes·云计算