Kubernetes-Anwendung in Cloud Code für Cloud Shell ausführen

Mit Cloud Code können Sie Ihre Anwendung auf einfache Weise in einem Kubernetes-Cluster ausführen und mit skaffold dev live aufrufen. Sie können Ihre Anwendung auf einem lokalen Cluster wie Minikube oder Docker Desktop, in Google Kubernetes Engine oder in jedem anderen Cloud-Anbieter ausführen.

Sie können die Dateisynchronisierung und Hot Reload aktivieren, um Ihre Entwicklungsschleife zu optimieren, indem Sie Änderungen an unterstützten Dateitypen schnell übernehmen, ohne ein neues Image erstellen zu müssen.

Anwendung ausführen

  1. Öffnen Sie die Befehlspalette (drücken Sie Ctrl/Cmd+Shift + P) und führen Sie dann den Befehl Cloud Code: Auf Kubernetes ausführen aus.
  2. Geben Sie an, ob Sie den aktuellen Kubernetes-Kontext zum Ausführen der Anwendung verwenden oder ob Sie zu einem bevorzugten Kontext wechseln möchten. Weitere Informationen zum Einrichten eines Kubernetes-Kontexts finden Sie unter Konfiguration einrichten.
  3. Wenn Sie einen Remote-Cluster als Kontext ausgewählt haben, wenn Sie dazu aufgefordert werden, wählen Sie eine Image-Registry aus, in die die Images übertragen werden sollen. Wenn Sie Container Registry verwenden, können Sie zu einer vorhandenen Registry wechseln oder den Namen der zu erstellenden Registry angeben. Wenn für Ihr Projekt Artifact Registry API aktiviert und mindestens ein Artifact Registry-Repository vorhanden ist, können Sie dort ein Artifact Registry-Repository auswählen.

    In den folgenden Beispielen wird gezeigt, wie Sie für einige gängige Registries angeben, wo Container-Images gespeichert werden:

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

    Cloud Code verkettet diese Image-Registry mit dem Image-Namen, der in den Kubernetes-Manifesten angegeben ist, um den Namen des endgültigen Image-Repositorys zu generieren.

    Weitere Informationen finden Sie im Leitfaden zur Image-Registry.

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

    Anschließend erstellt Cloud Code 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 deklarierten Containerports automatisch an Ihren Computer weiter und zeigt die URLs im Ausgabefenster an. So können Sie in Ihrer Live-Anwendung suchen.

  4. Nach Abschluss Ihrer Sitzung können Sie die folgenden Kontextmenübefehle verwenden:

    • Bereitstellungslogs öffnen: Öffnen Sie mit dem Cloud Code-Log-Explorer die Anwendungslogs einer bestimmten Bereitstellung
    • Dienst-URL öffnen: Öffnen Sie die Anwendungsdienst-URL eines bestimmten Dienstes in einem Webbrowser.
  5. Wenn Sie den Watch-Modus in Ihrer Startkonfiguration deaktiviert haben und Änderungen an Ihrer Anwendung vornehmen und die Anwendung neu erstellen und neu bereitstellen möchten, pausieren Sie die Ausführungsaktion und klicken Sie auf Symbol: Neu erstellen und neu bereitstellen Anwendung neu erstellen und noch einmal bereitstellen.

  6. Klicken Sie in der Debug-Toolbar auf Symbol für Debug-Stopp Stop, um die Anwendung anzuhalten.

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

Builder- und Build-Umgebung auswählen

In einem Projekt, das keine skaffold.yaml-Datei im Stammverzeichnis enthält oder nicht auf skaffold.yaml in der .vscode/launch.json-Datei verweist, können Sie die Cloud Code-UI verwenden, um einen Builder und eine Build-Umgebung auszuwählen. Das lokale Erstellen ist kostenlos, da es eigene Ressourcen verwendet. 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 die Erstellung Ihrer Anwendung mit Cloud Build finden Sie unter Cloud Build-Preise.

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

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

  2. Wählen Sie eine Build-Umgebung aus.

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

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

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

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

Startkonfiguration anpassen

Um die Ausführung Ihrer Anwendung zu konfigurieren, können Sie Ihre Datei skaffold.yaml anpassen.

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

  • skaffoldConfig: Geben Sie die Skaffold-Konfigurationsdatei an, die die Build- und Deployment-Einstellungen enthält.
  • Profile: Geben Sie das gewünschte 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 der Arbeitsbereich auf Änderungen geprüft und die Anwendung noch einmal ausgeführt werden soll. 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 der Wert nicht explizit auf "false" festgelegt wird, ist standardmäßig "true" eingestellt.
  • portForward: Geben Sie an, ob Ports für bereitgestellte Kubernetes-Ressourcen auf Ihrem Cluster an Ihren lokalen Computer weitergeleitet werden sollen. Sofern der Wert nicht explizit auf "false" festgelegt wird, ist standardmäßig "true" eingestellt.