Kubernetes技术分析之监控

Kubernetes技术分析之监控

作者:吴龙辉 2015-08-10 14:41:39

云计算 监控是运维的根基,是非常重要的一环,对此Kubernete提供了平台本身以及应用的监控,本文介绍 Kubernetes中2个主要的监控模块cAdvisor 和Heapster 。

Docker的流行激活了一直不温不火的PaaS,随着而来的是各类Micro-PaaS的出现,Kubernetes是其中***代表性的一员,它是Google多年大规模容器管理技术的开源版本。本系列文章将逐一分析Kubernetes,本文介绍 Kubernetes中2个主要的监控模块cAdvisor 和Heapster 。

Kubernetes监控

监控是运维的根基,是非常重要的一环,对此Kubernete提供了平台本身以及应用的监控,下图是Kubernete中监控的逻辑设计图:

cAdvisor

监控agent, 在每个Kubernetes Node上都会运行cAdvisor 。cadvisor 会收集本机以及容器的监控数据(CPU, memory, filesystem, and network usage statistics)。

在较新的Kubernetes版本里,cadvior功能已经被集成到了kubelet组件中。在Node节点上可以直接访问cadvisor 的界面:

也可以调用cadvisor 的API接口,参考:

https://github.com/google/cadv … pi.md

下面是cadvisor 一条记录,可以看到统计的监控数据范围:

 

  1. { 
  2.         "timestamp": "2015-08-06T16:26:14.407749377+08:00", 
  3.         "cpu": { 
  4.             "usage": { 
  5.                 "total": 9868208554, 
  6.                 "per_cpu_usage": [9868208554], 
  7.                 "user": 1850000000, 
  8.                 "system": 280000000 
  9.             }, 
  10.             "load_average": 0 
  11.         }, 
  12.         "diskio": { 
  13.             "io_service_bytes": [{ 
  14.                 "major": 253, 
  15.                 "minor": 7, 
  16.                 "stats": { 
  17.                     "Async": 13946880, 
  18.                     "Read": 13946880, 
  19.                     "Sync": 0, 
  20.                     "Total": 13946880, 
  21.                     "Write": 0 
  22.                 } 
  23.             }], 
  24.             "io_serviced": [{ 
  25.                 "major": 253, 
  26.                 "minor": 7, 
  27.                 "stats": { 
  28.                     "Async": 369, 
  29.                     "Read": 369, 
  30.                     "Sync": 0, 
  31.                     "Total": 369, 
  32.                     "Write": 0 
  33.                 } 
  34.             }] 
  35.         }, 
  36.         "memory": { 
  37.             "usage": 8548352, 
  38.             "working_set": 4067328, 
  39.             "container_data": { 
  40.                 "pgfault": 6462, 
  41.                 "pgmajfault": 132 
  42.             }, 
  43.             "hierarchical_data": { 
  44.                 "pgfault": 6462, 
  45.                 "pgmajfault": 132 
  46.             } 
  47.         }, 
  48.         "network": { 
  49.             "name": "", 
  50.             "rx_bytes": 0, 
  51.             "rx_packets": 0, 
  52.             "rx_errors": 0, 
  53.             "rx_dropped": 0, 
  54.             "tx_bytes": 0, 
  55.             "tx_packets": 0, 
  56.             "tx_errors": 0, 
  57.             "tx_dropped": 0 
  58.         }, 
  59.         "task_stats": { 
  60.             "nr_sleeping": 0, 
  61.             "nr_running": 0, 
  62.             "nr_stopped": 0, 
  63.             "nr_uninterruptible": 0, 
  64.             "nr_io_wait": 0 
  65.         } 
  66.     }, 

 

Heapster

Heapster 收集所有Kubernetes Node,然后汇总数据,然后可以导到第三方工具(如Influxdb)。

Heapster 可以以Pod的方式运行在Kubernetes平台里,也可以单独运行以standalone的方式。

使用Pod方式部署的话问题比较多,本文采用standalone方式部署。

 

  1. $ docker run  -p 8082:8082 \ 
  2. --add-host=node1:192.168.3.147 --add-host=node2:192.168.3.148 --add-host=node3:192.168.3.149 \ 
  3. kubernetes/heapster:v0.15.0 \ 
  4. --source=kubernetes:http://192.168.3.146:8080?inClusterConfig=false&useServiceAccount=false \ 
  5. --sink=influxdb:http://10.254.209.104:8086  

 

source用于配置监控来源,它支持的参数:

  • inClusterConfig – Use kube config in service accounts associated with heapster’s namesapce. (default: true)
  • kubeletPort – kubelet port to use (default: 10255)
  • kubeletHttps – whether to use https to connect to kubelets (default: false)
  • apiVersion – API version to use to talk to Kubernetes. Defaults to the version in kubeConfig.
  • insecure – whether to trust kubernetes certificates (default: false)
  • auth – client auth file to use. Set auth if the service accounts are not usable.
  • useServiceAccount – whether to use the service account token if one is mounted at/var/run/secrets/kubernetes.io/serviceaccount/token (default: false)

注意:–add-host主要是因为Heapster 会根据hostname去查询node的IP,参考:

https://github.com/GoogleCloud … 62998

Heapster 运行后,可以在influxdb查询到数据,说明监控数据已经上报:

 

原文链接:http://www.dockone.io/article/569

文章来源网络,作者:管理,如若转载,请注明出处:https://shuyeidc.com/wp/292800.html<

赞 (0)
管理的头像管理
上一篇2025-05-20 07:56
下一篇 2025-05-20 07:57

相关推荐

  • jsp空间购买和交换数据空间怎么买,有哪些注意事项?

    购买JSP空间时,是否考虑过数据交换空间的性能?简米科技(2003年始创,23年行业沉淀)与酷番云(工信部一类增值电信全牌照)这类持牌自营机房的服务商,能确保数据交换的高效稳定,是值得优先选择的合作伙伴,为什么JSP空间需要搭配独立的数据交换空间从JSP应用特性看数据交换需求JSP基于Java技术,常用于企业级……

    2026-08-11
    0
  • 建网站用香港空间效果怎么样,香港空间稳定吗?

    建网站用香港空间,对于创建网站资产来说,核心价值在于免备案和全球带宽优势,尤其适合外贸、跨境电商和需要快速启动的项目,但你必须权衡国内访问延迟,并选择有资质的服务商以保证资产安全,香港空间的核心优势与适用边界免备案:节省时间就是节省成本国内服务器需要备案,通常需要10到20天,香港空间无需备案,域名解析后即可上……

    2026-08-11
    0
  • Java连接云数据库的方法是什么,如何操作

    Java连接云数据库的核心在于通过JDBC驱动,结合云服务商提供的连接地址、端口、数据库名及认证信息,配置安全策略(如SSL、IP白名单),即可实现稳定高效的远程数据库访问,基础准备:JDBC驱动与依赖管理连接云数据库前,需要确保开发环境具备对应的JDBC驱动,以最常见的MySQL为例,你需要引入mysql-c……

    2026-08-11
    0
  • 建网站公安联网备案必须使用数据码吗,备案流程是什么

    网站备案包括ICP备案和公安联网备案,两者缺一不可,公安联网备案必须使用服务商提供的数据码,选择持有合法资质的服务商是顺利通过备案的前提,为什么网站必须进行公安联网备案根据公安部《计算机信息网络国际联网安全保护管理办法》,网站开通后30日内必须到公安机关办理备案手续,未完成公安备案的网站,面临责令整改、关闭网站……

    2026-08-10
    0
  • 建一个企业网站大概需要多少钱?,怎么收费?

    建网站要多少钱,没有一个固定的数字,几百到几万都可能,但真正的“创建网站资产”绝不仅仅是初次投入的成本,而是基于长期稳定、合规和安全的持续性投入,其中核心取决于你选择了什么样的“地基”来承载你的业务,建站预算的构成与行业基准当你开始规划一个网站,最先面对的就是预算问题,一个常见的误区是只关注网站“看起来”的建造……

    2026-08-10
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注