Linuxguide

Kustomize – Kubernetes-Konfiguration ohne Templates 2025

Umgebungsspezifische YAML-Anpassungen ohne Helm

S
SeeColors IT
11. Juni 20264 Min. Lesezeit94 Aufrufe

Kustomize vs Helm

Helm:
  Templates mit Go-Template-Syntax
  values.yaml fuer Konfiguration
  Chart-Paket (distributierbar)
  Gut fuer: Drittanbieter-Software

Kustomize:
  Reines YAML (kein Templating!)
  Overlays auf Base-Konfiguration
  Eingebaut in kubectl (kubectl apply -k)
  Gut fuer: Eigene Anwendungen, Umgebungsunterschiede

Kustomize-Grundstruktur

k8s/
  base/
    deployment.yaml
    service.yaml
    kustomization.yaml
  overlays/
    dev/
      kustomization.yaml
      replica-patch.yaml
    staging/
      kustomization.yaml
      ingress-patch.yaml
    production/
      kustomization.yaml
      resource-patch.yaml
      hpa.yaml

Basis-Konfiguration

# k8s/base/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: meine-app
spec:
  replicas: 1
  selector:
    matchLabels:
      app: meine-app
  template:
    metadata:
      labels:
        app: meine-app
    spec:
      containers:
        - name: app
          image: meine-app:latest
          resources:
            requests:
              memory: "64Mi"
              cpu: "100m"
            limits:
              memory: "128Mi"
              cpu: "500m"
# k8s/base/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
  - deployment.yaml
  - service.yaml
commonLabels:
  app.kubernetes.io/managed-by: kustomize

Production Overlay

# k8s/overlays/production/kustomization.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
  - ../../base
namePrefix: prod-
namespace: production
images:
  - name: meine-app
    newTag: "1.5.2"
patchesStrategicMerge:
  - resource-patch.yaml
resources:
  - hpa.yaml
# k8s/overlays/production/resource-patch.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: meine-app
spec:
  replicas: 3
  template:
    spec:
      containers:
        - name: app
          resources:
            requests:
              memory: "256Mi"
              cpu: "500m"
            limits:
              memory: "512Mi"
              cpu: "1000m"

Anwenden

# Kustomize installieren (oder kubectl eingebaut)
curl -s https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh | bash
mv kustomize /usr/local/bin/

# YAML generieren (preview)
kustomize build k8s/overlays/production

# Direkt anwenden
kubectl apply -k k8s/overlays/production

# Mit kubectl eingebaut
kubectl diff -k k8s/overlays/production
kubectl apply -k k8s/overlays/production

FAQ

Kann ich Kustomize und Helm zusammen nutzen?
Ja. Kustomize kann Helm-Charts als Basis nutzen (helmCharts field in kustomization.yaml). Dann Kustomize-Patches drueber fuer umgebungsspezifische Aenderungen.

Fazit

Kustomize ist ideal fuer eigene Kubernetes-Manifeste: Basis einmal definieren, Umgebungsunterschiede als Patches - kein Templating-Overhead.

Kubernetes DevOps fuer KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.

Artikel teilen

War dieser Artikel hilfreich?

Dein Feedback hilft uns, bessere Inhalte zu erstellen.

Kommentar hinterlassen

Verwandte Artikel