Tool-Tipp: Kustomize verspricht redundanzfreie K8s-Manifeste für Kubernetes

Um eine Cloud-native Anwendung in allen Umgebungen einheitlich und fehlerfrei bereitzustellen, muss man Kubernetes sauber konfigurieren. Kustomize kann das.

Lesezeit: 4 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen
,
Von
  • Mario-Leander Reimer
Inhaltsverzeichnis

Entwickler müssen zahlreiche Manifeste per YAML definieren, um eine Cloud-native Anwendung und Infrastrukturkomponente auf einem Kubernetes-Cluster bereitzustellen: Deployments, Services, ConfigMaps, Secrets und weitere. Erschwerend kommt hinzu, dass sie die Manifestdefinitionen für verschiedene Umgebungen anpassen müssen – meist nur an einigen wenigen Stellen. Ein einfacher, aber auch naiver Ansatz wäre, die Manifeste zu kopieren und lediglich die wenigen Felder und Werte anzugleichen. Hohe Redundanz und eine schlechte Wartbarkeit wären das Resultat, da jede strukturelle Änderung auch in allen Kopien nachgezogen werden müsste.

Das Tool Kustomize nimmt sich dieses Problems an, verwendet dabei aber anders als Helm keine Templates. Stattdessen arbeitet es mit Overlays und Patches, die auf einen gemeinsamen Nenner (die Base) aller YAML-Definitionen angewendet und damit verschmolzen werden. Das umgebungsspezifische Ergebnis ist dann auf dem Cluster anwendbar.

Mehr zu Kubernetes, DevOps und CI/CD

Kustomize lässt sich auf zwei Arten nutzen: über das kubectl-Binary (ab Version 1.14) und über ein dediziertes CLI-Binary. Der Unterschied liegt im Funktionsumfang. Mit kubectl -k ist lediglich eine Kustomization direkt im Kubernetes-Cluster anwendbar; das dedizierte Binary bietet zusätzliche Kommandos zum Erzeugen, Bauen, Editieren und Verwalten von Kustomizations.