Kubernetes-Anwendungen mit Cloud Code for IntelliJ debuggen

Mit Cloud Code for IntelliJ lassen sich mühelos Fehler in ihren auf einem Kubernetes-Cluster bereitgestellten Anwendungen beheben. Sie können Fehler in einer Anwendung in einem lokalen Cluster (z. B. Minikube oder Docker Desktop), in der Google Kubernetes Engine oder in einem anderen Cloud-Anbieter beheben.

Mit der Debugging-Unterstützung von Cloud Code überspringen Sie die manuelle Einrichtung wie das Einrichten der Portweiterleitung, die Installation eines Debugging-Back-Ends oder das korrekte Einfügen sprachspezifischer Debug-Argumente. Sie benötigen lediglich eine Cloud Code-fähige Kubernetes-Anwendung, die eine skaffold.yaml-Konfigurationsdatei enthält.

Mit Cloud Code können Sie auch Fehler in einer Anwendung beheben, während Sie Änderungen am Quellcode vornehmen und iterieren.

Unterstützte IDEs

In der folgenden Tabelle sind die Sprachen und IDEs aufgeführt, die Cloud Code für das Debugging unterstützt. In der Tabelle sind gegebenenfalls auch die erforderlichen Plug-ins aufgeführt:

Sprache Unterstützte IDEs und Versionen Erforderliches Plug-in
Java IntelliJ IDEA Ultimate
IntelliJ IDEA-Community
Einfach loslegen (Go) IntelliJ IDEA Ultimate Go-Plug-in
GoLand
Node.js IntelliJ IDEA Ultimate Node.js-Plug-in
WebStorm
Python IntelliJ IDEA Ultimate Python-Plug-in
PyCharm Professional

Weitere Informationen zur IDE-Unterstützung finden Sie unter Unterstützte JetBrains-IDEs.

Mit Cloud Code können Sie Haltepunkte festlegen und Fehler in Remote-Anwendungen beheben, die in Containern für die folgenden Sprachen ausgeführt werden:

Java

Cloud Code fügt automatisch die Umgebungsvariable JAVA_TOOL_OPTIONS mit der entsprechenden JDWP-Konfiguration hinzu, um die Fehlerbehebung zu aktivieren. Wenn JAVA_TOOL_OPTIONS bereits vorhanden ist, verwendet Cloud Code die in JAVA_TOOL_OPTIONS angegebenen Einstellungen.

Node.js

Je nach Struktur Ihrer Anwendung und ihrer Image-Build-Konfiguration müssen Sie möglicherweise helfen, dass der Debugger Ihre lokalen Quellen den Remotequellen im Container zuordnet. Dadurch kann der Node.txt-Debugger Ihre Haltepunkte ordnungsgemäß verarbeiten.

Dies kann auf eine der folgenden Arten geschehen:

  • Manuelle Konfiguration

    Wählen Sie im Drop-down-Menü Develop on Kubernetes die Option Konfigurationen bearbeiten aus. Konfigurieren Sie im Tab Debugging die Quellzuordnung von Ihrer lokalen Anwendungsquelle zum Quellspeicherort im Remote-Container.

    Quellort im Bereich "Quellzuordnung" auf dem Tab "Fehlerbehebung" auswählen

    Konfigurationsoptionen:

    • Datei/Verzeichnis: Die lokale Datei oder das lokale Verzeichnis Ihrer Anwendung, die auf Kubernetes ausgeführt wird.
    • Remote Path: Der Pfad zur Datei oder dem Verzeichnis, die im Container in Kubernetes ausgeführt werden.
  • Automatische Konfiguration

    Sie können diese Zuordnung zu Cloud Code aufheben. Wenn Sie die Fehlerbehebungssitzung starten, versucht Cloud Code, diese Zuordnung automatisch abzuleiten. Die abgeleitete Zuordnung wird Ihnen in einem Dialogfeld angezeigt. Ein Dialogfeld für jedes Artefakt, das Sie debuggen.

    Remote-Pfadzuordnungsdialog für jedes Artefakt, das den verwendeten Remote-Pfad angibt

    Konfigurationsoptionen:

    • Lokaler Pfad: der lokale Pfad zum Stammverzeichnis des Artefakts, für das Sie eine Fehlerbehebung durchführen
    • Remote Path: Der Pfad zur Datei oder dem Verzeichnis, die im Container in Kubernetes ausgeführt werden. Sie können diese Einstellung mit einem eigenen Wert überschreiben. Wenn Sie auf Abbrechen klicken, wird keine Zuordnung angewendet.

Einfach loslegen (Go)

Um Ihre Anwendung für die Fehlerbehebung zu konfigurieren, muss Ihre Anwendung eine auf dem Go-Modul basierende Anwendung sein und als Go-basiert identifiziert werden, indem Sie eine der Standard-Umgebungsvariablen der Go-Laufzeit im Container einstellen, z. B. GODEBUG, GOGC, GOMAXPROCS oder GOTRACEBACK. GOTRACEBACK=single ist die Standardeinstellung für Go und GOTRACEBACK=all eine allgemeine nützliche Konfiguration.

Optional (aber empfohlen) sollte Ihre Anwendung mit den -gcflags='all=-N -l'-Optionen erstellt werden, um Optimierungen zu deaktivieren. Skaffold-Profile sind für diesen Zweck nützlich und können in Ihrer Ausführungskonfiguration auf dem Tab Build/Bereitstellen mit dem Feld Bereitstellungsprofil festgelegt werden.

Python

Um Ihre Anwendung für das Debugging zu konfigurieren, müssen die folgenden Voraussetzungen erfüllt sein:

  • IDE, Edition und Plug-in sind kompatibel

    Kompatible IDEs, Versionen und Plug-ins finden Sie unter Unterstützte IDEs.

  • Skaffold-Version ist 1.25.0 oder höher

    Sie können Cloud Code die Verwaltung Ihrer Abhängigkeiten erlauben oder auf eine lokale Skaffold-Installation verweisen. Weitere Informationen finden Sie unter Einstellungen > Tools > Cloud Code > Abhängigkeiten.

  • Python-Interpreter ist konfiguriert

    Ohne einen in Ihrem Projekt konfigurierten Python-Interpreter funktioniert das Debugging nicht, da es keine Möglichkeit gibt, pydevd, den zugrunde liegenden Python-Debugger, auszuführen.

    IDE Konfiguration
    IntelliJ IDEA Für die Python-Fehlerbehebung mit Cloud Code muss ein Python-SDK für Ihr Projekt konfiguriert sein.

    Rufen Sie Datei > Projektstruktur auf und fügen Sie auf dem Tab Projekt ein Python SDK hinzu. Falls keine vorhanden sind, fügen Sie auf dem Tab SDK eines hinzu.
    PyCharm Wählen Sie unter Datei > Einstellungen > Projekt > Python-Interpreter oder für Mac OS X PyCharm > Einstellungen > Projekt > Python-Interpreter einen Python-Interpreter aus.

Weitere Informationen finden Sie in der Skaffold-Debugging-Dokumentation.

Fehler in Anwendungen beheben

  1. Klicken Sie zum Starten des Entwicklungszyklus im Debug-Modus auf Ihrem Kubernetes-Cluster auf die Debug-Aktion für Symbol für Ausführungsaktion Develop on Kubernetes.

    Kubernetes-Cluster-Entwicklungszyklus im Debug-Modus starten

    Der kontinuierliche Entwicklungszyklus wird im Debug-Modus gestartet.

    Cloud Code hängt eine Debug-Sitzung an:

    Kubernetes Debugger hinzugefügt

  2. Sie können jetzt die Aufgaben ausführen, die Sie normalerweise beim Debuggen von lokalem Code ausführen, z. B. das Festlegen von Haltepunkten und das Durchlaufen von Code in einem Live-Kubernetes-Cluster.

    Kubernetes Debugger-Sitzung

  3. Klicken Sie zum Beenden der Debugging-Sitzung auf das Stopp-Symbol in der Ausführungskonfiguration für Auf Kubernetes entwickeln.

Nächste Schritte

Support kontaktieren

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.