如何在Kubernetes集群中监控应用的状态?
##Kubernetes应用监控 Kubernetes应用监控是用于监控Kubernetes集群中应用状态,解决对集群运维管理的问题,让快速迭代开发的应用得到有效地监控,及时发现问题、实现可视化的工具。
Kubernetes应用监控一般由监控容器、实例和API这三个部分组成。
##监控容器 Kubernetes容器监控是指对Kubernetes集群中容器进行监控,可以将容器化应用和服务进行实时监控,负责检查应用的正常工作情况,有助于快速发现异常情况,并及时处理它们,使系统稳定运行。
容器监控的主要内容有:
0.1 容器的健康状态,
包括CPU使用率、内存使用率;
0.2 容器的服务状态,
响应时间和资源消耗;
0.3 容器的运行日志等。
我们可以采用开源的Prometheus监控Kubernetes上的容器,它用行动收集Kubernetes资源,并使用Prometheus存储库来存储它们,还可以通过Kubernetes集群常用的可视化工具来形象化展现监控结果。被监控的资源可以包括容器、pod、终端及其他Kubernetes资源。Prometheus可以通过监控各个Kubernetes资源的容器CPU使用率指标来实时掌控动态容器的负载情况,实现容器自动伸缩、弹性伸缩等。
##实例监控 Kubernetes集群实例监控可以实时监控和追踪实例,包括空闲和活动实例、异常实例、运行实例和已删除实例等。
实例监控的主要内容有:
0.4 硬件设备状态,
包括CPU、内存、硬盘状态等;
0.5 网络设备状态,
包括端口连接状态、bandwidth使用情况等;
0.6 容器状态,
包括执行状态、性能指标等等。
实例的监控可以采用Prometheus,Prometheus采集监控数据时提供了例如cAdvisor、Node Exporter、Kube-State-Metrics等Exporter。
1 API监控
Kubernetes API监控指的是对Kubernetes API的监控,包括对Kubernetes API的请求和响应的返回值的监控。
API监控的主要内容有:
1.1 API调用量,
包括API调用次数、API传输时间等;
1.2 API请求操作,
指定某种API请求是否被执行成功;
1.3 日志记录,
记录各个API调用记录,保存API请求及响应结果;
1.4 错误请求,
对错误请求进行记录,如HTTP状态码非200,及时发现问题。
凡事都有一定的风险,系统的健康情况可以通过API监控、监控量度以提高系统的可靠性和安全性。可以采用Prometheus来监控Kubernetes的API,比如可以采取Kube-state-metrics作为Kubernetes API监控的组件。