Anwendung in Cloud Code for IntelliJ ausführen und entwickeln

Nach der Einrichtung können Sie die Anwendung entweder regulär ausführen oder einen Entwicklungsdurchlauf in Ihrer IDE starten, um eventuelle Änderungen an der Quelle und Abhängigkeiten in die Live-Anwendung zu übernehmen. Auf dieser Seite wird die Gästebuch-Beispielanwendung verwendet, um die Ausführung und Entwicklung in Kubernetes zu veranschaulichen.

Ausführungsaktion auswählen

Vor dem Ausführen

Bevor Sie Ihre Anwendung ausführen, müssen Sie sie einrichten, um sie in Ihrem bevorzugten Kubernetes-Kontext bereitzustellen. Sie können sie in der Konfiguration auf dem Tab "Ausführen" und im Abschnitt "Bereitstellungseinstellungen" angeben.

Wenn Sie den aktuellen Kontext ändern möchten, können Sie dies mit dem Kubernetes Explorer tun, der entweder über den Seitenleistenbereich auf der rechten Seite oder über Tools > Cloud Code > Kubernetes > Cluster-Explorer ansehen verfügbar ist.

Zur Optimierung Ihrer Entwicklungsschleife, indem Sie Dateiänderungen eines bestimmten Typs schnell übernehmen, ohne eine Image-Neuerstellung durchführen zu müssen, können Sie Dateisynchronisierung und Hot Reload aktivieren.

Kontinuierliche Entwicklung in Kubernetes

Das Ausführungsziel Develop on Kubernetes startet den Entwicklungszyklus für einen Kubernetes-Cluster. Nachdem Sie den Entwicklungszyklus gestartet haben, erstellt Cloud Code mit Skaffold ein Image für das Projekt, fügt es dann hinzu, überträgt es per Push in das konfigurierte Repository und stellt mit kubectl die Kubernetes-Manifeste des Projekts bereit.

  1. Klicken Sie auf Symbol für Ausführungsaktion In Kubernetes entwickeln und dann auf Konfigurationen bearbeiten, um das Dialogfeld Konfigurationen ausführen/Debuggen zu öffnen.
  2. Passen Sie Ihre Bereitstellung mithilfe der verfügbaren Konfigurationsoptionen an.
  3. Wenn Sie möchten, dass Cloud Code Ihre Anwendung automatisch noch einmal bereitstellt, nachdem Ihre Änderungen gespeichert wurden, wählen Sie unter Watch mode - rebuild and redeploy die Option On filesave aus. Für neue Kubernetes-Anwendungen ist standardmäßig On-demand ausgewählt. Weitere Informationen zu Watch-Modi finden Sie unter Watch-Modi.
  4. Wenn Ihre Anwendung für die Verwendung von Skaffold-Modulen konfiguriert ist, können Sie auswählen, dass nur bestimmte Module erstellt oder bereitgestellt.
  5. Wenn Sie mit der Konfiguration zufrieden sind, klicken Sie auf OK und dann auf Symbol für Ausführungsaktion Ausführen.

Entwicklungszyklus für Kubernetes-Cluster starten

Skaffold-Module auswählen

In diesem Abschnitt wird beschrieben, wie Sie Ihr Skaffold-Projekt in Module aufteilen, damit Sie Teile Ihrer Anwendung unabhängig entwickeln und debuggen können.

Führen Sie die folgenden Schritte aus, um in IntelliJ Skaffold-Module auszuwählen:

  1. Installieren Sie die neuesten Insider-Builds.
  2. Rufen Sie Run > Edit configurations auf und öffnen Sie den Tab Build / Deploy.
  3. Wählen Sie skaffold.yaml aus.
  4. Wählen Sie eine der folgenden Optionen aus:
    • Erstellen mit allen Abhängigkeiten oder
    • Erstellen und Bereitstellen mit (wenn Module verfügbar sind) und beliebige Module auswählen.
Tab "Build / Deploy" mit der Modulliste.

Ihre Auswahl bleibt für nachfolgende Bereitstellungen erhalten. Wenn Sie eine Teilmenge von Modulen auswählen, zeigt Cloud Code eine Warnung zur Bereitstellung einer Teilmenge von Modulen und nicht des gesamten Systems an.

Vorschau der bereitgestellten Anwendung

  1. Klicken Sie bei der gewünschten Ausführungsaktion auf die Schaltfläche "Ausführen“. Sie können dann eingehende Anwendungslogs im Ausgabefenster auf dem Tab Logs anzeigen.

    Nach dem Start der Bereitstellung wird die Liste der weitergeleiteten Ports für die bereitgestellte Anwendung angezeigt.

  2. Nach erfolgreicher Bereitstellung werden Sie darüber informiert, dass neue Dienst-URLs verfügbar sind. Klicken Sie auf den Tab Dienst-URLs, um die URLs anzuzeigen, und dann auf den URL-Link, um den Browser mit Ihrer ausgeführten Anwendung zu öffnen.

    Portweiterleitungsdienste auf dem Tab „Dienst-URLs“ aufrufen

    Alternativ können Sie das Ereignisprotokoll öffnen und dann auf den Link klicken, um den Browser mit Ihrer ausgeführten Anwendung zu öffnen.

Logs ansehen

Sie können Logs von laufenden Pods nicht nur als Livestream in der Terminalausgabe sehen, wenn Sie Ihre Anwendung entwickeln und ausführen. Sie können Logs von einem bestimmten Pod auch im Kubernetes Explorer aufrufen.

So rufen Sie Logs eines bestimmten Pods auf:

  1. Rufen Sie den Kubernetes Explorer auf. Sie können entweder über die rechte Seitenleiste oder über Tools > Cloud Code > Kubernetes > View Cluster Explorer darauf zugreifen.

    Das Kubernetes Explorer-Steuerfeld wird über den Tab in der rechten Taskleiste geöffnet

  2. Wählen Sie den Pod aus, für den Sie Logs aufrufen möchten.

  3. Klicken Sie mit der rechten Maustaste auf einen Pod und dann auf Logs streamen. Alternativ können Sie Logs für einzelne Container streamen, die in Pods ausgeführt werden.

    In der Kubernetes Explorer Console werden die Logs angezeigt.

    Bild: Streamen von Logs eines Pods über das Kontextmenü, um die Logs in der Kubernetes Explorer-Konsole auszugeben

Neue Funktionen bei der Entwicklung auf Kubernetes hinzufügen

Wenn Sie mit Iteration auf Kubernetes einen Entwicklungszyklus gestartet haben und Ihrem Projekt weitere Features hinzugefügt haben, können Sie sehen, wie diese Änderungen im Kubernetes-Cluster bereitgestellt werden, ohne die Bereitstellung zu beenden und zu entfernen, das Image manuell zu erstellen und zu taggen oder den Cluster zu aktualisieren.

Wenn Sie die Gästebuch-App regelmäßig verwenden, gilt Folgendes:

  1. Öffnen Sie in src/main/java/cloudcode/guestbook/frontend die Datei "FrontendController.java" und fügen Sie der FrontendController-Klasse diesen neuen Endpunkt hinzu:

     @RequestMapping("/greeting")
     @ResponseBody
     public String greeting(@RequestParam(value="name", defaultValue="World") String name) {
        return String.format("Hello from Kubernetes with IntelliJ, %s!", name);
     }
     ```
    
  2. Fügen Sie die erforderlichen Importe für die neuen Annotationen RequestMapping und ResponseBody hinzu.

  3. Speichern Sie die Änderungen (Ctrl/Cmd+S) oder erstellen Sie das Projekt mit Build > Build Project.

    Im Konsolenfenster können Sie Fortschritts- und Bereitstellungslogs aufrufen. Sobald die Änderungen übernommen wurden, prüfen Sie die Aktualisierungen durch Aufruf der Endpunkt-URL: localhost:8080/greeting.

    Neu erstellten Endpunkt im Browser aufrufen

  4. Klicken Sie zum Beenden der kontinuierlichen Entwicklungssitzung auf die Schaltfläche Beenden.

    Das Plug-in löscht alle Kubernetes-Ressourcen, die für die Entwicklungssitzung verwendet wurden.

Secrets speichern

Wenn Ihr Code potenziell sensible Daten wie API-Schlüssel, Passwörter und Zertifikate enthält, sollten Sie diese als Secrets speichern. Mit Cloud Code können Sie diese Secrets sicher in Secret Manager speichern und sie bei Bedarf programmatisch abrufen. Eine detaillierte Beschreibung dazu, wie Sie Secrets mit Cloud Code erstellen und verwalten können, finden Sie in der Anleitung zu Secret Manager.

Ressourcendetails ansehen

Wenn Sie den Status Ihrer Kubernetes-Ressourcen beobachten möchten, können Sie dazu den Kubernetes Explorer verwenden, auf den Sie über die Seitenleiste rechts zugreifen können. Alternativ können Sie über Tools, Cloud Code, Kubernetes und View Cluster Explorer auf den Kubernetes Explorer zugreifen.

Das Kubernetes Explorer-Steuerfeld wird über den Tab in der rechten Taskleiste geöffnet.

Mit dem Kubernetes Explorer können Sie Informationen über Ihre Cluster, Knoten, Arbeitslasten und andere abrufen. Außerdem können Sie einen aktiven Kontext festlegen, Logs streamen und ansehen sowie Ressourcenbeschreibungen nachschlagen.

Sie können die Details Ihrer bereitgestellten Ressourcen anzeigen lassen. Dazu klicken Sie mit der rechten Maustaste auf ein Ressourcenlabel im Kubernetes Explorer und dann auf Beschreiben.

Bild: Beschreibungsoption ist verfügbar, wenn Sie im Bereich "Kubernetes Explorer" mit der rechten Maustaste auf eine Ressource klicken und "Describe" auswählen

Konfiguration

Wenn Sie die Ausführungskonfiguration Develop on Kubernetes verwenden, können Sie Ihr Deployment anpassen, indem Sie verfügbare Einstellungen konfigurieren. Über die Drop-down-Liste wählen Sie Ausführungskonfiguration und dann die Option Konfigurationen bearbeiten aus, um auf die Konfigurationsoptionen zuzugreifen.

Skaffold-Optionen

  • Skaffold-Konfiguration: Es wird eine Konfigurationsdatei "skaffold.yaml" ausgewählt. Diese Option ist verfügbar, wenn sich eine "skaffold.yaml"-Datei in Ihrem Projekt befindet, was automatisch erkannt wird.
  • Deployment-Profil: Zur Auswahl eines Profils aus den verfügbaren Optionen, die in der Datei "skaffold.yaml" konfiguriert wurden.
  • Umgebungsvariablen: Mit dieser Option können Sie zusätzliche Umgebungsvariablen konfigurieren, die an den Skaffold-Deployment-Prozess übergeben werden sollen. Skaffold-Flags können auch als Umgebungsvariablen für dieses Feld konfiguriert werden. Eine vollständige Liste der verfügbaren Skaffold-Umgebungsvariablen finden Sie in der Referenzdokumentation zur Skaffold-Befehlszeile.
  • Ausführlichkeit: Hier können Sie die Ausführlichkeitsstufe der Ausgabe auf trace, debug, info, warn, error oder fatal festlegen. Die standardmäßige Ausführlichkeitsstufe ist warn.

Kubernetes-Optionen

  • Deployment-Kontext: Stellt den Kubernetes-Kontext dar, in dem Ihre Anwendung bereitgestellt wird. Wenn kein Deployment-Kontext angegeben ist, wird das Standardverhalten in Ihrem aktuellen Systemkontext bereitgestellt, sofern vorhanden.

    Wenn Sie nicht im aktuellen Kontext bereitstellen möchten, können Sie im Abschnitt Bereitstellung der Einstellungen für die Ausführung/Fehlerbehebung Folgendes tun:

    • Lokal in einem Minikube-Cluster bereitstellen: Es wird ein von Cloud Code verwalteter Minikube-Cluster zum Ausführen Ihrer Anwendung gestartet und der Cluster nach Beenden der Bereitstellung beendet. Wenn ein Minikube-Cluster bereits ausgeführt wird, verwendet Cloud Code den vorhandenen Minikube-Cluster für die Bereitstellung.
    • Switch context and deploy to: Ändert den aktuellen Kontext in Ihrem System beim Deployment in den angegebenen Kontext.

      Kubernetes-Deployment-Kontext in einer Cloud Code--Kubernetes-Konfiguration auswählen

  • Deployments nach Abschluss löschen: Es werden die Kubernetes-Deployments gelöscht, nachdem der Prozess beendet wurde. Dies ist das Standardverhalten. Sie können diese Einstellung auch ändern, sodass die Deployments nicht gelöscht werden.

Speicheroptionen für Container-Images

Weitere Informationen finden Sie im Leitfaden zum Speichern von Container-Images.

Build-Einstellungen

Cloud Code unterstützt die Artefakttypen Docker, Jib und Buildpacks. Informationen zum Festlegen Ihres bevorzugten Builders und der relevanten Einstellungen finden Sie im Leitfaden „Build-Einstellungen für Container-Images konfigurieren“.

Support

So senden Sie Feedback oder melden ein Problem in Ihrer IntelliJ-IDE: Tools > Cloud Code > Hilfe / Info > Feedback geben oder Problem melden, um ein Problem auf GitHub zu melden oder stellen Sie eine Frage zu Stack Overflow.

Sie können auch dem Kanal #cloud-code beitreten, der Teil der Google Cloud-Slack-Community ist.