
👀 Санитайзер ресурсов кластера Kubernetes
Popeye — это утилита, которая сканирует живые кластера Kubernetes и сообщает о потенциальных проблемах с развёрнутыми ресурсами и конфигурациями. По мере роста ландшафта Kubernetes человеку становится всё сложнее отслеживать множество манифестов и политик, управляющих кластером. Popeye сканирует ваш кластер на основе того, что развёрнуто, а не того, что находится на диске. Линтируя кластер, он обнаруживает неправильные конфигурации, устаревшие ресурсы и помогает убедиться, что применяются лучшие практики, предотвращая тем самым будущие проблемы. Он направлен на снижение когнитивной перегрузки, с которой сталкивается человек при эксплуатации кластера Kubernetes в реальных условиях. Кроме того, если в вашем кластере используется metric-server, он сообщает о потенциальном пере/недоиспользовании ресурсов и пытается предупредить, если кластеру грозит нехватка ёмкости.
Popeye — это инструмент только для чтения, он никоим образом не изменяет ваши ресурсы Kubernetes!
Вы можете выгрузить отчёт сканирования в HTML.
Popeye публикует метрики Prometheus. В этом репозитории мы предоставили образец панели Popeye, чтобы вы могли быстро начать.
Popeye доступен на платформах Linux, OSX и Windows.
Бинарные файлы для Linux, Windows и Mac доступны в виде tarball'ов на странице релизов.
Для OSX/Unit с использованием Homebrew/LinuxBrew ```shell brew install derailed/popeye/popeye
Использование go install
go install github.com/derailed/popeye@latest
Сборка из исходных кодов Popeye был собран с использованием go 1.21+. Чтобы собрать Popeye из исходных кодов, необходимо:
Клонировать репозиторий
Добавить следующую команду в ваш файл go.mod
replace (
github.com/derailed/popeye => MY_POPEYE_CLONED_GIT_REPO
)
Собрать и запустить исполняемый файл
go run main.go
Быстрый рецепт для нетерпеливых: ```shell
git clone https://github.com/derailed/popeye cd popeye
make build
popeye
Popeye использует 256-цветный терминальный режим. В системе `Nix убедитесь, что TERM установлен соответствующим образом.
export TERM=xterm-256color
Вы можете использовать Popeye в открытом виде или с помощью spinach yaml config для настройки ваших линтеров. Подробности о файле конфигурации Popeye приведены ниже.```shell
popeye version
popeye
fred namespacepopeye -n fred
popeye -A
popeye -f spinach.yaml
popeye --context olive
popeye -n ns1 -s pod,svc --logs none
popeye -n ns1 --logs /tmp/fred.log -v4
popeye help
---
## Линтеры
Popeye сканирует ваш кластер на предмет лучших практик и потенциальных проблем.
В настоящее время Popeye проверяет только заданный набор отобранных ресурсов Kubernetes.
Скоро их станет больше!
Мы надеемся, что друзья Kubernetes помогут сделать Popeye еще лучше.
Цель линтеров — выявлять неправильные конфигурации, такие как
несоответствие портов, мертвые или неиспользуемые ресурсы, использование метрик,
пробы, образы контейнеров, правила RBAC, «голые» ресурсы и т. д.
Popeye — это не очередной инструмент статического анализа. Он работает и проверяет ресурсы Kubernetes на
живых кластерах и линтит ресурсы в том виде, в котором они существуют в реальной среде!
Вот список некоторых доступных линтеров: