Kubernetes 集群安全扫描之-Popeye

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

一 背景

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

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

二 Popeye简介

Popeye可以在 Linux,OSX 和 Windows 平台上使用。

Popeye 会扫描集群中的最佳实践和潜在问题。目前,Popeye 只关注节点、名称空间、Node和服务。很快就会有更检测去,的是检测错误配置,例如端口不匹配、死的或未使用的资源、度量利用、探针、容器图像、 RBAC 规则、裸资源等。Popeye 不是另一个静态分析工具。它运行和检查库伯内特斯资源的活动集群和净化资源。

详细检测项目:full list of codes

三 实战测试

3.1 安装

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

  • Mac 安装
brew install derailed/popeye/popeye

3.2 使用

大力水手使用256色终端模式。在“尼克斯”系统上确保设置相应的 TERM。

$ export TERM=xterm-256color

# 执行检测
$ ./popeye version

# 保持报告
$ POPEYE_REPORT_DIR=$(pwd) popeye --save --out html --output-file report.html

查看检测输出报告

3.3 将Popeye部署在k8s内

可以在kubernetes内部将popeye作为cronjob来运行,定时检查集群监控状态。

$ kubectl apply -f k8s/popeye/ns.yml && kubectl apply -f k8s/popeye

$ cat > k8s/popeye/ns.yml <<EOF
apiVersion: batch/v1
kind: CronJob
metadata:
  name:      popeye
  namespace: popeye
spec:
  schedule: "* */1 * * *" # Fire off Popeye once an hour
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          serviceAccountName: popeye
          restartPolicy: Never
          containers:
            - name: popeye
              image: derailed/popeye
              imagePullPolicy: IfNotPresent
              args:
                - -o
                - yaml
                - --force-exit-zero
                - true
              resources:
                limits:
                  cpu:    500m
                  memory: 100Mi
EOF

四 其他

可以利用popeye检测集群及应用状态,可以配合定时任务和将报告发送出来,供集群管理员修复及时刻关注集群状态。

参考链接

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。