
👀 쿠버네티스 클러스터 리소스 정리 도구
Popeye는 라이브 Kubernetes 클러스터를 스캔하여 배포된 리소스 및 구성의 잠재적 문제를 보고하는 유틸리티입니다. Kubernetes 환경이 성장함에 따라 클러스터를 조율하는 수많은 매니페스트와 정책을 사람이 추적하는 것이 점점 어려워지고 있습니다. Popeye는 디스크에 있는 것이 아니라 배포된 내용을 기준으로 클러스터를 스캔합니다. 클러스터를 린팅하여 잘못된 구성, 오래된 리소스를 감지하고 모범 사례가 적용되었는지 확인하여 향후 문제를 방지합니다. 실제 Kubernetes 클러스터를 운영할 때 직면하는 인지적 과부하를 줄이는 것을 목표로 합니다. 또한 클러스터에서 메트릭 서버를 사용하는 경우 잠재적인 리소스 과다/부족 할당을 보고하고 클러스터 용량이 부족할 때 경고를 시도합니다. Popeye는 읽기 전용 도구이며 어떤 식으로든 Kubernetes 리소스를 변경하지 않습니다!
스캔 보고서를 HTML로 덤프할 수 있습니다.
Popeye는 Prometheus 메트릭을 게시합니다. 이 저장소에는 시작할 수 있는 샘플 Popeye 대시보드를 제공했습니다.
Popeye는 Linux, OSX 및 Windows 플랫폼에서 사용할 수 있습니다.
Linux, Windows 및 Mac용 바이너리는 릴리스 페이지에서 tarball로 제공됩니다.
Homebrew/LinuxBrew를 사용하는 OSX/Unit의 경우 ```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 리소스 집합만 검사합니다.
더 많은 것이 곧 추가될 예정입니다!
Popeye를 더욱 향상시키기 위해 Kubernetes 커뮤니티의 기여를 기대합니다.
린터의 목표는 잘못된 구성을 찾아내는 것입니다. 예를 들어
포트 불일치, 죽었거나 사용되지 않는 리소스, 메트릭 사용량,
프로브, 컨테이너 이미지, RBAC 규칙, 네이키드 리소스 등이 있습니다.
Popeye는 또 다른 정적 분석 도구가 아닙니다. 실제 클러스터에서 Kubernetes 리소스를 실행하고 검사하여
실제 환경의 리소스를 린트합니다!
다음은 사용 가능한 린터 목록입니다: