Kubernetes监控手册01-体系介绍

秦晓辉@快猫星云 2022年11月1日

Kubernetes 监控体系驳杂,涉及到的内容非常多,总是感觉摸不到头绪,网上虽然有很多资料,都略显凌乱,没有一个体系化的讲解,今天开始,我们准备撰写一系列文章,把 Kubernetes 监控说透,从如何采集数据,到重点关注哪些指标,怎么做监控大盘,怎么配告警规则,全部囊括其中,让大家彻底理解 Kubernetes 监控,解决你的工作问题,当然,鉴于我们的知识储备水平,有些地方可能难免会有疏漏和错误,如果您发现有不合理的内容,欢迎联系我一起探讨。

Kubernetes 监控概述

当我们谈及 Kubernetes 监控的时候,我们在谈论什么?显然是 Kubernetes 架构下的各个内容的监控,Kubernetes 所跑的环境、Kubernetes 本身、跑在 Kubernetes 上面的应用等等。Kubernetes 所跑的环境,可能是物理机、虚拟机,并且依赖底层的基础网络,Kubernetes 上面的应用,可能是业务应用程序,也可能是各类中间件、数据库,Kubernetes 本身,则包含很多组件,我们通过一张 Kubernetes 架构图来说明。

Kubernetes 架构

下面是一张 Kubernetes 架构图,画的很简单,不过主要组件都有说明,下面我们来一起看一下。

Kubernetes架构

最左侧是 UI 层,包括页面 UI 以及命令行工具 kubectl,中间部分是 Kubernetes 控制面组件,右侧部分是工作负载节点,包含两个工作覆盖节点。

Kubernetes 哪些组件要监控

从架构图可以看出,UI 层显然不是关键,kubectl 命令行工具无需监控,如果有自建 UI 展示系统,那是需要监控的,不过因为 UI 层面不承担太多逻辑,出问题的概率很小,所以不是我们关注的重点。重点是中间的控制面组件以及右侧的工作负载节点。

控制面组件包括 API Server、Scheduler、Controller-Manager、ETCD 四个组件,每个组件都很重要,需要黑盒、白盒监控并举。工作负载节点运行了 Pod 容器负载,以及容器引擎和 Kubernetes Node 组件,容器引擎图上是 Docker,不过不局限 Docker,也可能是别的容器引擎,Kubernetes Node 组件包括 Kubelet 和 Kube-Proxy,也都是需要监控的。

总结

本篇简单开个头,对 Kubernetes 监控相关的内容做了概述,下一节开始,我们就开始介绍具体如何落地了。因为使用公有云的企业大都在使用云厂商托管的 Kubernetes,对于控制面组件已经交给云厂商来运维了,所以我们重点关注工作负载节点,下一节开始,我们先来介绍如何监控工作负载节点的OS。敬请期待。

关于作者

本文作者秦晓辉,快猫星云合伙人,文章内容是快猫技术团队共同沉淀的结晶,作者做了编辑整理,我们会持续输出监控、稳定性保障相关的技术文章,文章可转载,转载请注明出处,尊重技术人员的成果。