Desarrollar una aplicación de Kubernetes con desarrollo remoto

En esta página se explica cómo usar la función Desarrollo remoto de Cloud Code para VS Code, es decir, cómo abrir tu base de código en un contenedor remoto donde se compila, depura y despliega tu aplicación. De esta forma, se crea una aplicación portátil, independientemente del sistema operativo de tu máquina de desarrollo.

Requisitos previos

Además de la configuración descrita en Instalar la extensión de Cloud Code, instala el paquete de extensiones de VS Code Desarrollo remoto.

Configuración

  1. Para configurar una carpeta .devcontainer con un archivo Dockerfile y un archivo Devcontainer.json configurado para el idioma que estés usando, haz clic en Abrir una ventana remota Abrir una ventana remota > Añadir archivos de configuración de contenedor de desarrollo. También puedes seguir los pasos que se indican en Desarrollo remoto en contenedores.

    Después de seguir las indicaciones, tu espacio de trabajo incluirá lo siguiente:

    • Dockerfile: define una imagen de contenedor que contiene las herramientas de desarrollo que se van a instalar en un contenedor de desarrollo remoto.

    • Devcontainer.json: indica a la extensión Herramientas remotas de VS Code cómo ejecutar el contenedor de desarrollo remoto.

  2. Abre el archivo Dockerfile y añade instrucciones para instalar Google Cloud CLI y Skaffold. Para ver los comandos actualizados, consulta las guías de instalación.

  3. En el archivo Dockerfile, añade instrucciones para copiar las configuraciones de la CLI de gcloud y de Skaffold de localhost antes del comando >> $HOME/.bashrc. También puedes reescribir los comandos para instalar la CLI de gcloud y 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. Abre el archivo Devcontainer.json y añade los siguientes argumentos de ejecución para copiar la CLI de gcloud y las configuraciones de Skaffold desde localhost:

      "-e", "SYNC_LOCALHOST_KUBECONFIG=true",
      "-e", "SYNC_LOCALHOST_GCLOUD=true",
    
  5. Una vez que los archivos tengan el contenido necesario, haz clic en Abrir una ventana remota.

Archivo devcontainer.json de ejemplo

El archivo devcontainer.json indica a la extensión Remote Container qué puertos se deben exponer en el contenedor, cómo montar unidades y qué extensiones se deben instalar en el contenedor remoto. El siguiente archivo devcontainer.json de ejemplo especifica que la extensión Remote Container debe instalar la extensión Cloud Code para 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"
      ]

Siguientes pasos

Obtener asistencia

Para enviar comentarios o informar de problemas, visita GitHub o haz una pregunta en Stack Overflow.