Skaffold ist ein Befehlszeilentool für die kontinuierliche Entwicklung für Kubernetes-native Anwendungen. Skaffold übernimmt den Workflow zum Erstellen, Übertragen und Bereitstellen Ihrer Anwendung und bietet Bausteine zum Erstellen von CI/CD-Pipelines. Skaffold ist die Engine, die Cloud Code unterstützt.
Skaffold-Projekte verwenden in der Regel eine einzelne skaffold.yaml
-Konfiguration, um zu beschreiben, wie die Anwendung erstellt und bereitgestellt wird. Wenn ein Projekt wächst, kann es nützlich sein, die Anwendungspipeline in separate Teile aufzuteilen.
Skaffold unterstützt die Definition mehrerer
Konfigurationsabhängigkeiten
werden entweder zusammen in derselben skaffold.yaml
-Datei platziert und mithilfe von YAML getrennt
Dokumenttrennzeichen (---
) oder in separaten skaffold.yaml
platziert
Dateien, auf die in einer übergeordneten skaffold.yaml
-Datei verwiesen wird. A
Konfiguration können Sie zu einem Modul machen, indem Sie ihm mithilfe des
.metadata.name
.
Mithilfe von Modulen können Sie Teile der Anwendung unabhängig entwickeln und Fehler beheben. Abhängigkeiten können zwischen Konfigurationsdateien und bestimmten Modulen definiert werden. Eine Anleitung zur Verwendung dieser Funktion finden Sie unter Teile einer Anwendung unabhängig entwickeln.
Fehler in Anwendungen mit Skaffold-Modulen beheben
Sie können die gesamte Anwendung oder eine Reihe von definierten Modulen iterativ entwickeln und Fehler beheben. Skaffold verwaltet die Modulabhängigkeiten und die Reihenfolge der Bereitstellung.
Erste Schritte mit einem Skaffold-Modulbeispiel
Informationen zum Auswählen von Modulen für Ihre Anwendung finden Sie unter Auswählen Skaffold-Module und ihre Abhängigkeiten erstellen.
Wenn Sie keine Skaffold-Module verwendet haben und das Feature mit einem Beispiel testen möchten, finden Sie weitere Informationen unter:Gästebuchbeispiel, das modularisiert ist infrontend
undbackend
.
Ein großes Anwendungsbeispiel für Unternehmen, das mit verschiedenen Technologien und Sprachen entwickelt wurde und Skaffold-Module verwendet, finden Sie im Beispiel für Bank of Anthos.
Gängige Anwendungsfälle
In diesem Abschnitt werden einige gängige Anwendungsfälle beschrieben, die verschiedene Szenarien zeigen, wann und wie Sie Module in Ihrer IDE verwenden können.
Entwicklung von Mikrodiensten
Sie sind ein Frontend-Entwickler, der hauptsächlich am frontend
-Modul arbeitet. Als Mikrodienst hat frontend
keine explizite Code- oder Bibliotheksabhängigkeit für das backend
-Repository, erfordert aber die Bereitstellung und Ausführung von backend
im Cluster.
Sie verwenden Ihr Skaffold-basiertes Projekt, das eine frontend
-Moduldefinition enthält, um eine Cloud Code-IDE in einem freigegebenen Entwicklungscluster bereitzustellen und Fehler zu beheben, in dem das Backend-Team auch seinen Dienst bereitstellt. Das DevOps-Team verwaltet diesen freigegebenen Cluster.
Sie arbeiten meistens nicht mit backend
-Code oder beheben Fehler oder aktualisieren Kubernetes-Konfigurationen. Skaffold erstellt und stellt andere Konfigurationen bereit, die für frontend
erforderlich sind. Sie konfigurieren die Cloud Code-Bereitstellungskonfiguration so, dass sie nur im Modul frontend
iteriert.
Sie können auch frontend
und backend
in einem lokalen Cluster bereitstellen, um eine schnellere iterative Erfahrung zu erhalten.
Grenzübergreifende Mikrodienstentwicklung und -Fehlerbehebung
Wenn mehrere Fehler zusammen behoben werden müssen, können Sie:
- Das übergeordnete Verzeichnis, in dem sich alle Unterverzeichnisse mit dem Quellcode des Moduls relativ zueinander befinden, öffnen.
- Die Root-Datei
skaffold.yaml
für die Bereitstellung auswählen (Konfigurationen) - Konfigurieren Sie die Cloud Code-Bereitstellungskonfiguration so, dass sie nur auf die lokal verfügbaren Module
frontend
undbackend
und auf deren jeweiliges Kubernetes-Konfigurationsmodul iteriert, wenn Änderungen vorhanden sind.
Sie können auch eine separate skaffold.yaml
-Stammdatei für lokale
mit einem statischen Datenserver.
YAML-Bearbeitung von intelligenten Modulen
Sie sind DevOps-Entwickler und erstellen ein Vorlagen-Repository für das Team von Mikrodienstentwicklern, die Skaffold-Module verwenden. Sie möchten gewährleisten, dass in Moduldefinitionen keine Fehler auftreten, ohne Skaffold manuell auszuführen (z. B. zyklische Abhängigkeiten oder nicht eindeutige Modulnamen). Sie verwenden Cloud Code-IDEs, um Skaffold-YAML-Konfigurationsdateien zu bearbeiten.
Nächste Schritte
- Teile einer Anwendung unabhängig entwickeln
- Kubernetes-Anwendung debuggen
- Kubernetes-Anwendung ausführen