Kubernetes-Anwendung ausführen

Mit Cloud Code können Sie Ihre Anwendung problemlos mit skaffold dev in einem Kubernetes-Cluster ausführen und live ansehen. Sie können Ihre Anwendung auf einem lokalen Cluster (z. B. Minikube oder Docker Desktop), Google Kubernetes Engine oder einem anderen Cloudanbieter ausführen.

Zur Optimierung Ihrer Entwicklungsschleife durch schnelle Aufnahme von Änderungen an Dateien unterstützter Typen, ohne eine Image-Neuerstellung durchführen zu müssen, können Sie Dateisynchronisierung und Hot Refresh aktivieren.

Anwendung ausführen

  1. Öffnen Sie die Befehlspalette (drücken Sie Ctrl/Cmd+Shift+P) und führen Sie dann den Befehl Cloud Code: Run on Kubernetes aus.
  2. Prüfen Sie, ob Sie den aktuellen Kubernetes-Kontext zum Ausführen der Anwendung verwenden oder zu einem bevorzugten Kontext wechseln möchten. Weitere Informationen zum Einrichten eines Kubernetes-Kontexts finden Sie unter Konfiguration einrichten.
  3. Wenn Ihr Kubernetes-Kontext ein Remote-Cluster ist, werden Sie aufgefordert, eine Image-Registry bereitzustellen, auf die die Images übertragen werden können.

    Im Folgenden finden Sie Beispiele für die Angabe, wo Container-Images für einige gängige Registries gespeichert werden:

    Docker Hub docker.io/{account}
    Achten Sie darauf, dass Sie korrekt authentifiziert sind, wenn Sie ein privates Docker Hub-Repository verwenden.
    Container Registry gcr.io/{project_id}

    Cloud Code verkettet diese Image-Registry mit dem in den Kubernetes-Manifesten angegebenen Image-Namen, um den endgültigen Image-Repository-Namen zu generieren.

    Weitere Informationen finden Sie in der Anleitung zur Handhabung von Image-Registrys.

    Diese Auswahl wird in der Startkonfiguration von cloudcode.kubernetes (in .vscode/launch.json) gespeichert.

    Cloud Code erstellt Ihre Container, überträgt sie in die Registry, wendet Kubernetes-Konfigurationen auf den Cluster an und wartet auf den Rollout.

    Nach Abschluss des Rollouts leitet Cloud Code alle angegebenen Containerports automatisch an Ihren Computer weiter und zeigt die URLs im Ausgabefenster an, damit Sie in der Live-Anwendung suchen können.

  4. Nach Abschluss der Sitzung stehen Ihnen zusätzliche Kontextmenüoptionen zur Überwachung Ihrer Anwendung und ihrer Ressourcen mithilfe der Cloud Code-Statusleiste zur Verfügung, darunter:

    • Bereitstellungslogs öffnen: Mit der Cloud Code-Loganzeige können Sie die Anwendungslogs einer bestimmten Bereitstellung öffnen
    • Dienst-URL öffnen: Mit dieser Option können Sie die URL des Anwendungsdienstes eines bestimmten Dienstes in einem Webbrowser öffnen.
    • Wiedergabemodus aktivieren/deaktivieren:Wechseln Sie den Wiedergabemodus für die aktuelle Sitzung. Standardmäßig überwacht Cloud Code das Dateisystem kontinuierlich auf Änderungen an Ihren Dateien, z. B. Kubernetes-Konfiguration oder -Code, erstellt die Container neu und stellt die Anwendung im Cluster neu bereit, sodass { 101}Änderungen werden nahezu in Echtzeit wiedergegeben.
  5. Klicken Sie zum Beenden der Anwendung in der Debug Toolbar auf Symbol DebugDebug-Stopp“ Stop (Beenden).

    Nachdem Sie die Anwendung angehalten haben, werden alle bereitgestellten Kubernetes-Ressourcen aus dem Cluster gelöscht. Sie können dieses Verhalten mit dem Flag cleanUp in Ihrer Startkonfiguration ändern.

Builder- und Build-Umgebung auswählen

In einem Projekt, das im Stammverzeichnis keine Datei skafwrap.yaml enthält oder in der.vscode/launch .json-Datei nicht auf skaf Fold.yaml verweist, können Sie über die Cloud Code-UI Builder- und Build-Umgebung. Das Erstellen lokal ist kostenlos, da die Ressourcen darin verwendet werden. Das Erstellen mit Cloud Build eignet sich für langsamere Maschinen oder Maschinen, die nicht mit der Prozessorarchitektur des Zielclusters übereinstimmen. Informationen zu den Kosten für das Erstellen Ihrer Anwendung mit Cloud Build finden Sie unter Cloud Build-Preise.

Wenn Sie eines der Beispiele verwenden, löschen Sie die Datei skafwrap.yaml, bevor Sie eine Build-Aktion ausführen, um die UI zu verwenden. Eine Anleitung zum Auswählen eines Builders und einer Build-Umgebung ohne UI finden Sie unter Skaffold-Konfiguration manuell erstellen.

  1. Öffnen Sie in einem Projekt ohne skaf Fold-Datei die Befehlspalette (drücken Sie Ctrl/Cmd + Shift + P) und führen Sie dann Cloud Code Auf Kubernetes ausführen oder Cloud Code: In Kubernetes debuggen

  2. Build-Umgebung auswählen

    Wenn Sie Cloud Build auswählen, geben Sie die Image-Registry an.

  3. Geben Sie für jedes Image und seine Einstellungen einen Builder (Docker oder Buildpack) an.

  4. Aktivieren oder deaktivieren Sie eine der Konfigurationsoptionen und klicken Sie dann auf Fehlerbehebung oder Ausführen.

Die ausgewählten Optionen werden in einer Datei skafwrap.yaml gespeichert, die Sie zur weiteren Anpassung direkt bearbeiten können.

Startkonfiguration anpassen

Wenn Sie festlegen möchten, wie Ihre Anwendung ausgeführt wird, können Sie die Datei skafleaf.yaml anpassen

Sie können den Start auch konfigurieren, indem Sie die folgenden Felder in der Konfiguration cloudcode.kubernetes in der Datei .vscode/launch.json angeben:

  • skafoldConfig: Geben Sie die Skaffold-Konfigurationsdatei an, die die Build- und Deployment-Einstellungen enthält.
  • profile: Geben Sie Ihr bevorzugtes Skaffold-Profil an. Wenn keines definiert ist, wird das Standardprofil verwendet.
  • imageRegistry: Geben Sie die Image-Registry an, in die Images übertragen werden sollen.
  • watch: Geben Sie an, ob Änderungen im Arbeitsbereich beobachtet werden sollen und führen Sie die Anwendung noch einmal aus. Sofern der Wert nicht explizit auf "false" festgelegt wird, ist standardmäßig "true" eingestellt.
  • cleanUp: Geben Sie an, ob bereitgestellte Kubernetes-Ressourcen im Cluster gelöscht werden sollen, nachdem die Anwendung beendet wurde. Sofern nicht explizit auf falsefalse“ gesetzt, ist standardmäßig truetrue“ festgelegt.
  • portForward: Geben Sie an, ob Ports für bereitgestellte Kubernetes-Ressourcen in Ihrem Cluster an Ihren lokalen Computer weitergeleitet werden sollen. Sofern nicht explizit auf falsefalse“ gesetzt, ist standardmäßig truetrue“ festgelegt.