1、集群监控
在kubernetes新的监控体系中,Metrics Server用于提供核心指标,包括Node,pod的CPU和内存使用指标.对其他定义指标的监控则由Prometheus等组件来完成.
1、prometheus
2、node_exporter
用于采集主机相关的性能数据,部署完成后,要为每个Node上运行一个node-exporter Pod
3、Grafana用于展示专业的监控页面
2、集群统一日志管理
在容器中输出到控制台的日志,都会以*-json的命名方式保存在/var/lib/docker/containers/目录下,这就为日志采集和后续处理奠定了基础.
Kubernetes推荐采用Fluentd+Elasticsearch+Kibana完成对系统和日志的搜集,查询和展现工作.
在各Node上都运行一个Fluentd容器,采集本节点/var/log和/var/lib/docker/container两个目录下的日志进程,将其汇总到Elasticsearch集群,最终通过Kibana完成和用户的交互工作.
EFK由ElasticSearch、Fluentd和Kiabana三个开源工具组成。其中Elasticsearch是一款分布式搜索引擎,能够用于日志的检索,Fluentd是一个实时开源的数据收集器,而Kibana 是一款能够为Elasticsearch 提供分析和可视化的 Web 平台。这三款开源工具的组合为日志数据提供了分布式的实时搜集与分析的监控系统。
而在此之前,业界是采用ELK(Elasticsearch + Logstash + Kibana)来管理日志。Logstash是一个具有实时渠道能力的数据收集引擎,但和fluentd相比,它在效能上表现略逊一筹,故而逐渐被fluentd取代,ELK也随之变成EFK。
3、容器的健康检查
pod通过两类探针来检查容器的健康状态.
1、LivenessProbe,用于判断容器是否健康并反馈给kubelet.
如果不健康,kubelet将删除该容器,
2、ReadinessProbe探针,用于判断容器是否启动完成,且准备接收请求.
如果检测到启动失败,pod的状态将被修改.