写点什么

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

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

关注

评论

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

35K成功入职:蚂蚁金服面试Java后端经历!「含面试题+答案」

Java 编程 程序员 架构 面试

智安小区建设,智慧安防小区改造建设方案

缘起短视频APP系统开发介绍

AI框架中图层IR的分析

华为云开发者联盟

mindspore IR

企业资产数据大屏,打破固有管理思维僵局,杜绝资产无效流失

一只数据鲸鱼

数据可视化 资产管理 金融资产 金融大屏

蜜蜂圈软件开发|蜜蜂圈APP系统开发

「腾讯面试题」兔子试毒

Java架构师迁哥

腾云视界APP开发|腾云视界软件系统开发

圆梦腾讯之路!6面阿里、5面字节、4面腾讯,终斩腾讯Offer

Java 编程 架构 面试

秀出天际的SpringBoot笔记,让开发像搭积木一样简单

阿凡达公链AC系统APP开发

2021Android高级面试题及答案,Android篇

欢喜学安卓

android 程序员 面试 移动开发

Tubacle挖矿系统APP开发搭建

你不知道的 Linux 使用技巧

学神来啦

Bi Token质押挖矿软件系统开发方案

火艺极速版短视频系统APP开发搭建

2021Android高级进阶学习资料,已拿意向书!

欢喜学安卓

android 程序员 面试 移动开发

百度工程师手把手教你实现代码规范检测工具

百度开发者中心

百度 代码规范

7月日更,红心向党,党员入驻,即送马克杯~

InfoQ写作社区官方

7月日更 热门活动

在C++中,你真的会用new吗?

华为云开发者联盟

c++ 内存 new new operator operator new

区块链的正确应用方式与前景

CECBC

看CarbonData如何用四招助力Apache Spark

华为云开发者联盟

spark Apache Spark ACID CarbonData 分布式集群计算框架

DOLLAR CAT/Dcat币挖矿系统开发

UC生态系统APP开发详情

区块链技术如何赋能医学成像?

CECBC

泪目!跳槽太不容易,蚂蚁金服三轮面试,四个小时灵魂拷问

Java 面试

INS视频怎么保存 (2021最新图文教程)

资源君

方法 经验分享 教程 资源分享 Instagram

千亿级数据迁移 mongodb 成本节省及性能优化实践(附性能对比质疑解答)

杨亚洲(专注MongoDB及高性能中间件)

MySQL 数据库 mongodb 架构 分布式数据库mongodb

GaussDB(for Redis)揭秘:Redis存算分离架构最全解析

华为云开发者联盟

redis 华为云 GaussDB(for Redis) 存算分离架构 中国系统架构师大会SACC

话题王者第三季,舍我其谁~

InfoQ写作社区官方

话题讨论 热门活动

BTQQ挖矿/比特全球/BT全球系统APP开发简介

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