Popeye 实时 K8s 集群巡检
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md 安装 @user_3c6cb52e/lint-live-kubernetes-clusters-for-misconfigurations-and-operational-hygiene-with-popeye。
技能介绍
要解决的问题
kubectl get 能告诉你集群里有什么,但不会告诉你这些东西配置得对不对。一个 Deployment 副本数配得太高、资源请求低于实际用量、容器没有配置健康检查探针,这些问题在配置文件里看不出来,要等到调度失败、Pod 不断重启或者节点 OOM 时才暴露。Popeye 把这类「运营异味」的排查过程自动化:它直接读取实时集群状态,对资源设置、探针配置和调度约束做一轮静态检查,输出一份可以逐项核对的报告,而不是等产品出事之后再去翻日志。
技能如何工作
核心能力是针对运行中集群的巡检,而不是对 YAML 文件的离线校验。 具体包括:
- 资源配置检查:识别不健康的资源配置,例如缺少资源 request/limit 声明的工作负载。
- 探针检查:找出没有配置健康检查探针的容器,这类容器在故障时无法被 kubelet 感知,容易造成僵死 Pod。
- 容量预警:当集群部署了
metrics-server时,Popeye 可以读取实时资源使用数据,报告潜在的资源超配或低配,并在集群容量即将耗尽时给出警告。 - 多命名空间支持:像
kubectl一样,默认使用default命名空间;通过参数指定后,可以在指定命名空间(如fred)上下文中运行检查。
使用时先准备好集群访问权限和 popeye 二进制,然后对目标集群执行检查即可。技能会执行 popeye 的扫描流程,并在输出中附带资源分配情况的解读。
适用边界与注意点
- 依赖
metrics-server:资源超配/低配的检查必须以集群内运行metrics-server为前提。没有它,Popeye 拿不到实时指标,容量相关的结论会缺失。 - 只诊断不修复:Popeye 输出的是报告和建议,修改配置仍需人工处理。
- 非 YAML lint 工具:它检查的是运行时集群的实际状态,离线的配置文件校验需要配合其他工具。
使用场景
- 集群已接入 metrics-server,需要核对 Pod 是否缺少探针、资源配置是否不健康
- 在默认命名空间巡检运行中的 Kubernetes 集群,输出不健康设置报告
- 准备把 workload 切到生产前,用 Popeye 检查实时集群配置与容量分配
- 排查节点容量风险:确认 metrics-server 在线,并检查是否资源超配或低配
适合人员
- 平台工程师:需要在上线前确认实时集群中 workload 的探针和资源配置
- SRE/值班工程师:收到容量或稳定性告警后,想快速定位资源配置与缺失探针
- DevOps 工程师:负责维护 Kubernetes 集群,定期核对运行配置是否规范
- 云原生应用负责人:准备扩缩容或搬迁工作负载前,想检查实时集群资源分配