> ## Content Index
> Fetch the complete content index at: https://www.sredevops.org/llms.txt
> Use this file to discover other available public pages before exploring further.

# Chequea Kubernetes con Popeye! Seguridad, configs, problemas y más con Popeye CLI (Además es open source y liviano!)
- URL: https://www.sredevops.org/es/chequea-kubernetes-con-popeye-seguridad-configs-problemas-y-mas-con-popeye-cli-ademas-es-open-source-y-liviano/
- Published: 2024-07-08T12:08:25.000Z
- Updated: 2026-01-08T02:36:03.000Z
- Author: Nicolás Georger
- Tags: Kubernetes, #es, Security, DevSecOps, Open Source, Apps, #home, DevOps, SRE, Español

## TL/DR;

¿Cansado de revisar manualmente tu clúster de Kubernetes para encontrar problemas? Popeye es como un chequeo de salud para tu clúster, encontrando posibles problemas con tus configuraciones y uso de recursos. Es una herramienta de línea de comandos que **escanea tu clúster *en vivo***, no solo archivos estáticos, y señala cosas como errores de configuración, recursos no utilizados e incluso posibles sobreasignaciones de recursos. **Es de solo lectura, por lo que no tocará tu clúster**, solo te dará un informe amigable *(o tal vez no tan amigable* 🙃*, dependiendo de la salud de tu clúster)*. Incluso puedes ***ponerte fancy*** con diferentes formatos de salida (JSON, HTML, lo que sea), **enviar informes a S3 e integrarlo con Prometheus y Grafana para monitoreo continuo.**

![](https://popeyecli.io/assets/screens/console.png)

## ¿Por qué necesitas un linter de Kubernetes como Popeye?

Seamos realistas, Kubernetes es increíble para orquestar tus aplicaciones en containers. Sin embargo, a medida que tus implementaciones crecen, también lo hace la complejidad. De repente, te estás ahogando en un mar de archivos YAML, preguntándote si ese `Service` en el `default` namespace está *realmente* hablando con tu `Pod`, o si ese `PersistentVolumeClaim` de un proyecto eliminado todavía está dando vueltas como un mal olor.

**Ahí es donde entra Popeye, flexionando sus músculos con poder de espinaca para darle a tu clúster un chequeo completo.**

> **🎶🎶🎤 ¡Popeye el marino soy!...**

### ¡Popeye al rescate!

Popeye se sumerge en tu clúster *en vivo*, inspeccionando tus recursos mientras se ejecutan. Esta no es solo una herramienta de análisis estático de prueba en seco. Es la cosa real, buscando problemas comunes que pueden hacerte tropezar:

- **Error de configuraciones:** ¿Tus asignaciones de puertos de contenedor son correctas? ¿Tus etiquetas `Pod` coinciden con tus selectores `Service`?
- **Uso de recursos:** Popeye incluso puede acceder a tu servidor de métricas (si estás usando uno) y advertirte sobre posibles sobreasignaciones de CPU o memoria *antes* de que tu clúster *tire la toalla.*
- **Recursos obsoletos:** ¿Recuerdas ese `Namespace` que pensaste que eliminaste hace meses? Popeye lo encontrará. ¿Esos `Secrets` sin usar? Sí, también los marcará.
- **Mejores prácticas de seguridad:** Popeye puede ayudarte a detectar cosas como Pods que se ejecutan como root, límites de recursos faltantes y otras malas prácticas básicas de seguridad.

![](https://popeyecli.io/assets/screens/html.png)

## **Instalación**

 ¡Tienes opciones! *~~(¡diVeRsIoNN! ¡fuN!)~~* Descarga binarios, usa `brew install`, o `go install` si eres un aficionado a Go.

```bash
brew install derailed/popeye/popeye

```

```bash
go install github.com/derailed/popeye@latest

```

## Comenzando con Popeye

**Interpretando el informe:** Popeye codifica por colores sus hallazgos para darte una imagen clara de la salud de tu clúster:

  - **✅ OK:** ¡Todo parece estar bien!
  - **🔊 Info:** Solo algunos mensajes de información.
  - **😱 Warn:** Posibles problemas que podrías querer investigar.
  - **💥 Error:** ¡Se requiere acción! Estos son problemas que necesitan ser solucionados.

**Sube de nivel con Prometheus y Grafana:** Integra Popeye con Prometheus para recopilar métricas y visualizar la salud de tu clúster con el tiempo en Grafana. Incluso puedes configurar alertas para que se te notifique cuando Popeye encuentre algo sospechoso.

![](https://github.com/sredevopsorg/popeye/raw/master/assets/screens/pop-dash.png)

### **Personalizando escaneos (¿Espinacas, alguien?)**

Puedes ajustar el comportamiento de Popeye usando un archivo de configuración `spinach.yaml`. ¿Quieres ajustar los umbrales de utilización de recursos, excluir recursos específicos o incluso anular la gravedad de ciertas verificaciones? ¡Spinach te tiene cubierto!

```yaml
popeye:
   allocations:
      cpu:
         overPercUtilization: 70 # Trigger a warning if CPU utilization goes above 70%

```

**Ejecuta el escaneo:** Popeye funciona de inmediato. Solo apúntalo a tu clúster:

```bash
popeye

```

¿Quieres escanear un namespace específico? No hay problema:

```bash
popeye -n my-awesome-app

```

### Popeye en acción: Un ejemplo práctico

Digamos que estás ejecutando una aplicación web en tu clúster. Tienes un `Deployment`, un `Service`, y algunos otros recursos. Ejecutas Popeye, y este arroja lo siguiente:

```log
😱  WARN  po  Pods  default/my-awesome-app-7c94985768-x5fzk  Container 'my-awesome-app' has no resource requests or limits defined!

```

¡Uy! Parece que olvidaste establecer los límites de recursos en tu `Pod`. Esto significa que tu aplicación podría consumir potencialmente todos los recursos de tu nodo, dejando a otras aplicaciones sin nada. ¡Es hora de actualizar ese archivo YAML!

## Mantén tu clúster saludable con Popeye

Popeye es una herramienta esencial para cualquiera que ejecute Kubernetes. Es como tener un experto en Kubernetes constantemente mirándote por encima del hombro, señalando posibles problemas antes de que se conviertan en grandes dolores de cabeza. Entonces, ¡agrega Popeye a tu caja de herramientas y comienza a darle a tu clúster los chequeos que se merece! *~~(O tal vez no...)~~*

## Enlaces útiles

- [Popeye GitHub Repository](https://github.com/derailed/popeye?ref=sredevops.org)

[GitHub - derailed/popeye: 👀 A Kubernetes cluster resource sanitizer👀 A Kubernetes cluster resource sanitizer. Contribute to derailed/popeye development by creating an account on GitHub.![](https://github.githubassets.com/assets/pinned-octocat-093da3e6fa40.svg)GitHubderailed![](https://repository-images.githubusercontent.com/176379662/c23cb480-3267-11ea-9bae-e0737521678e)](https://github.com/derailed/popeye?ref=sredevops.org)

- [Official website](https://popeyecli.io/?ref=sredevops.org)

[popeye👀 A Kubernetes cluster resource sanitizerpopeye![](https://github.com/derailed/popeye/raw/master/assets/popeye_logo.png)](https://popeyecli.io/?ref=sredevops.org)

### Algunos checks de ejemplo

|    | K8s Resource            | Linters                                                                 | Aliases    |
| -- | ----------------------- | ----------------------------------------------------------------------- | ---------- |
| 🛀 | Node                    |                                                                         | no         |
|    |                         | Conditions ie not ready, out of mem/disk, network, pids, etc            |            |
|    |                         | Pod tolerations referencing node taints                                 |            |
|    |                         | CPU/MEM utilization metrics, trips if over limits (default 80% CPU/MEM) |            |
| 🛀 | Namespace               |                                                                         | ns         |
|    |                         | Inactive                                                                |            |
|    |                         | Dead namespaces                                                         |            |
| 🛀 | Pod                     |                                                                         | po         |
|    |                         | Pod status                                                              |            |
|    |                         | Containers statuses                                                     |            |
|    |                         | ServiceAccount presence                                                 |            |
|    |                         | CPU/MEM on containers over a set CPU/MEM limit (default 80% CPU/MEM)    |            |
|    |                         | Container image with no tags                                            |            |
|    |                         | Container image using latest tag                                        |            |
|    |                         | Resources request/limits presence                                       |            |
|    |                         | Probes liveness/readiness presence                                      |            |
|    |                         | Named ports and their references                                        |            |
| 🛀 | Service                 |                                                                         | svc        |
|    |                         | Endpoints presence                                                      |            |
|    |                         | Matching pods labels                                                    |            |
|    |                         | Named ports and their references                                        |            |
| 🛀 | ServiceAccount          |                                                                         | sa         |
|    |                         | Unused, detects potentially unused SAs                                  |            |
| 🛀 | Secrets                 |                                                                         | sec        |
|    |                         | Unused, detects potentially unused secrets or associated keys           |            |
| 🛀 | ConfigMap               |                                                                         | cm         |
|    |                         | Unused, detects potentially unused cm or associated keys                |            |
| 🛀 | Deployment              |                                                                         | dp, deploy |
|    |                         | Unused, pod template validation, resource utilization                   |            |
| 🛀 | StatefulSet             |                                                                         | sts        |
|    |                         | Unused, pod template validation, resource utilization                   |            |
| 🛀 | DaemonSet               |                                                                         | ds         |
|    |                         | Unused, pod template validation, resource utilization                   |            |
| 🛀 | PersistentVolume        |                                                                         | pv         |
|    |                         | Unused, check volume bound or volume error                              |            |
| 🛀 | PersistentVolumeClaim   |                                                                         | pvc        |
|    |                         | Unused, check bounded or volume mount error                             |            |
| 🛀 | HorizontalPodAutoscaler |                                                                         | hpa        |
|    |                         | Unused, Utilization, Max burst checks                                   |            |
| 🛀 | PodDisruptionBudget     |                                                                         |            |
|    |                         | Unused, Check minAvailable configuration                                | pdb        |
| 🛀 | ClusterRole             |                                                                         |            |
|    |                         | Unused                                                                  | cr         |
| 🛀 | ClusterRoleBinding      |                                                                         |            |
|    |                         | Unused                                                                  | crb        |
| 🛀 | Role                    |                                                                         |            |
|    |                         | Unused                                                                  | ro         |
| 🛀 | RoleBinding             |                                                                         |            |
|    |                         | Unused                                                                  | rb         |
| 🛀 | Ingress                 |                                                                         |            |
|    |                         | Valid                                                                   | ing        |
| 🛀 | NetworkPolicy           |                                                                         |            |
|    |                         | Valid, Stale, Guarded                                                   | np         |
| 🛀 | PodSecurityPolicy       |                                                                         |            |
|    |                         | Valid                                                                   | psp        |
| 🛀 | Cronjob                 |                                                                         |            |
|    |                         | Valid, Suspended, Runs                                                  | cj         |
| 🛀 | Job                     |                                                                         |            |
|    |                         | Pod checks                                                              | job        |
| 🛀 | GatewayClass            |                                                                         |            |
|    |                         | Valid, Unused                                                           | gwc        |
| 🛀 | Gateway                 |                                                                         |            |
|    |                         | Valid, Unused                                                           | gw         |
| 🛀 | HTTPRoute               |                                                                         |            |
|    |                         | Valid, Unused                                                           | gwr        |

###