Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-wiki:kubernetes:deployments_mit_kustomize

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
it-wiki:kubernetes:deployments_mit_kustomize [2024/03/13 12:00] – [Konfiguration für die Testumgebung mit geänderten Porteinstellungen:] markoit-wiki:kubernetes:deployments_mit_kustomize [2024/03/13 12:33] (aktuell) – [Fazit] marko
Zeile 58: Zeile 58:
 - service-ports.yaml - service-ports.yaml
 </code> </code>
 +
 +{{ :it-wiki:kubernetes:b2ap3_large_bild2.png?nolink&400 |}}
 +
 +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>
 +#overlays/test/service-ports.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
 +</code>
 +
 +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, bietet Kustomize zusätzlich das Verändern von Ressourcen unter Verwendung des [[https://tools.ietf.org/html/rfc6902|JSON6902]] Standards an. Dieser beinhaltet sechs weitere Operatoren zur Veränderung von Ressourcen und ist damit umfangreicher als der Standard-Patch.
 +
 +^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, ob ein bestimmtes Attribut den angegebenen Wert besitzt |
 +
 + Im Folgenden wird der Service-Patch mit der JSON-Methode durchgeführt:
 +<code yaml>
 +#kustomization.yaml
 +patchesJson6902:
 +- target:
 +    version: v1
 +    kind: Service
 +    name: env-anzeige-frontend-https
 +  path: service-patch.yaml
 +</code>
 +
 +<code yaml>
 +#service-patch.yaml
 +- op: replace
 +  path: /spec/ports
 +  value: 
 +  - name: https
 +    port: 443
 +</code>
 +
 +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/kopieren/verschieben/testen) benötigt werden.
 +
 +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>> kubectl kustomize ./overlays/test/</code>
 +<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
 +</code>
 +
 +Alternativ können die Ressourcen mit dem Befehl **kubectl apply -k** ohne Zwischenschritt direkt in das Cluster geladen werden.
 +<code bash>
 +> kubectl apply -k ./overlays/test/
 +service/env-anzeige-frontend-https created
 +</code>
 +
 +\\
 +===== 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.1710331203.txt.gz · Zuletzt geändert: von marko