首页 理论教育 容器健康检查和监控:云计算原理与技术成果

容器健康检查和监控:云计算原理与技术成果

时间:2023-10-29 理论教育 版权反馈
【摘要】:K8s确保Readiness探针检测通过,然后允许服务将流量发送到Pod。如果应用程序已经死了,K8s将删除Pod并启动一个新的应用程序。现在由于容器处在中间层,以及K8s本身也需要监控,因此有4个不同的组件需要监控并且搜集度量信息。

容器健康检查和监控:云计算原理与技术成果

1.容器健康检查

K8s服务健康检查从两个维度进行,分别为就绪状态检查(readiness)和存活状态检查(liveness),支持进行三种类型的探测:HTTP、Command和TCP。

Readiness探针旨在让K8s知道用户的应用何时准备好流量服务。K8s确保Readiness探针检测通过,然后允许服务将流量发送到Pod。如果Readiness探针开始失败,K8s将停止向该容器发送流量,直到它通过。

Liveness探针让K8s知道用户的应用程序是活着还是死了。如果应用程序还活着,那么K8s就不用管了。如果应用程序已经死了,K8s将删除Pod并启动一个新的应用程序。

2.容器监控

人们习惯于在两个层次监控:应用以及运行它们的主机。现在由于容器处在中间层,以及K8s本身也需要监控,因此有4个不同的组件需要监控并且搜集度量信息。

1)Cadvisor+InfluxDB+Grafana

一个简单的跨多主机的监控系统Cadvisor,将数据写入InfluxDB,InfluxDB是时序数据库提供数据的存储,存储在指定的目录下;而Grafana提供了Web控制台,自定义查询指标,从InfluxDB查询数据并展示。

2)Heapster+InfluxDB+Grafana(www.xing528.com)

Heapster是一个收集者,将每个Node上的Cadvisor的数据进行汇总,然后导到Influx-DB,支持从Cluster、Node、Pod的各个层面提供详细的资源使用情况。

Heapster:在K8s集群中获取Metrics和事件数据,写入InfluxDB。Heapster收集的数据比CacAdvisor多,而且存储在InfluxDB的也少。

InfluxDB:时序数据库,提供数据的存储,存储在指定的目录下。

Grafana:提供了Web控制台,自定义查询指标,从InfluxDB查询数据,并展示。

3)Prometheus+Grafana

Prometheus是个集DB、Graph、Statistics、Alert于一体的监控工具。提供多维数据模型(时序列数据由Metric名和一组key/value组成)和在多维度上灵活的查询语言(PromQl),提供了很高的写入和查询性能。对内存占用量大,不依赖分布式存储,单主节点工作,所以不具有高可用性,支持pull/push两种时序数据采集方式。

考虑到Prometheus在扩展性和高可用方面的缺点,在超大规模应用时可以考察下Thanos这样的面向解决Prometheus的长时间数据存储与服务高可用解决方案的开源项目:https://github.com/improbable-eng/thanos。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈