Popeye CLI

Le Problème que Tout DevSecOps Connaît (et Redoute)

Vous venez de déployer votre application en production. Les pods tournent, les services répondent, tout semble parfait. Puis, trois semaines plus tard : un incident de sécurité lié à un ServiceAccount surdimensionné, une panne causée par des ressources mal configurées, ou pire, une facture cloud qui explose à cause de pods qui consomment 5x plus de ressources que nécessaire.

Le vrai challenge avec Kubernetes ? Ce n'est pas de faire tourner des workloads, c'est de les faire tourner CORRECTEMENT.

Avec des centaines de manifests YAML, des dizaines de namespaces et une équipe qui déploie en continu, comment garantir que vos configurations respectent les best practices de sécurité et d'optimisation ? C'est exactement ce que Popeye CLI résout.

Popeye CLI : Votre Auditeur Kubernetes en Temps Réel

Popeye est un outil open-source qui scanne vos clusters Kubernetes en production et identifie automatiquement les problèmes de configuration, les ressources obsolètes et les écarts avec les best practices. Contrairement aux outils d'analyse statique qui vérifient vos fichiers YAML avant le déploiement, Popeye inspecte l'état réel de votre cluster.

Ce qui Rend Popeye Unique

🔍 Analyse en Temps Réel : Popeye ne lit pas vos fichiers sur disque, il scanne ce qui tourne réellement dans votre cluster. Vous obtenez une vision fidèle de votre environnement de production.

🛡️ Read-Only par Design : Zéro risque pour votre cluster. Popeye ne modifie rien, il observe et rapporte. Parfait pour l'intégrer dans vos pipelines CI/CD ou vos processus d'audit.

Détection Multi-Niveaux : Du niveau infrastructure (nodes, PV) jusqu'aux configurations applicatives (pods, deployments), en passant par les aspects sécurité (RBAC, NetworkPolicies, ServiceAccounts).

📊 Métriques de Performance : Si vous avez un metrics-server déployé, Popeye analyse la consommation réelle CPU/RAM et vous alerte sur les sur-allocations ou sous-allocations de ressources.

Les Linters de Popeye : Votre Checklist DevSecOps Automatisée

Popeye embarque plus de 20 linters qui couvrent l'ensemble de l'écosystème Kubernetes. Voici les principaux checks qu'il effectue :

🔐 Sécurité & RBAC

  • ServiceAccounts inutilisés : Détecte les SA orphelins qui représentent une surface d'attaque inutile
  • Secrets & ConfigMaps non référencés : Identifie les données sensibles qui traînent sans être utilisées
  • RBAC over-provisioning : Repère les ClusterRoles et RoleBindings surdimensionnés ou inutiles
  • PodSecurityPolicies : Valide vos PSP pour garantir qu'elles sont correctement configurées

🏗️ Configuration & Best Practices

  • Images sans tag ou avec latest : Alerte critique pour éviter les déploiements non déterministes
  • Absence de resource limits : Détecte les containers sans limites CPU/RAM (risque de saturation du cluster)
  • Probes manquantes : Vérifie la présence de liveness et readiness probes
  • Ports nommés : Valide la cohérence entre les ports déclarés dans les services et les pods

📈 Performance & Optimisation

  • Utilisation CPU/RAM : Compare l'utilisation réelle vs les limites configurées (par défaut alerte à 80%)
  • Nodes surchargés : Détecte les nœuds qui approchent leurs limites de capacité
  • HPA mal configurés : Identifie les autoscalers qui ne fonctionnent pas comme prévu

🧹 Housekeeping

  • Namespaces inactifs : Repère les namespaces zombies qui polluent votre cluster
  • Ressources orphelines : Détecte les PV, PVC, Ingress qui ne sont plus rattachés à rien
  • Deployments/StatefulSets inutilisés : Identifie les workloads dormants

Installation : 3 Commandes, 2 Minutes

Via Homebrew (macOS/Linux)

brew install derailed/popeye/popeye

Via Go Install

go install github.com/derailed/popeye@latest

Via Docker

docker pull quay.io/derailed/popeye

C'est tout. Pas de dépendances complexes, pas de configuration préalable. Popeye utilise votre kubeconfig existant.

Utilisation : Du Scan Express à l'Audit Approfondi

Scan Basique

# Scanner votre cluster avec le contexte actuel
popeye

# Scanner un namespace spécifique

popeye -n production

# Scanner tous les namespaces

popeye -A

Scan Ciblé

# Scanner uniquement les pods et services
popeye -s pod,svc

# Scanner avec un contexte kubeconfig spécifique
popeye --context prod-cluster

Export et Reporting

# Générer un rapport HTML
popeye -o html --
save --output-file cluster
-audit.html

# Export JSON pour intégration CI/CD

popeye -o json --save --output-file report.json

# Export vers S3 pour archivage

popeye --s3-bucket s3://my-audits/k8s \
--s3-region eu-west-1 \
--out json \
--save

Leave a Comment