写点什么

Kuberhealthy:综合测试 Kubernetes 集群

作者:K Jonas

  • 2019-05-17
  • 本文字数:1645 字

    阅读完需:约 5 分钟

Kuberhealthy:综合测试Kubernetes集群

Comcast开发的开源解决方案Kuberhealthy,通过在 Kubernetes 集群中执行综合测试来检测Kubernetes问题。Kuberhealthy 通过 JSON 状态页面和Prometheus指标端点报告测试结果,为 Kuberhealthy 指标提供灵活的告警选项。


通过复制实际 Kubernetes 工作流,Kuberhealthy 尝试识别那些可能会被忽视的生产问题。Kuberhealthy 检测到的潜在问题包括:由于 CNI 通信故障而陷于“Terminating”状态的 pod、由于磁盘配置错误而陷于“ContainerCreating”状态的 pod,或者重启速度过快的 pod。为了识别这类问题,Kuberhealthy 并行运行以下检查:


  • Daemonset 部署和终止:该测试把 daemonset 部署到 Kuberhealthy 命名空间,等待所有 pod 达到“Ready”状态,终止这些 pod,并确保终止成功。

  • 组件健康状态:检查集群组件状态的现状,如果状态停机超过 5 分钟就告警。

  • 过多的 pod 重启:监控一个 pod 在提供的命名空间是否一小时内重启超过 5 次,默认为 kube 系统。

  • Pod 状态:检查那些超过 10 分钟且不处于“Ready”状态的 pod。

  • DNS:检查集群内外的 DNS 故障


计划对未来版本进行其他测试,包括:服务配置、DNS 解析和磁盘配置。


如果任何一个 Kuberhealthy 测试发生了错误或故障,那么,错误细节将在 http://kuberhealthy.kuberhealthy 上报告一个 JSON 状态页。该状态页面包含一个布尔类型的 OK 字段(用于指示 Kuberhealthy 状态),以及一些 JSON 对象(用于表述每次 Kuberhealthy 检查的检查细节),其中包括一个列出所有潜在错误描述的错误数组。有关检查的其他信息(如上次检查的运行时间)也可以在检查细节对象中找到。


 {  "OK": true,  "Errors": [],  "CheckDetails": {    "ComponentStatusChecker": {      "OK": true,      "Errors": [],      "LastRun": "2018-06-21T17:32:16.921733843Z",      "AuthoritativePod": "kuberhealthy-7cf79bdc86-m78qr"    },    "DaemonSetChecker": {      "OK": true,      "Errors": [],      "LastRun": "2018-06-21T17:31:33.845218901Z",      "AuthoritativePod": "kuberhealthy-7cf79bdc86-m78qr"    },    "PodRestartChecker namespace kube-system": {      "OK": true,      "Errors": [],      "LastRun": "2018-06-21T17:31:16.45395092Z",      "AuthoritativePod": "kuberhealthy-7cf79bdc86-m78qr"    },    "PodStatusChecker namespace kube-system": {      "OK": true,      "Errors": [],      "LastRun": "2018-06-21T17:32:16.453911089Z",      "AuthoritativePod": "kuberhealthy-7cf79bdc86-m78qr"    }  },  "CurrentMaster": "kuberhealthy-7cf79bdc86-m78qr"}
复制代码


来自 Kuberhealthy README.md的状态页示例


Kuberhealthy 可以和Helm或 yaml 规范文件一起安装,仅在集群中可用。一旦完成安装,Kuberhealthy 会运行两个实例,其中包括pod中断预算滚动更新策略,以确保高可用性。Kuberhealthy 提供 Prometheus服务监控器配置以和 Prometheus 告警以及安装Grafana控制面板的模板进行集成。


Comcast 开发了 Kuberhealthy 以满足监控其Kubernetes集群健康状况和稳定性的需要,并和现有监控工具(如 Prometheus)进行了集成。通过模拟实际工作负载,Kuberhealthy 给 Comcast 提供了更健壮的 Kubernetes 监控解决方案。


监控 Kubernetes 集群健康状况的其他方法包括:Kubernetes 工具kubelet,它聚合了 pod 资源使用状况统计数据,以及cAdvisor,它负责收集 CPU、内存、文件系统和网络使用情况统计数据。Grafana 提供一个插件以通过 Prometheus 收集和可视化这些指标。除了 Kubernetes 工具之外,kube状态指标添加了对 Kubernetes API 服务器的侦听,收集关于各个对象(如部署、节点和 pod)健康状况的指标。与 Kuberhealthy 类似,这些指标以明文形式报告给指标端点,该指标端点可以与 Prometheus 进行集成。


请遵循安装指南或在Kubernetes Slack的 Kuberhealthy 频道中了解更多信息以开始使用 Kuberhealthy。


阅读英文原文:Kuberhealthy: Synthetic Testing for Kubernetes Clusters


2019-05-17 08:005622
用户头像

发布了 199 篇内容, 共 85.9 次阅读, 收获喜欢 295 次。

关注

评论

发布
暂无评论
发现更多内容

mybatis xml文件热加载实现

越长大越悲伤

mybatis springboot java

浅析 python 一切皆对象

蓬蒿

Python python对象 一切皆对象

为什么大家都喜欢“人天”作为估算单位?

Bruce Talk

Scrum 敏捷开发 Agile

浅谈数据仓库工具——Hive

数新网络官方账号

Elasticsearch简介以及索引原理

数新网络官方账号

赠票 | 在北京,见证边缘的力量

俞凡

Handler消息传递机制浅析

芯动大师

Activity Handler runOnUiThread

多功能代码编辑器:CodeRunner激活版

真大的脸盆

代码编辑器 代码编辑 编辑代码

Flink CDC

数新网络官方账号

代码覆盖率最佳实践

数新网络官方账号

Kubernetes 简介及其调度原理

数新网络官方账号

关于GPT-4的产品化狂想

脑极体

AI

面试高频问题之C++编译过程

小万哥

c++ 程序员 后端 编译 开发

阿里巴巴独家的SpringCloud Alibaba学习笔记,面面俱到,太全了

架构师之道

编程 微服务 计算机 程序眼

明道云在制造行业的五个实施案例与建议

明道云

矢量绘图UI设计:Sketch 95.3中文激活版

真大的脸盆

Mac UI Mac 软件 ui设计

架构实战营-模块六作业(拆分电商系统为微服务)

🐢先生

架构实战营

浅谈Spark分布式计算

数新网络官方账号

Web3社交网络的另一种思路 - Oi! Network解析

股市老人

华为云ECS/HECS:中小企业上云第一步

IT科技苏辞

Kotlin 学习笔记(二)—— 数据类、密闭类、循环写法以及常用集合操作符

修之竹

android kotlin

【Redis源码分析】Server启动过程

零点999

redis Redis 协议 Redis 核心技术与实战 Redis 数据结构 redis 底层原理

这可能是2023最全的Java面试八股文!共计1658页,Java技术手册的天花板

架构师之道

Java 面试

CDC工具之Debezium

数新网络官方账号

往往排查很久的问题,最后发现都非常简单。。。

艾小仙

Java kafka spring

机器学习算法(五):基于企鹅数据集的决策树分类预测

汀丶人工智能

数据挖掘 机器学习 决策树

帮师姐把100个Excel中符合条件的数据,汇总到1个Excel里

程序员晚枫

Python Excel 自动化办公

如何选择合适的智慧公厕设备厂家?

光明源智慧厕所

智慧城市

CDC工具之Canal

数新网络官方账号

压缩解压工具:Keka中文版

真大的脸盆

Mac Mac 软件 压缩工具 解压缩软件 解压软件

两个比较容易混淆的函数

Joseph295

Kuberhealthy:综合测试Kubernetes集群_软件工程_InfoQ精选文章