Kubernetes-Anwendung mit Remote-Entwicklung entwickeln

Auf dieser Seite wird beschrieben, wie Sie Cloud Code for VS Code für die Remote-Entwicklung verwenden, d. h. wie Sie Ihre Codebasis in einem Remote-Container öffnen, in dem Ihre Anwendung erstellt, debuggt und bereitgestellt wird. Dadurch wird eine portable Anwendung erstellt, unabhängig vom Betriebssystem Ihres Entwicklungsrechners.

Vorbereitung

Zusätzlich zur unter Cloud Code-Erweiterung installieren beschriebenen Einrichtung müssen Sie das VS Code-Erweiterungspaket Remote Development installieren.

Einrichtung

  1. Wenn Sie einen .devcontainer-Ordner mit einem Dockerfile und einer Devcontainer.json-Datei für die von Ihnen verwendete Sprache einrichten möchten, klicken Sie auf Remote-Fenster öffnen Remote-Fenster öffnen > Konfigurationsdateien für Entwicklungscontainer hinzufügen. Alternativ können Sie der Anleitung unter Remote-Entwicklung in Containern folgen.

    Nachdem Sie den Anweisungen gefolgt sind, enthält Ihr Arbeitsbereich Folgendes:

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

    • Devcontainer.json: Gibt an, wie die VS Code-Erweiterung „Remote-Tools“ den Remote-Entwicklungscontainer ausführen soll.

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

  3. Fügen Sie in der Dockerfile eine Anleitung zum Kopieren der gcloud CLI- und Skaffold-Konfigurationen von localhost vor dem Befehl >> $HOME/.bashrc hinzu. Alternativ können Sie die Befehle zum Installieren der gcloud CLI und Skaffold neu schreiben.

    # 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 die Skaffold-Konfigurationen von localhost zu kopieren:

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Nachdem Sie die erforderlichen Inhalte in die Dateien kopiert haben, klicken Sie auf Remote-Fenster öffnen.

Beispiel für eine devcontainer.json-Datei

Die Datei devcontainer.json gibt der Remote Container-Erweiterung an, welche Ports im Container freigegeben werden sollen, wie Laufwerke bereitgestellt werden und welche Erweiterungen im Remote-Container installiert werden sollen. In der folgenden Beispieldatei devcontainer.json wird angegeben, dass die Remote-Container-Erweiterung die Cloud Code-Erweiterung für VS Code 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.