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] – [Konfiguration für die Testumgebung mit geänderten Porteinstellungen:] marko | it-wiki:kubernetes:deployments_mit_kustomize [2024/03/13 12:33] (aktuell) – [Fazit] marko | ||
|---|---|---|---|
| Zeile 6: | Zeile 6: | ||
| ==== Konfiguration für die Dev-Umgebung: | ==== Konfiguration für die Dev-Umgebung: | ||
| - | < | + | < |
| kind: Service | kind: Service | ||
| apiVersion: v1 | apiVersion: v1 | ||
| 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.1710331144.txt.gz · Zuletzt geändert: von marko