popeye 是一个实用程序,用于扫描实时 kubernetes 集群并报告已部署资源和配置的潜在问题。它可以根据部署内容对您的集群进行消毒。通过扫描您的集群,popeye 能够检测配置错误,并帮助您确保最佳实践的实施,从而预防未来问题的发生。其目标是减少在运行 kubernetes 集群时所面临的认知负担。此外,如果您的集群使用了 metric-server,popeye 将报告可能的资源分配过多/不足,并在集群容量不足时尝试警告您。
Popeye 是一个只读工具,它不会以任何方式更改您的 Kubernetes 资源!Popeye 会扫描您的集群以寻找最佳实践和潜在问题。目前,Popeye 仅查看节点、命名空间、pod 和服务。消毒器的目的是发现错误配置,例如端口不匹配、无效或未使用的资源、指标利用率、探针、容器映像、RBAC 规则、裸露资源等。
Popeye 适用于 Kubernetes 1.13+,您可以将 Popeye 容器化并作为一次性任务或 CronJob 直接在您的 Kubernetes 集群中运行。它可以在 linux、Macos 和 windows 平台上使用。
以下是在 Linux 上演示 Popeye 的使用方法:
wget https://www.php.cn/link/452e59f6084d94442fd8f653932afcb8/releases/download/v0.9.8/popeye_Linux_x86_64.tar.gz tar -zxf popeye_Linux_x86_64.tar.gz
检查 Popeye 的版本:
# ./popeye version ___ ___ _____ _____ K .-'-. | _ ___| _ __ / / __| 8 __| ` | _/ _ _/ _| V /| _| s `-,-`--._ `|_| ___/_| |___| |_| |___| [] .->' a `|-' Biffs`em and Buffs`em! `=/ (__/_ / _, ` _) `----; | Version: 0.9.8 Commit: 6db27f04407b337f6743faf4f382a61991aa5f31 Date: 2021-11-02T21:26:28Z Logs:
执行扫描,默认扫描所有命名空间:
# ./popeye # ....STATEFULSETS (5 SCANNED) ? 2 ? 3 ? 0 ✅ 0 0٪ ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ · default/dubbo-monitor..........................................................................? ? [POP-500] Zero scale detected. ? dubbo-monitor ? [POP-100] Untagged docker image in use. ? [POP-106] No resources requests/limits defined. · default/mongodb................................................................................? ? mongodb ? [POP-106] No resources requests/limits defined. · default/redis..................................................................................? ? init-redis ? [POP-100] Untagged docker image in use. ? [POP-106] No resources requests/limits defined. ? redis ? [POP-106] No resources requests/limits defined. · default/redis-test.............................................................................? ? [POP-500] Zero scale detected. ? redis ? [POP-106] No resources requests/limits defined. · default/zookeeper-one..........................................................................? ? zookeeper-one ? [POP-106] No resources requests/limits defined. SUMMARY ┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅┅ Your cluster score: 74 -- C
可以看到当前集群评分为 74:C
您可以使用 -n 参数指定命名空间。
输出格式默认输出到控制台,也可以输出为 json、html、YAML 等格式,并且可以将输出内容推送到第三方服务,如 S3 桶。
将输出格式为 HTML 保存到文件:
./popeye --out html --save --output-file log.html /tmp/popeye/log.html
在浏览器中打开:
了解更多关于 Popeye 的信息,请访问: