Kubernetes-Anwendung mit Cloud Code für VS Code bereitstellen

Auf dieser Seite werden die ersten Schritte mit Cloud Code beschrieben.

Sie richten eine neue Kubernetes-Anwendung mit einer Beispielanwendung „Hello World“ ein, erstellen einen Cluster, führen Ihre Anwendung in diesem Cluster aus, beheben Fehler im ausgeführten Code, rufen Logs aus Ihrer Live-Anwendung auf und stellen außerdem eine Verbindung zwischen einem Terminal und Ihrem ausgeführten Container her.

Hinweise

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  4. Verify that billing is enabled for your Google Cloud project.

  5. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  7. Wenn Sie für diese Anleitung ein vorhandenes Projekt verwenden, prüfen Sie, ob Sie die erforderlichen Berechtigungen haben. Wenn Sie ein neues Projekt erstellt haben, haben Sie bereits die erforderlichen Berechtigungen.

  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the Google Kubernetes Engine API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  10. Installieren Sie Git. Git ist zum Kopieren von Beispielen auf Ihren Computer erforderlich.
  11. Installieren Sie Docker. Docker ist erforderlich, um den Beispielcode zu erstellen. Ihr lokales Nutzerkonto muss Container erstellen können.
  12. Installieren Sie das Cloud Code-Plug-in, falls noch nicht geschehen.
  13. Erforderliche Rollen

    Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Kubernetes Engine-Administrator (roles/container.admin) für Ihr Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ausführen dieser Kurzanleitung benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

    Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Anwendung erstellen

  1. Öffnen Sie die Befehlspalette (drücken Sie Ctrl/Cmd+Shift+P oder klicken Sie auf Ansicht > Befehlspalette) und führen Sie dann Cloud Code: Neue Anwendung aus.

  2. Wählen Sie Kubernetes-Anwendung aus.

  3. Wählen Sie eine Hello World-Anwendung in der gewünschten Sprache aus.

    Wenn Sie beispielsweise Node.js: Hello World auswählen, wird eine Hello World-Startanwendung in Node.js erstellt.

  4. Speichern Sie die neue Anwendung.

    In einer Benachrichtigung wird bestätigt, dass die Anwendung erstellt wurde, und die Anwendung wird in einem neuen Fenster geöffnet.

GKE-Cluster erstellen

So erstellen Sie einen GKE-Standardcluster (Google Kubernetes Engine):

  1. Klicken Sie auf Cloud Code und maximieren Sie den Bereich Kubernetes.

  2. Klicken Sie auf Hinzufügen Cluster zur KubeConfig hinzufügen und dann im Menü Schnellauswahl auf Google Kubernetes Engine.

  3. Wenn Sie aufgefordert werden, die Container API zu aktivieren, wählen Sie Ja aus.

  4. Klicken Sie auf + Neuen GKE-Cluster erstellen.

  5. Wählen Sie Standard als Clustertyp aus.

  6. Klicken Sie auf Öffnen, damit Cloud Code die Google Cloud Konsole öffnen kann.

  7. Achten Sie darauf, dass in der Google Cloud Console das Projekt ausgewählt ist, das Sie zuvor erstellt oder ausgewählt haben.

  8. Legen Sie my-first-cluster als Clusternamen fest.

  9. Wählen Sie Zonal als Standorttyp aus und legen Sie die Zone auf us-central1-a fest.

  10. Klicken Sie auf Erstellen. Die Clustererstellung dauert einige Minuten.

  11. Nachdem der Cluster erstellt wurde, klicken Sie noch einmal auf Cluster zur KubeConfig hinzufügen und wählen Sie den gerade erstellten Cluster aus der Liste aus.

  12. Der neue Cluster wird der Konfiguration hinzugefügt und als aktiver Kontext konfiguriert.

App ausführen und aufrufen

Jetzt können Sie die Anwendung ausführen und live ansehen. Cloud Code beobachtet Ihr Dateisystem auf Änderungen, sodass Sie Ihre Anwendung nahezu in Echtzeit bearbeiten und noch einmal ausführen können.

So führen Sie Ihre Anwendung aus:

  1. Klicken Sie in der Cloud Code-Statusleiste auf den Namen des aktiven Projekts.

    Aktiver Projektname in der Statusleiste

  2. Wählen Sie im angezeigten Menü „Schnellauswahl“ die Option Auf Kubernetes ausführen aus. Wählen Sie bei erneuter Aufforderung Auf Kubernetes ausführen aus.

  3. Prüfen Sie, ob Sie den aktuellen Clusterkontext verwenden oder zu einem anderen Kontext wechseln möchten.

  4. Wenn Sie dazu aufgefordert werden, wählen Sie eine Image-Registry aus, in die die Images übertragen werden sollen. Wenn Sie mit gcr.io/PROJECT_ID eine neue Image-Registry erstellen, muss sich die Image-Registry im selben Projekt wie Ihr Cluster befinden.

  5. Sobald Ihre Anwendung in Kubernetes ausgeführt wird, klicken Sie im Abschnitt Entwicklungssitzungen für die Aufgabe In Kubernetes ausführen auf den Eintrag Status. Ein Fenster mit dem Tab Output (Ausgabe) wird geöffnet. Dieser enthält die URL Ihrer Anwendung. Drücken Sie zum Öffnen dieser URL die Strg-Taste (oder die Befehlstaste unter macOS) und klicken Sie auf die Adresse.

    Sie finden Ihre Anwendung auch in der Arbeitslastenübersicht in der Google Cloud -Konsole. Wenn Sie weitere Informationen zu Ihrer laufenden Anwendung aufrufen möchten, z. B. die externe IP-Adresse und Portnummer, klicken Sie in der Liste auf den Namen der Anwendung.

Tipps zur Fehlerbehebung

Wenn Sie einen bereits vorhandenen Cluster verwenden, legen Sie Ihren Cluster als aktiv fest und rufen Clusteranmeldedaten ab:

  1. Klicken Sie in VS Code auf  Cloud Code und maximieren Sie den Bereich Kubernetes.

  2. Klicken Sie mit der rechten Maustaste auf den Clusternamen und dann auf Als aktiven Cluster festlegen.

Anwendung debuggen

So beheben Sie Fehler in Ihrer Anwendung:

  1. Klicken Sie in der Cloud Code-Statusleiste auf den Namen des aktiven Projekts.

    Aktiver Projektname in der Statusleiste

  2. Wählen Sie im angezeigten Menü „Schnellauswahl“ die Option Debuggen in Kubernetes aus.

  3. Wenn Sie dazu aufgefordert werden, authentifizieren Sie Ihre Anmeldedaten, um eine Anwendung lokal auszuführen und zu debuggen.

  4. Wenn Sie dazu aufgefordert werden, bestätigen Sie, ob Sie den aktuellen Clusterkontext verwenden oder zu einem bevorzugten Kontext wechseln möchten.

    Cloud Code verwendet die cloudcode.kubernetes-Konfigurationen in Ihrer .vscode/launch.json-Datei, um Ihre Anwendung auszuführen und eine Debugger-Sitzung hinzuzufügen.

    Cloud Code erstellt Ihre Container, verschiebt sie in die Registry, wendet Kubernetes-Konfigurationen auf den Cluster an und gibt die IP-Adresse zurück, mit der Sie Inhalte in Ihrer Live-Anwendung suchen können.

  5. Vor dem Anhängen der Debugger-Sitzung werden Sie aufgefordert, das Verzeichnis im Remote-Container zu bestätigen oder einzugeben, in dem sich das Programm befindet, für das das Debugging durchgeführt werden soll (oder drücken Sie die ESC-Taste, um das Debuggen des Containers zu überspringen).

  6. Um zu Zeile 9 einen Haltepunkt hinzuzufügen, öffnen Sie src/app.js und klicken Sie dann auf den Rand des Editors.

    Rot ausgefüllte Kreise kennzeichnen aktive Haltepunkte, während graue leere Kreise deaktivierte Haltepunkte angeben. Für eine genauere Steuerung der Haltepunkte können Sie den Abschnitt "Breakpoints" in der Fehlerbehebungsansicht von VS Code verwenden.

    Abschnitt "Breakpoints" im linken Bereich der Fehlerbehebungsansicht, über die Haltepunkte hinzugefügt, entfernt und deaktiviert werden können

    Wenn Sie eine neue Anfrage an Ihre Anwendung senden, wird der Debugger am ersten aktiven Haltepunkt angehalten.

    Beachten Sie im folgenden Beispiel unter Lokal im Abschnitt Variablen, dass der Wert von res._contentLength; für Hello, world! 13 ist.

    Eine Anwendung, die am Haltepunkt angehalten wurde und deren Variablen und Aufrufstapel mit Werten im entsprechenden Bereich gefüllt wurden

  7. Bearbeiten Sie den in Zeile 8 an Hello, goodbye! gesendeten String und starten Sie dann die Aktion Debuggen in Kubernetes neu.

    Beachten Sie den aktualisierten Wert von res._contentLength, nachdem die Anwendung neu erstellt und neu bereitgestellt wurde.

    Anwendung an Haltepunkt angehalten mit aktualisierten Werten

Nachdem Ihre Debugging-Sitzung gestartet wurde, wird im Bereich Entwicklungssitzungen die strukturierte Logging-Ansicht angezeigt. Wenn eine Aufgabe beginnt, wird sie mit einem rotierenden Halbkreis progress_activity angezeigt.

Wenn eine Aufgabe erfolgreich ist, wird neben dem Schritt ein Häkchen check_circle angezeigt.

Klicken Sie auf den Schritt im Bereich Entwicklungssitzung, um die Details eines Schritts anzuzeigen. Im Ausgabebereich wird der Schritt in der Logging-Ausgabe angezeigt.

Terminal im Container öffnen

So öffnen Sie ein Terminal in Ihrem Container:

  1. Klicken Sie auf Cloud Code und maximieren Sie den Bereich Kubernetes.

  2. Maximieren Sie die folgenden Abschnitte:

    • Abschnitt für Ihren bevorzugten Cluster
    • Klicken Sie auf den Bereich Namespaces und dann auf den Bereich des gewünschten Namespace.
    • Der Bereich Pods und dann der Bereich des gewünschten Pods
    • Der Bereich Container

      Cloud Code-Pods

  3. Klicken Sie mit der rechten Maustaste auf den Container, in dem Sie ein Terminal öffnen möchten, und klicken Sie dann auf Terminal abrufen.

    Dadurch wird ein Terminal gestartet. Sie haben jetzt Zugriff auf eine Shell im ausgeführten Container.

Bereinigen

Nachdem Sie Ihre Anwendung beendet haben, werden alle während der Ausführung bereitgestellten Kubernetes-Ressourcen automatisch gelöscht.

Damit Ihr Konto nicht für andere in dieser Kurzanleitung verwendete Ressourcen belastet wird, müssen Sie das Projekt oder den von Ihnen erstellten Cluster löschen, wenn Sie das Projekt wiederverwenden möchten.

So löschen Sie den Cluster:

  1. Klicken Sie auf Cloud Code und maximieren Sie dann den Kubernetes Explorer.
  2. Bewegen Sie den Mauszeiger auf den Clusternamen und klicken Sie dann auf open_in_new In der Google Cloud Konsole öffnen.
  3. Klicken Sie auf Löschen und dann noch einmal auf Löschen.

So löschen Sie Ihr Projekt und die zugehörigen Ressourcen, einschließlich der Cluster:

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Nächste Schritte