为了账号安全,请及时绑定邮箱和手机立即绑定

顶级工具 | Popeye帮你发现k8s集群潜在问题

标签:
Kubernetes

Popeye 是一种实用程序,可扫描实时 Kubernetes 集群并报告已部署资源和配置的潜在问题。它根据部署的内容为您的集群消毒。通过扫描您的集群,它可以检测错误配置并帮助您确保最佳实践到位,从而防止未来出现问题。它旨在减少在运行 Kubernetes 集群时面临的认知过载。此外,如果您的集群使用metric-server,它会报告潜在的资源分配过多/不足,并在您的集群容量不足时尝试警告您。

Popeye 是一个只读工具,它不会以任何方式改变您的任何 Kubernetes 资源!Popeye 会扫描您的集群以寻找最佳实践和潜在问题。目前,Popeye 只查看节点、命名空间、pod 和服务。消毒器的目的是发现错误配置,即端口不匹配、无效或未使用的资源、指标利用率、探针、容器映像、RBAC 规则、裸露资源等。

安装

Popeye 适合 Kubernetes 1.13+,您可以将 Popeye 容器化并作为一次性或 CronJob 直接在您的 Kubernetes 集群中运行。它可在 Linux、MacOS 和 Windows 平台上使用。

下面在linux演示Popeye的使用:

wget https://github.com/derailed/popeye/releases/download/v0.9.8/popeye_Linux_x86_64.tar.gztar -zxf popeye_Linux_x86_64.tar.gz
tar -zxf popeye_Linux_x86_64.tar.gz

检查版本:

# ./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:

执行扫描,默认扫描所有namespace:

# ./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参数指定namespace。

输出格式默认输出到控制台,也可以输出json、html、yaml等格式,可以将输出内容push到第三方服务,S3桶。

输出html格式到文件:

./popeye --out html --save  --output-file log.html
/tmp/popeye/log.html

在浏览器中打开:
在这里插入图片描述

了解Popeye更多信息,请移步:
https://github.com/derailed/popeye

作者简洁

作者:小碗汤,一位热爱、认真写作的小伙,专注于写go语言、docker、kubernetes、java等开发、运维知识等提升硬实力的文章,期待你的关注。转载说明:务必注明来源

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
JAVA开发工程师
手记
粉丝
5
获赞与收藏
22

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消