Skaffold in Google Cloud Deploy verwenden

In diesem Artikel wird Skaffold beschrieben, wie und warum Google Cloud Deploy es verwendet und was Sie tun müssen, damit dies für Sie funktioniert.

Google Cloud Deploy verwendet Skaffold für Rendering- und Bereitstellungsvorgänge. Sie können sie auch für die lokale Entwicklung, die Erstellung, das Testen und die erweiterten Bereitstellungsfunktionen verwenden. Google Cloud Deploy erfordert jedoch nur eine Skaffold-Konfiguration, die die zu rendernden und anzuwendenden Manifeste identifiziert.

Was ist Skaffold?

Skaffold ist ein Befehlszeilentool, das die kontinuierliche Entwicklung für Kubernetes-native Anwendungen ermöglicht. Sie können Skaffold verwenden, um einen lokalen Entwicklungsarbeitsbereich für die Verwendung von Pipelines zur kontinuierlichen Bereitstellung in Google Cloud zu konfigurieren.

Skaffold bietet die folgenden Features:

  • Sie erhalten eine einzelne Kontrolle über CI/CD-Pipelineaktivitäten (Builds, Rendering, Testbereitstellung usw.).

  • Es ist als lokales Entwicklungstool nützlich.

  • Skaffold-Profile ermöglichen die Unterscheidung zwischen verschiedenen Umgebungen mit unterschiedlichen Build-, Test- und Bereitstellungskonfigurationen, die alle in derselben Konfigurationsdatei enthalten sind.

Warum verwendet Google Cloud Deploy Skaffold?

Google Cloud Deploy verwendet Skaffold, um Renderingtools von der Bereitstellungspipeline zu trennen. Ihre Bereitstellungspipeline definiert einfach den Fortschritt vom Ziel zum Ziel, während die Skaffold-Konfiguration definiert, welche Manifeste wie gerendert werden. Dadurch wird das Manifest-Rendering flexibel, ohne dass sich dies auf die Definition Ihrer Bereitstellungspipeline auswirkt.

Hier sind einige der Vorteile, die Skaffold bei der Verwendung mit Google Cloud Deploy bietet:

  • Einfaches Onboarding.

    Beginnen Sie mit einer lokalen Entwicklungsschleife. Sie können Ihre skaffold.yaml-Datei für Ihr Team freigeben, wodurch neue Konsistenz ermöglicht wird.

  • Konsistente Kontrolle über das Rendering über verschiedene Deployment-Ziele hinweg

    Sie können Skaffold-Profile mit unterschiedlichem Rendering und unterschiedlicher Bereitstellung für verschiedene Ziele verwenden.

  • Auswahl von Renderingtools ohne die Definition von Bereitstellungspipelines zu beeinträchtigen

    Mit Skaffold kann Google Cloud Deploy die Definition der Bereitstellungspipeline von den Renderingdetails trennen. Durch diese Trennung können Sie mit Ihren Manifesten experimentieren, ohne die Bereitstellungspipeline zu unterbrechen.

  • Einheitlicher Rendering-Prozess

    Die Renderingquelle sowie Ihre Container werden verwendet, um gerenderte Manifeste zu generieren.

  • Systemdiagnosen für die Bereitstellung

    Skaffold führt sie aus und Google Cloud Deploy verwendet sie.

Wie verwendet Google Cloud Deploy Skaffold?

  • Die Renderingquelle und Verweise auf Container-Images werden beim Erstellen eines Releases an Google Cloud Deploy übergeben.

    Im Rahmen der Releaseerstellung ruft Google Cloud Deploy Cloud Build auf, das wiederum skaffold diagnose und skaffold render zum Rendern des Manifests oder der Manifeste mit dieser Rendering-Quelle und diesen Images aufruft.

  • Sie können Skaffold-Profile verwenden, um Manifeste zu unterscheiden, die auf verschiedene Ziele angewendet werden.

  • Bei der Bereitstellung ruft Google Cloud Deploy skaffold apply auf, um das gerenderte Manifest oder Manifest auf den Zielcluster anzuwenden.

Skaffold für Sie erstellen

  1. Konfigurieren Sie Skaffold gemäß Ihren Pipelineanforderungen.

    1. Bestimmen Sie die Anforderungen Ihrer Bereitstellungspipeline.

      Wie viele Ziele haben Sie? Rendering und Deployment sind für beide identisch. Wenn die Konfiguration für jedes Ziel in Ihrem Fortschritt gleich ist, müssen Sie keine Skaffold-Profile verwenden. Sie benötigen nur die Datei skaffold.yaml, in der die zu rendernden Manifeste beschrieben werden.

    2. Erstellen Sie gegebenenfalls ein Skaffold-Profil für jedes Ziel.

      Definieren Sie diese in der Datei skaffold.yaml und binden Sie sie an die Sequenz der Fortschrittspipeline-Definition für die Zustellungspipeline.

      Weitere Informationen zu Skaffold-Profilen finden Sie in der Skaffold-Dokumentation. Das Dokument Manifeste in Google Cloud Deploy verwalten enthält auch Beispielprofilkonfigurationen.

  2. Verbinden Sie Cloud Deploy mit Ihrem CI-System.

    Am Ende Ihres CI-Prozesses übergeben Sie die skaffold.yaml, die Renderingquelle und die Container-Images, die in das gerenderte Manifest ausgefüllt werden sollen.

  3. Optional: Richten Sie Ihre lokale Entwicklungsschleife mit Skaffold ein.

    Die Verwendung von Skaffold für die Entwicklung ist in Google Cloud Deploy optional. Die einzige Voraussetzung für die Ausführung von Google Cloud Deployment ist eine skaffold.yaml-Datei, mit der Manifeste identifiziert werden.

Nächste Schritte