Kustomize en Kali Linux: Guía Rápida
Kustomize en Kali Linux: Guía Rápida
Si estás trabajando con Kubernetes en Kali Linux, Kustomize es una herramienta esencial. A diferencia de Helm (que usa plantillas), Kustomize permite personalizar archivos YAML de Kubernetes sin modificarlos directamente, usando un concepto llamado "capas".
Aquí tienes una guía rápida de cómo usarlo en español.
1. Instalación en Kali Linux
Kali está basado en Debian, así que puedes instalarlo fácilmente. Primero, asegúrate de tener los repositorios actualizados:
sudo apt update
sudo apt install kustomize
Nota: Kustomize también viene integrado dentro de kubectl. Puedes usarlo con
kubectl apply -k .sin instalar nada extra, pero tener el binario independiente te da más funciones de edición.
2. Conceptos Clave
Para que Kustomize funcione, necesitas un archivo llamado kustomization.yaml en tu carpeta. Los tres pilares son:
Resources: Los archivos YAML originales (servicios, deployments).
Generators: Crean recursos nuevos (como ConfigMaps a partir de archivos .env).
Transformers: Modifican los recursos (añaden prefijos al nombre, cambian la imagen, añaden etiquetas).
3. Comandos más comunes
Visualizar el resultado (Build)
Este es el comando más importante. Te muestra en pantalla el YAML final resultante de aplicar todas tus personalizaciones antes de enviarlo al clúster.
kustomize build .
Añadir recursos automáticamente
En lugar de escribir el archivo kustomization.yaml a mano, puedes añadir archivos YAML de la carpeta actual:
kustomize edit add resource deployment.yaml service.yaml
Cambiar la imagen del contenedor
Muy útil para procesos de CI/CD cuando quieres actualizar una versión:
kustomize edit set image mi-app=nombre-usuario/mi-app:v2.0
Añadir un prefijo a todos los nombres
Si quieres desplegar la misma app varias veces en el mismo namespace sin conflictos:
kustomize edit set nameprefix prod-
4. Ejemplo de flujo de trabajo
Crea una carpeta:
mkdir mi-despliegue && cd mi-despliegueCrea un kustomization inicial:
kustomize create --autodetectGenera el YAML final:
kustomize build . > output.yamlAplica directamente al clúster:
Bashkubectl apply -k .
¿Por qué usarlo en Kali?
Aunque Kali es una distro de Pentesting, Kustomize es vital si estás auditando la seguridad de infraestructuras Cloud Native. Te permite modificar rápidamente manifiestos para inyectar sidecars de seguridad o probar configuraciones de RBAC sin romper los archivos originales.
Vamos a crear un ejemplo práctico. Imagina que tienes una aplicación web sencilla y quieres prepararla para dos entornos: Desarrollo (dev) y Producción (prod), sin duplicar todos tus archivos YAML.
Esta es la estructura recomendada (el estándar de la industria):
mi-proyecto/
├── base/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── kustomization.yaml
└── overlays/
├── dev/
│ └── kustomization.yaml
└── prod/
└── kustomization.yaml
1. La Base (/base)
Aquí defines cómo es tu aplicación normalmente.
kustomization.yaml (base):
resources:
- deployment.yaml
- service.yaml
2. Entorno de Desarrollo (/overlays/dev)
Aquí le decimos a Kustomize: "Usa la base, pero añade un prefijo y cambia el número de réplicas".
kustomization.yaml (dev):
resources:
- ../../base
namePrefix: dev-
commonLabels:
env: development
patches:
- target:
kind: Deployment
name: mi-webapp
patch: |-
- op: replace
path: /spec/replicas
value: 1
3. Entorno de Producción (/overlays/prod)
Aquí aplicamos configuraciones más robustas, como más réplicas y una imagen específica.
kustomization.yaml (prod):
resources:
- ../../base
namePrefix: prod-
commonLabels:
env: production
replicas:
- name: mi-webapp
count: 5
images:
- name: mi-contenedor-base
newName: mi-registro.com/mi-app
newTag: v1.2.0
Cómo ejecutarlo en tu terminal de Kali
Para ver cómo quedaría el YAML de producción antes de lanzarlo, sitúate en la raíz de tu proyecto y ejecuta:
kustomize build overlays/prod
O si quieres aplicarlo directamente a tu clúster de Kubernetes:
kubectl apply -k overlays/prod
¿Qué hace esto por ti?
Mantiene la limpieza: No tienes que editar el
deployment.yamloriginal cada vez que cambias de entorno.Seguridad: En Kali, esto te permite inyectar políticas de red o contextos de seguridad (SecurityContext) solo en producción de forma rápida.