it-wiki:kubernetes:deployments_mit_kustomize
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
it-wiki:kubernetes:deployments_mit_kustomize [2024/03/13 11:59] – marko | it-wiki:kubernetes:deployments_mit_kustomize [2024/03/13 12:33] (aktuell) – [Fazit] marko | ||
---|---|---|---|
Zeile 45: | Zeile 45: | ||
Schauen wir uns einmal an, wie wir unser Beispiel mit den Porteinstellungen in Kustomize umsetzen können. Als Erstes muss eine // | Schauen wir uns einmal an, wie wir unser Beispiel mit den Porteinstellungen in Kustomize umsetzen können. Als Erstes muss eine // | ||
- | < | + | < |
# | # | ||
resources: | resources: | ||
Zeile 51: | Zeile 51: | ||
</ | </ | ||
- | < | + | < |
# | # | ||
bases: | bases: | ||
Zeile 58: | Zeile 58: | ||
- service-ports.yaml | - service-ports.yaml | ||
</ | </ | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | Durch Patches können einzelne YAML-Attribute einer Konfiguration hinzugefügt oder überschrieben werden. Hierzu wird eine neue YAML-Datei angelegt, welche den Namen der zu patchenden Ressource und alle zu ändernden Attribute beinhaltet. | ||
+ | |||
+ | <code yaml> | ||
+ | # | ||
+ | kind: Service | ||
+ | apiVersion: v1 | ||
+ | metadata: | ||
+ | #Name der zu patchenden Ressource | ||
+ | name: env-anzeige-frontend-https | ||
+ | spec: | ||
+ | ports: #Die Porteinstellungen werden überschrieben | ||
+ | - name: https | ||
+ | port: 443 | ||
+ | </ | ||
+ | |||
+ | Durch die Erstellung von Patch-Dateien können einzelne YAML-Attribute einer Konfiguration hinzugefügt oder überschrieben werden. Um anspruchsvollere Veränderungen an den Dateien durchzuführen, | ||
+ | |||
+ | ^JSON6902 Operator ^Beschreibung^ | ||
+ | | Add | fügt ein Attribut am angegebenen Pfad hinzu | | ||
+ | | Remove | entfernt ein Attribut | | ||
+ | | Replace | überschreibt das Attribut am angegebenen Pfad mit einem neuen Wert | | ||
+ | | Move | verschiebt ein Attribut an einen anderen Pfad | | ||
+ | | Copy | kopiert ein Attribut und fügt es an einem anderen Pfad wieder ein | | ||
+ | | Test | überprüft, | ||
+ | |||
+ | Im Folgenden wird der Service-Patch mit der JSON-Methode durchgeführt: | ||
+ | <code yaml> | ||
+ | # | ||
+ | patchesJson6902: | ||
+ | - target: | ||
+ | version: v1 | ||
+ | kind: Service | ||
+ | name: env-anzeige-frontend-https | ||
+ | path: service-patch.yaml | ||
+ | </ | ||
+ | |||
+ | <code yaml> | ||
+ | # | ||
+ | - op: replace | ||
+ | path: /spec/ports | ||
+ | value: | ||
+ | - name: https | ||
+ | port: 443 | ||
+ | </ | ||
+ | |||
+ | Die herkömmlichen Patches haben einen kleineren Funktionsumfang als der JSON-Patch, dadurch sind sie aber auch lesbarer. Außerdem reichen die Operationen hinzufügen und überschreiben für die meisten Anwendungsfälle völlig aus. Ein JSON-Patch sollte daher nur verwendet werden, wenn die zusätzlichen Operatoren (Attribut entfernen/ | ||
+ | |||
+ | Nachdem wir unsere Patches in Kustomize deklariert haben, können wir nun die einsetzbaren YAML-Konfigurationen erstellen. Kustomize ist fest in der aktuellen Version von kubectl implementiert. Mit dem Befehl **kubectl kustomize** kann die gepatchte YAML Konfigurationen ausgeben lassen. | ||
+ | |||
+ | <code bash>> | ||
+ | <code yaml> | ||
+ | apiVersion: v1 | ||
+ | kind: Service | ||
+ | metadata: | ||
+ | name: env-anzeige-frontend-https | ||
+ | spec: | ||
+ | ports: | ||
+ | - name: https | ||
+ | nodePort: 30951 | ||
+ | port: 443 | ||
+ | selector: | ||
+ | app: env-anzeige-frontend | ||
+ | type: LoadBalancer | ||
+ | </ | ||
+ | |||
+ | Alternativ können die Ressourcen mit dem Befehl **kubectl apply -k** ohne Zwischenschritt direkt in das Cluster geladen werden. | ||
+ | <code bash> | ||
+ | > kubectl apply -k ./ | ||
+ | service/ | ||
+ | </ | ||
+ | |||
+ | \\ | ||
+ | ===== Fazit ===== | ||
+ | Kustomize vereinfacht den Konfigurationsprozess für verschiedene Umgebungen erheblich. Weitere Vorteile von Kustomize sind die feste Implementierung in kubectl. Dadurch ist keine weitere Konfiguration oder Installation notwendig. |
it-wiki/kubernetes/deployments_mit_kustomize.1710331184.txt.gz · Zuletzt geändert: von marko