写点什么

Kuberhealthy:综合测试Kubernetes集群

作者:K Jonas

2019 年 5 月 17 日

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 年 5 月 17 日 08:004719
用户头像

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

关注

评论

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

学习总结-week13

张荣召

Android知识体系大纲!Android平台HTTPS抓包解决方案及问题分析,年薪50W

欢喜学安卓

android 程序员 面试 移动开发

今天发的被删了,不是我没写

lidaobing

28天写作

13.2大数据计算引擎Spark(下)

张荣召

欧盟推出新数字法案,会是一场“锄强扶弱”的数字监管变革吗?

脑极体

TypeScript | 第一章:环境搭建及基础数据类型

梁龙先森

typescript 前端 七日更

我们该如何正确的中断一个线程的执行??

冰河

Java 并发编程 多线程 高并发 中断线程

Docker

云淡风轻

DDIA 读书笔记(7)分布式系统的问题

莫黎

读书笔记 分布式系统

还在用ELK? 是时候了解一下轻量化日志服务Loki了

京东智联云开发者

DevOps 云原生 日志监控

权限系统的基本概念和架构

程序那些事

权限系统 程序那些事 SSO 权限架构 权限认证

灵魂一击!详解Java中的IO输入输出流

程序员小毕

Java 程序员 架构 io

13.1大数据计算引擎Spark(上)

张荣召

余额和核心信息数据安全分享

冬天的秘密

加密 防篡改 数据隐私

第九周-总结

jizhi7

深度剖析原理!2020年Android网络编程总结篇,已开源

欢喜学安卓

android 程序员 面试 移动开发

不讲码德!坏味道偷袭我这个老码农

爱笑的架构师

Java 代码审查 代码坏味道 代码规范 七日更

英特尔下一代10nm Ice Lake处理器登陆腾讯云,星星海自研二路服务器内“芯”强大

intel001

66把锁的门禁系统,告诉你区块链的特点

CECBC区块链专委会

区块链

互联网已经干得很好的事情,不应该是区块链干的

CECBC区块链专委会

区块链 互联网

第九周-作业

jizhi7

程序员告诉你:C/C++后台开发需要学习哪些技能书

赖猫

c++ Linux 后台开发

创业感悟 | 2021是继续打工还是选择创业?

黑马腾云

创业

我们为什么选择VUE来构建前端

力软.net/java开发平台

Vue 前端

如何坚持做一件事情

熊斌

个人成长 七日更

DBA 的效率加速器——CloudQuery v1.3.0 上线!

CloudQuery社区

数据库 运维 开发 dba

第13周

袭望

未来30年推动全球经济增长的主要动力是数据资产

CECBC区块链专委会

区块链 移动互联网

【Java入门】String,StringBuffer和StringBuilder

HQ数字卡

Java 七日更

阿里P8手把手教你!微信小程序的事件处理,安卓系列学习进阶视频

欢喜学安卓

android 程序员 面试 移动开发

如何守护数据安全? 这里有一份RDS灾备方案为你支招

京东智联云开发者

数据库 云数据库

2021年,算法还“香”吗?

2021年,算法还“香”吗?

Kuberhealthy:综合测试Kubernetes集群-InfoQ