Ad esempio, l’ambiente di sviluppo potrebbe utilizzare due repliche e risorse limitate, mentre quello di produzione potrebbe richiedere più repliche, maggiori risorse computazionali e configurazioni di sicurezza più restrittive.
Duplicare tutti i file YAML per ogni ambiente rende la gestione difficile e aumenta il rischio di errori. È proprio in questo scenario che entrano in gioco Kustomize e Helm.
Che cos’è Kustomize e come funziona?
Kustomize è uno strumento nativo dell’ecosistema Kubernetes che permette di personalizzare i manifest YAML senza utilizzare un sistema di templating.
Il suo approccio si basa su due concetti fondamentali: Base e Overlay.
La Base contiene la configurazione comune dell’applicazione, mentre gli Overlay introducono modifiche specifiche per ciascun ambiente. In questo modo è possibile mantenere una configurazione principale e applicare soltanto le differenze necessarie, evitando di duplicare interi file.
Un esempio pratico di Kustomize
Immaginiamo di dover distribuire un’applicazione chiamata web-app in tre ambienti:
- Development.
- Staging.
- Production.
Possiamo organizzare i file in questo modo:
web-app/
├── base/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── kustomization.yaml
│
└── overlays/
├── development/
│ └── kustomization.yaml
├── staging/
│ └── kustomization.yaml
└── production/
└── kustomization.yaml
La directory Base contiene i manifest comuni, mentre ogni Overlay definisce le personalizzazioni necessarie.
Ad esempio, possiamo utilizzare una configurazione differente per il numero di repliche:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 2
Nell’ambiente di produzione, attraverso un’apposita patch, possiamo aumentare il numero di repliche:
apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 5
Kustomize combina automaticamente le configurazioni e genera i manifest finali.

