文档章节

怎样监控kubernetes容器?

 开普勒鑫球
发布于 2018/01/23 16:20
字数 935
阅读 16
收藏 0

胡鹏,开鑫金服数据中心资深工程师,负责工程环境的工具和系统建设、开发、维护、预研工作,包括CI、容器、部分IT公共服务和运维工具。微信号是:njhahp,欢迎交流。

 

 

一、容器的运行方式与VM和HOST的差异

 

Kubernetes是现在最流行的容器编排系统,容器与VM和HOST有着显著不同。那么怎样对k8s平台上的容器进行监控呢?首先需要注意容器的运行方式与VM和HOST的不同:

 

1. 运行实例从宏观层面迁移到微观层面

容器运行在私有网络中,通常情况下与外部网络隔离。怎样从外部网络进入到容器私有网络、获取容器的监控数据?

 

2. 运行实例从静态、长生命周期转变成动态、短生命周期

HOST和VM一般是静态IP地址,一旦开机、长期运行。而容器的IP是动态分配的,其创建、销毁、扩容、缩容非常频繁。如何及时发现新创建的容器、获取到它们的监控数据、并在仪表盘上恰当的展现出来?

 

二、容器监控方案概述

 

为了解决上述问题,kubernetes、promethues、influxdata等开源组织相继发布了一些容器监控工具和方案。例如:kubernetes 的 heapster+influxdb+grafana,prometheus的prometheus+alertmanager,influxdata的telegraf+influxdb+kapacitor。

 

我采用的是第一种,即: heapster+influxdb+grafana,实现简单、效果较好。

 

其中,heapster是k8s容器状态的收集、导出工具,influxdb是一种时序数据库,grafana是一种数据展示和报警系统。

 

 

heapster能导出当前时间点的所有容器的状态信息,解决了容器监控信息的采集和导出问题;grafana是功能强大的数据展示和报警工具,它的展示系统支持变量、模板、正则匹配、标签等功能,能把瞬息万变的容器信息有效组织、展示出来,报警系统支持多种方式、还可以基于webhook自己开发,实现短信报警等功能。

 

三、容器监控部署概述

 

(由于字数限制,不详述,具体请参考官方文档;所有组件都基于容器部署)

1. 部署influxdb

https://github.com/influxdata/influxdb

2. 部署heapster

https://github.com/kubernetes/heapster/tree/master/deploy

command加sink参数,包含influxdb的地址、用户名、密码,例如:

--sink=influxdb:http://influxdb.default:8086?db=heapster&user=heapster&pw=1234

3. 部署grafana

https://github.com/grafana/grafana

部署后请设置数据源datasource,加入influxdb。

 

四、设置仪表盘

 

Grafana的仪表盘也就是监控数据的展示界面,可以自己设计,还可以导出共享给别人。我设计了一个容器监控的仪表盘,共享在grafana网站上,地址是:

https://grafana.com/dashboards/3649

 

 

在namespace下拉框可以选择k8s容器的命名空间,在pod_name下拉框可以选择容器的匹配名称(前面几个字符或者全名都可以)。

 

五、建立容器报警

 

我共享的仪表盘含有两个变量:namespace和pod_name,这样的仪表盘叫:模板。Grafana目前不支持在模板里创建报警。为了创建报警,我们需要再建一个不带变量的仪表盘,然后在时序图的Alert菜单里设置报警,设置报警阀值、通道、内容等信息:

 

 

六、建立报警一览图

 

Grafana自带一个报警管理页面:

 

 

我们可以设计一个更清楚的报警一览图,可参考我共享的模板,地址是:

https://grafana.com/dashboards/3489

 

 

欢迎一起交流。转载请注明出处:开普勒鑫球

 

本文转载自:http://mp.weixin.qq.com/s/tbY29lXmVyklQhBCPXePtw

粉丝 1
博文 31
码字总数 0
作品 0
南京
私信 提问
技术分享:基于 Kubernetes 的 AI 训练实践

2017 China KEUC(Kubernetes End User Conference)秉承开放协作、技术共享的宗旨,致力于为业界带来最新 Kubernetes 技术、行业应用案例展示与最佳实践,同时将中国已有的优秀实践经验推广...

NewTech观察圈
2017/10/30
0
0
容器公司收购案——CoreOS 并购 RedSpread 意在让 K8S 变更强大

背景信息 今年 6 月份, PaaS 云计算软件公司 Apprenda 宣布收购容器初创公司 Kismatic ,这是北美的第一桩容器初创公司收购案。仅仅过去 4 个月,基于云计算的虚拟服务器公司 CoreOS 就宣布...

Caicloud
2016/11/22
62
0
每个 Kubernetes 应聘者应该知道的 5 个面试题

如果你是要面试 Kubernetes 相关职位的应聘者,这里给出了要提问的问题以及这些问题的重要性。 面试对面试官及候选人来说都很不容易。最近,我发现面试 Kubernetes 相关工作的候选人似乎尤其...

作者: Jessica Repka
01/01
0
0
中国东信基于Kubernetes的容器云PaaS平台

“中国-东盟信息港”是按照国家“一带一路”倡议总体布局要求、建设更为紧密的中国—东盟命运共同体、21世纪海上丝绸之路的一个信息平台:http://www.caih.com。东信基于Rancher Kubernetes架...

RancherLabs
2018/07/10
224
0
K8S使用就绪和存活探针配置健康检查

健康检查 健康检查(Health Check)可用于服务运行的状态监控,比如腾讯旗下的DNSPOD的D监控,要求配置一个访问路径以判断网站是否可以正常访问实际上就是一个健康检查,当发现健康检查失败时...

xiaomin0322
2019/07/04
35
0

没有更多内容

加载失败,请刷新页面

加载更多

Go Web 编程之 数据库

概述 数据库用来存储数据。只要不是玩具项目,每个项目都需要用到数据库。现在用的最多的还是 MySQL,PostgreSQL的使用也在快速增长中。 在 Web 开发中,数据库也是必须的。本文将介绍如何在...

darjunlee
今天
51
0
spring-boot-maven-plugin not found的解决方案。

通过IDE创建一个springboot项目, <plugin> <groupId>org.springframework.boot</groupId>//这行红色 <artifactId>spring-boot-maven-plugin</artifactId>//这行红色</plugin> 提示sprin......

一片云里的天空
今天
84
0
OSChina 周三乱弹 —— 我可能是个憨憨

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @宇辰OSC :分享Hare Je的单曲《Alan Walker-Faded(Hare Je remix)》: #今日歌曲推荐# 可以放松大脑的一首纯音乐 《Alan Walker-Faded(Har...

小小编辑
今天
266
3
搞定SpringBoot多数据源(3):参数化变更源

春节将至,今天放假了,在此祝小伙伴们新春大吉,身体健康,思路清晰,永远无BUG! 一句话概括:参数化变更源意思是根据参数动态添加数据源以及切换数据源,解决不确定数据源的问题。 1. 引言...

mason技术记录
昨天
99
0
sql 基础知识

sql 基础知识 不要极至最求一条sql语句搞定一切,可合理拆分为多条语句 1. sql 变量定义与赋值 Sql 语句中,直接在SELECT使用@定义一个变量,如:[@a](https://my.oschina.net/a8856225a)。 ...

DrChenXX
昨天
57
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部