作者介绍:简历上没有一个精通的运维工程师。下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
我们上一章介绍了Docker基本情况,目前在规模较大的容器集群基本都是Kubernetes,但是Kubernetes涉及的东西和概念确实是太多了,而且随着版本迭代功能在还增加,笔者有些功能也确实没用过,所以只能按照我自己的理解来讲解。
我们在讲解kubectl的命令的时候讲过一个参数top,可以查看我们集群的监控信息,但是这个命令默认无法使用,因为还没有安装监控组件。虽然这个Prometheus组件部署以后这个指令还是不可用。但是我们可以通过这个Prometheus监控来看到这些资源使用情况。
[root@master01 ]# kubectl top node
error: Metrics API not available
[root@master01 ]#
我们部署任何一个服务,他都有可能出现问题,所以我们不仅需要在架构上保证他的高可用,同时也需要及时监控他的异常,避免出现问题而未及时发现,造成更大的异常从而触发业务故障。
在互联网早期的监控三件套:Nagios、Zabbix和Cacti ,到目前为止还有用的估计也就Zabbix。但是这个监控三件套都是传统监控项目,对目前的容器监控几乎没有对应的规则来适应。所以我们这里监控都不是以上几种。
目前在Kubernetes集群的监控里面Prometheus已经是事实上的标准,所以我们的的监控也是基于他来讲解的。
Prometheus 是一款开源的云原生监控与警报工具,由 SoundCloud 团队开发并于 2016 年加入 CNCF(云原生计算基金会),现已成为 Kubernetes 生态中监控领域的 事实标准。其设计专为动态、分布式环境(如容器化、微服务架构)优化,具备高效的数据采集、存储、查询及告警能力。
http_requests_total{method="POST", status="200"}
表示 HTTP POST 请求且状态码为 200 的计数器。rate(http_requests_total[5m])
。/metrics
端点拉取数据。cpu_usage{instance="server1", job="web"}
。(1625097600, 75.3)
。