前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >kubernetes addons之node-problem-detector

kubernetes addons之node-problem-detector

作者头像
yxxhero
发布2022-05-31 19:26:26
1.1K0
发布2022-05-31 19:26:26
举报
文章被收录于专栏:DevOps充电宝

node-problem-detector简介

node-problem-detector的作用是收集k8s集群管理中节点问题,并将其报告给apiserver。它是在每个节点上运行的守护程序。node-problem-detector可以作为DaemonSet运行,也可以独立运行。当前,GCE集群中默认开启此扩展。 项目地址: https://github.com/kubernetes/node-problem-detector

kubernetes目前问题

  • 基础架构守护程序问题:ntp服务关闭;
  • 硬件问题:CPU,内存或磁盘损坏;
  • 内核问题:内核死锁,文件系统损坏;
  • 容器运行时问题:运行时守护程序无响应
  • ... 当kubernetes中节点发生上述问题,在整个集群中,k8s服务组件并不会感知以上问题,就会导致pod仍会调度至问题节点。

为了解决这个问题,我们引入了这个新的守护进程node-problem-detector,从各个守护进程收集节点问题,并使它们对上游层可见。一旦上游层面发现了这些问题,我们就可以讨论补救措施。

node-problem-detector的问题检测类型

当前支持的问题检测类型:

  • SystemLogMonitor
  • SystemStatsMonitor
  • CustomPluginMonitor
  • HealthChecker 不同的检测类型通过不同的goroutine来实现,配置例子参考: https://github.com/kubernetes/node-problem-detector/tree/master/config, 配置文件为json结尾。

检测问题上报api

node-problem-detector使用Event和NodeCondition将问题报告给apiserver。

  • NodeCondition:导致节点无法处理于Pod生命周期的的永久性问题应报告为NodeCondition。
  • Event:对pod影响有限的临时问题应作为event报告。

支持的选项

--version:显示当前版本。 --hostname-override:用于node-problem-detector的自定义节点名称,用于更新condition并发出event。node-problem-detector首先从hostname-override获取节点名称,然后从NODE_NAME环境变量获取节点名称,最后从os.Hostname返回。

  • 对于系统日志监控器 --config.system-log-monitor:系统日志监控器配置文件的路径列表,以逗号分隔,例如 config/kernel-monitor.json。node-problem-detector将为每个配置启动一个单独的日志监视器。您可以使用不同的日志监视器来监视不同的系统日志。
  • 对于系统状态监控器 --config.system-stats-monitor:系统状态监视配置文件的路径列表,以逗号分隔,例如 config / system-stats-monitor.json。node-problem-detector将为每个配置启动一个单独的系统状态监视器。您可以使用不同的系统状态监视器来监视与问题相关的不同系统状态。
  • 对于自定义插件监视器 --config.custom-plugin-monitor:自定义插件监视器配置文件的路径列表,以逗号分隔,例如 config/custom-plugin-monitor.json。node-problem-detector将为每个配置启动一个单独的自定义插件监视器。您可以使用不同的自定义插件监视器来监视不同的节点问题。
  • Kubernetes exporter --enable-k8s-exporter:启用向Kubernetes API服务器报告的功能,默认为true。 --apiserver-override:一个URI参数,用于自定义node-problem-detector连接apiserver的地址。如果--enable-k8s-exporter为false,则忽略此内容。格式与Heapster的源标志相同。例如,要在没有身份验证的情况下运行,请使用以下配置:http://APISERVER_IP:APISERVER_PORT?inClusterConfig=false 请参阅heapster文档以获取可用选项的完整列表。 --address:绑定node-problem-detector服务器的地址。 --port:绑定node-problem-detector服务器的端口。使用0禁用。
  • Prometheus exporter --prometheus-address:绑定Prometheus抓取端点的地址,默认为127.0.0.1。 --prometheus-port:绑定Prometheus抓取端点的端口,默认为20257。使用0禁用。
  • Stackdriver exporter

--exporter.stackdriver:Stackdriver exporter程序配置文件的路径,例如 config/exporter/stackdriver-exporter.json,默认为空字符串。设置为空字符串以禁用。

访问个人网站,获取更多内容: https://www.aiopsclub.com/

- END -

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps充电宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • node-problem-detector简介
  • kubernetes目前问题
  • node-problem-detector的问题检测类型
  • 检测问题上报api
  • 支持的选项
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档