Kubernetes-Anwendung mit Remote-Entwicklung entwickeln

Auf dieser Seite wird beschrieben, wie Sie Remote Development von Cloud Code for VS Code verwenden, um Ihren Code in einem Remote-Container zu öffnen, in dem Ihre Anwendung erstellt, debuggt und bereitgestellt wird. Dadurch wird eine Anwendung erstellt, die unabhängig vom Betriebssystem Ihres Entwicklungscomputers portierbar ist.

Vorbereitung

Zusätzlich zur Einrichtung, die unter Cloud Code-Erweiterung installieren beschrieben wird, 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 Fenster auf einem Remotecomputer öffnen Remote-Fenster öffnen > Dev-Container-Konfigurationsdateien hinzufügen. Alternativ können Sie die Schritte unter Remote-Entwicklung in Containern ausführen.

    Nachdem Sie den Anweisungen 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, wie der Remote-Entwicklungscontainer ausgeführt werden soll.

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

  3. Fügen Sie dem Dockerfile Anweisungen hinzu, um die gcloud CLI- und Skaffold-Konfigurationen von localhost vor dem Befehl >> $HOME/.bashrc zu kopieren. Alternativ können Sie die Befehle zum Installieren der gcloud CLI und von 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 Skaffold-Konfigurationen von localhost zu kopieren:

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Wenn Ihre Dateien die erforderlichen Inhalte enthalten, klicken Sie auf  Remote-Fenster öffnen.

Beispieldatei „devcontainer.json“

Die Datei devcontainer.json teilt der Remote Container-Erweiterung mit, 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 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 erhalten

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