问题描述
在 Kubernetes 的环境中,不同的角色通常有不同的职责:
1)管理人员角色:如集群管理员、网络运营人员、或命名空间管理员等关注基础设施方面的工作人员。常见的问题可能有:节点是否健康?我们是否应该增设一个工作节点?集群的利用率是多少?用户的配额是否即将耗尽?
2)开发人员角色:主要考虑和操作他们的应用程序的上下文环境,在目前的微服务时代,他们可能要关心几个甚至十几个应用程序。例如,承担开发角色的工作人员可能会问:我是否为我的应用分配了足够的资源?我的应用应该扩展到多少个副本?我是否可以访问正确的卷,以及还有多少容量?是否有运行失败的应用,如果有,原因是什么?
该笔记将记录:在 Kubernetes Cluster 中,如何部署监控服务,以及常见问题处理,我们将集中介绍基础设施与应用程序层监控。
解决方案
最早,我们首先利用 Kubernetes 的存活探针和就绪探针来监测应用程序健康,但这种方式只是让 Kubernetes 感知应用状态的手段,并非集群监控。
接下来我们将讨论如何利用监视集群需要考虑的问题、相关方法、解决方案。
监控 = 收集 + 存储 + 展示 + 告警
指标收集
1)Heapster
2)Metrics Server => Metrics API
3)Kube State Metrics:How To Setup Kube State Metrics On Kubernetes Cluster
导出:
Exporter
Kubernetes Event
GitHub – resmoio/kubernetes-event-exporter
存储:
1)Prometheus
2)InfluxDB
展示:
1)Grafana
告警:
1)AlertManager