Kubernetes-Anwendung mit Remote-Entwicklung entwickeln

Auf dieser Seite wird erläutert, wie Sie Cloud Code für die Remote-Entwicklung von VS Code verwenden, um Ihre Codebasis in einem Remote-Container zu öffnen, in dem Ihre Anwendung erstellt, debuggen und bereitgestellt wird. Dadurch wird eine Anwendung erstellt, die unabhängig vom Betriebssystem Ihres Entwicklungscomputers portierbar ist.

Vorbereitung

Installieren Sie zusätzlich zu der unter Cloud Code-Erweiterung installieren beschriebenen Einrichtung das VS Code-Erweiterungspaket Remote Development.

Einrichtung

  1. Klicken Sie zum Einrichten eines .devcontainer-Ordners mit einem Dockerfile und einer Devcontainer.json-Datei, die für die von Ihnen verwendete Sprache konfiguriert sind, auf Remote-Fenster öffnen Remote-Fenster öffnen > Entwickler-Containerkonfigurationsdateien hinzufügen. Alternativ können Sie die Schritte unter Remote-Entwicklung in Containern ausführen.

    Nachdem Sie der Anleitung gefolgt sind, enthält Ihr Arbeitsbereich Folgendes:

    • Dockerfile: definiert ein Container-Image, das die Entwicklertools enthält, die in einem Remote-Entwicklungscontainer installiert werden sollen.

    • Devcontainer.json: Weist die VS Code Remote Tools-Erweiterung an, den Remote-Entwicklungscontainer auszuführen.

  2. Öffnen Sie das Dockerfile und fügen Sie eine Anleitung zum Installieren der Google Cloud CLI und von Skaffold hinzu. Aktuelle Befehle finden Sie in den Installationsanleitungen.

  3. Fügen Sie im Dockerfile vor dem Befehl >> $HOME/.bashrc eine Anleitung zum Kopieren der gcloud CLI und der Skaffold-Konfigurationen des lokalen Hosts hinzu. Alternativ können Sie die Befehle neu schreiben, um die gcloud CLI und Skaffold zu installieren.

    # Copy localhost's ~/.kube/config file into the container and swap out localhost
    # for host.docker.internal whenever a new shell starts to keep them in sync.
    RUN echo '\n\
    if [ "$SYNC_LOCALHOST_KUBECONFIG" == "true" ]; then\n\
      mkdir -p $HOME/.kube\n\
      cp -r $HOME/.kube-localhost/* $HOME/.kube\n\
      sed -i -e "s/localhost/host.docker.internal/g" $HOME/.kube/config\n\
    \n\
    fi' \
    if [ "$SYNC_LOCALHOST_GCLOUD" == "true" ]; then\n\
     mkdir -p $HOME/.config/gcloud\n\
     cp -r $HOME/.gcloud-localhost/* $HOME/.config/gcloud\n\
    \n\
    fi' \
    
  4. Öffnen Sie die Datei Devcontainer.json und fügen Sie die folgenden Ausführungsargumente hinzu, um die gcloud CLI und Skaffold-Konfigurationen von localhost zu kopieren:

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Wenn alle Dateien den erforderlichen Inhalt haben, klicken Sie auf Remote-Fenster öffnen.

Beispiel für eine devcontainer.json-Datei

Die Datei devcontainer.json teilt der Remote Container-Erweiterung mit, welche Ports im Container freigegeben werden sollen, wie Laufwerke bereitgestellt und welche Erweiterungen im Remote-Container installiert werden sollen. Die folgende Beispieldatei devcontainer.json gibt an, dass die Remote Container-Erweiterung die Cloud Code for VS Code-Erweiterung installieren soll:

   "runArgs": [
         "-v","/var/run/docker.sock:/var/run/docker.sock",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.kube,target=/root/.kube-localhost",
         "--mount", "type=bind,source=${env:HOME}${env:USERPROFILE}/.config/gcloud,target=/root/.gcloud-localhost",
         "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
         "-e", "SYNC_LOCALHOST_GCLOUD=true",
         "--cap-add=SYS_PTRACE", "--security-opt", "seccomp=unconfined"
      ]

Nächste Schritte

Support anfragen

Wenn Sie uns Feedback geben möchten, können Sie Probleme auf GitHub melden oder eine Frage in Stack Overflow stellen.