Développer une application Kubernetes avec le développement à distance

Cette page explique comment utiliser le développement à distance de Cloud Code pour VS Code, c'est-à-dire comment ouvrir votre code dans un conteneur distant où votre application est compilée, déboguée et déployée. Cela crée une application portable, quel que soit l'OS de votre ordinateur de développement.

Prérequis

En plus de la configuration décrite dans Installer l'extension Cloud Code, installez le pack d'extensions VS Code Remote Development (Développement à distance).

Configuration

  1. Pour configurer un dossier .devcontainer avec un fichier Dockerfile et un fichier Devcontainer.json configuré pour la langue que vous utilisez, cliquez sur Ouvrir une fenêtre à distance Ouvrir une fenêtre distante > Ajouter des fichiers de configuration de conteneur de développement. Vous pouvez également suivre les étapes décrites dans Développement à distance dans des conteneurs.

    Une fois que vous avez suivi les instructions, votre espace de travail inclut les éléments suivants :

    • Dockerfile : définit une image de conteneur contenant les outils de développement à installer dans un conteneur de développement à distance.

    • Devcontainer.json : indique à l'extension VS Code Remote Tools comment exécuter le conteneur de développement à distance.

  2. Ouvrez le fichier Dockerfile et ajoutez des instructions pour installer la Google Cloud CLI et Skaffold. Pour obtenir les commandes les plus récentes, consultez les guides d'installation.

  3. Dans le fichier Dockerfile, ajoutez des instructions pour copier les configurations gcloud CLI et Skaffold de localhost avant la commande >> $HOME/.bashrc. Vous pouvez également réécrire les commandes pour installer gcloud CLI et Skaffold.

    # 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. Ouvrez le fichier Devcontainer.json et ajoutez les arguments d'exécution suivants pour copier les configurations de gcloud CLI et de Skaffold depuis localhost :

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Une fois que vos fichiers contiennent les éléments requis, cliquez sur Ouvrir une fenêtre distante.

Exemple de fichier devcontainer.json

Le fichier devcontainer.json indique à l'extension Remote Containers les ports à exposer dans le conteneur, la manière de monter les lecteurs et les extensions à installer dans le conteneur distant. L'exemple de fichier devcontainer.json suivant spécifie que l'extension Remote Containers doit installer l'extension Cloud Code pour VS Code :

   "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"
      ]

Étapes suivantes

Obtenir de l'aide

Pour envoyer vos commentaires, signalez tout problème sur GitHub ou posez une question sur Stack Overflow.