2025上半年,最新 AI实践都在这!20+ 应用案例,任听一场议题就值回票价 了解详情
写点什么

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:005688
用户头像

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

关注

评论

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

Java中的Collection集合

共饮一杯无

Java 集合 11月月更

VoneBaaS与兆芯完成产品兼容互认证

旺链科技

区块链 产业区块链 VoneBaaS 企业号十月PK榜

react源码分析:深度理解React.Context

flyzz177

React

从React源码来学hooks是不是更香呢

goClient1992

React

版本控制 | 想要成为硬件设计高手?最佳实践了解一下!

龙智—DevSecOps解决方案

版本控制 硬件设计 硬件电路

VoneBaaS带来高效链改方案

旺链科技

区块链 产业区块链 世界互联网大会 VoneBaaS 企业号十月PK榜

谈谈企业级前端 Angular 应用的定制化二次开发话题

汪子熙

前端开发 angular SAP Hybris 11月月更

Java高效找出两个大数据量List集合中的不同元素

共饮一杯无

Java List 11月月更

前端常见vue面试题合集

bb_xiaxia1998

Vue

黑客“劫持”了一颗卫星,用它直播黑客大会和放电影

博文视点Broadview

阿里云日志服务SLS携手观测云发布可观测性解决方案,共建可观测应用创新

TalkingData

阿里云 可观测 存储上云 日志服务 sls

带你实现react源码的核心功能

goClient1992

React

【选型攻略】MLCC选型,要注意些什么?易学易用

元器件秋姐

元器件选型 MLCC选型 元器件选型攻略 元器件电商平台

每日一题之Vue数据劫持原理是什么?

bb_xiaxia1998

Vue

Java Web(一)Maven

浅辄

maven Java web 11月月更

字节内部大佬私藏的数据结构与算法刷题笔记,熬夜刷上头,太顶了

程序知音

Java 数据结构 算法 数据结构与算法 后端技术

从React源码角度看useCallback,useMemo,useContext

goClient1992

React

【LeetCode】字符串轮转Java初学者题解

Albert

算法 LeetCode 11月月更

什么样的vue面试题答案才是面试官满意的

bb_xiaxia1998

Vue

接口请求合并的3种技巧,性能直接爆表!

小小怪下士

Java 程序员 接口

网易传媒基于 Arctic 的低成本准实时计算实践

网易数帆

实时计算 iceberg Arctic 湖仓一体 企业号十月 PK 榜

OKR之剑·实战篇02:OKR执行前的热身准备

vivo互联网技术

团队管理 OKR 目标管理

List集合和其子类ArrayList、LinkedList

共饮一杯无

Java 集合 11月月更

代码质量与安全 | 嵌入式开发中不得不说的编码标准——Barr-C

龙智—DevSecOps解决方案

嵌入式 嵌入式系统

Java中的集合实现赌神、赌圣、赌侠斗地主

共饮一杯无

Java 集合 11月月更

react源码分析:实现react时间分片

flyzz177

React

互联网+背景下企业客户服务的创新之路

Baklib

【docker】软链接迁移docker碰到的问题

非晓为骁

Docker 迁移

Web组态软件之Sovit2D组态可视化编辑器

2D3D前端可视化开发

组态软件 web组态 组态编辑器 工业组态软件 web组态软件

每日一题之Vue的异步更新实现原理是怎样的?

bb_xiaxia1998

Vue

react源码分析:babel如何解析jsx

flyzz177

React

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