
Popeye は、ライブの Kubernetes クラスターをスキャンし、デプロイされたリソースや設定に関する潜在的な問題を報告するユーティリティです。 Kubernetes の状況が拡大するにつれ、クラスターを調整する多数のマニフェストやポリシーを人間が追跡することは課題になりつつあります。 Popeye は、ディスク上にあるものではなく、デプロイされているものに基づいてクラスターをスキャンします。クラスターを lint することで、設定ミス、古いリソースを検出し、ベストプラクティスが適用されていることを確認して、将来の頭痛を防ぐのに役立ちます。 これは、実際の Kubernetes クラスターを運用する際に直面する認知的過負荷を軽減することを目的としています。 さらに、クラスターがメトリクスサーバーを採用している場合、リソースの過剰/不足割り当てを報告し、容量不足に陥る可能性がある場合に警告を試みます。
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 設定ファイルを使用してリンターを調整することもできます。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
---
## Linters
Popeye は、ベストプラクティスと潜在的な問題についてクラスターをスキャンします。現在、Popeye は特定のキュレーションされた Kubernetes リソースのセットのみをチェックします。今後さらに追加される予定です!Kubernetes コミュニティの皆さんが Popeye をさらに良くするために協力してくれることを期待しています。
リンターの目的は、ポートの不一致、使用されていないリソース、メトリクスの使用率、プローブ、コンテナイメージ、RBAC ルール、ベアリソースなど、誤った設定を検出することです。
Popeye は別の静的解析ツールではありません。実際のクラスター上で実行され、Kubernetes リソースを検査し、リソースをそのままの状態でリントします!
以下は、利用可能なリンターの一部のリストです。