Empezar a usar Cloud Code para VS Code en Kubernetes

Cloud Code te permite crear una aplicación de Kubernetes basada en un ejemplo o a partir de un proyecto.

Crear una aplicación a partir de una plantilla

Cloud Code incluye una colección de plantillas de ejemplos de código para que puedas empezar rápidamente. Para crear una aplicación de Kubernetes con un ejemplo, sigue estos pasos:

  1. Abre la paleta de comandos (pulsa Ctrl/Cmd+Shift+P o haz clic en Ver > Paleta de comandos) y, a continuación, ejecuta Cloud Code: New Application (Cloud Code: Nueva aplicación).
  2. Selecciona Aplicación de Kubernetes como tipo de ejemplo.
  3. Selecciona un ejemplo en función del lenguaje que quieras usar entre las opciones disponibles: NodeJS, Go, Python o Java.
  4. Elige la ubicación que prefieras para la aplicación en tu equipo local y, a continuación, haz clic en Crear aplicación para guardar los cambios.

    Cloud Code clona el ejemplo que has elegido y abre el nuevo proyecto para que lo uses.

Estructura de aplicación de ejemplo

Todas las aplicaciones de ejemplo de idiomas tienen prácticamente la misma estructura. Esta no es la única estructura admitida, pero es la que recomendamos al empezar.

Por ejemplo, la estructura de la aplicación Guestbook de Node.js es la siguiente:

.
|---- .vscode
|      ---- launch.json
|---- kubernetes-manifests
|     |---- guestbook-backend.deployment.yaml
|     |---- guestbook-backend.service.yaml
|     |---- guestbook-frontend.deployment.yaml
|     |---- guestbook-frontend.service.yaml
|     |---- mongo.deployment.yaml
|     ---- mongo.service.yaml
|---- src
|     |---- backend
|     |     |---- Dockerfile
|     |     |---- index.js
|     |     |---- app.js
|     |     ---- package.json
|     |---- frontend
|           |---- Dockerfile
|           |---- index.js
|     |     |---- app.js
|           ---- package.json
---- skaffold.yaml

Si analizamos más de cerca esta aplicación de ejemplo de Node.js de libro de visitas de Kubernetes, estos son algunos archivos clave y sus usos:

  • .vscode
    • extensions.json: petición para descargar extensiones relacionadas al abrir este proyecto
    • launch.json: configuración de inicio (de tipo cloudcode.kubernetes) para ejecutar o depurar la aplicación de Kubernetes
    • tasks.json: información de configuración de las tareas de Visual Studio Code
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml: especificación de pod para los nodos de backend.
    • guestbook-frontend.deployment.yaml: especificación de pod para los nodos de frontend
    • mongo.deployment.yaml: especificación de pod de la base de datos
  • src
    • (backend|frontend)/app.js: código de Node.js con la lógica del servidor web
    • (backend|frontend)/Dockerfile: se usa para crear la imagen del contenedor de nuestro programa.
  • skaffold.yaml: archivo de configuración de Skaffold, que Cloud Code usa para compilar, desplegar y depurar aplicaciones de Kubernetes

Usar tu propia aplicación

Para ver los pasos que debes seguir para usar un proyecto, consulta Usar Cloud Code con una aplicación de Kubernetes.

Definir el contexto de Kubernetes

Antes de ejecutar tu aplicación, asegúrate de que está configurada para desplegarla en el contexto de Kubernetes que prefieras. Puedes especificarlo en tu configuración.

Configuración

Cuando usas la configuración de ejecución Cloud Code: Develop on Kubernetes (Cloud Code: desarrollar en Kubernetes), puedes personalizar tu implementación configurando los ajustes disponibles.

Para añadir o editar configuraciones, ve a Ejecutar > Abrir configuraciones y, a continuación, edita o añade configuraciones.

Configuración de compilación

Cloud Code admite los tipos de artefactos Docker, Jib y Buildpacks. Consulta la guía para configurar las preferencias de compilación de imágenes de contenedor para saber cómo definir el compilador que prefieras y sus ajustes correspondientes.

Personalizar la configuración de lanzamiento

Para configurar cómo se ejecuta tu aplicación, puedes personalizar el archivo skaffold.yaml.

También puedes configurar el lanzamiento editando la configuración cloudcode.kubernetes en el archivo .vscode/launch.json.

Para obtener más información sobre cómo personalizar la configuración de lanzamiento, consulta Kubernetes en Cloud Code.

Ejecutar la aplicación

Una vez que hayas configurado una aplicación, podrás ejecutarla en un clúster de Kubernetes y verla en directo con skaffold dev. Puedes ejecutar tu aplicación en un clúster local (como minikube o Docker Desktop), Google Kubernetes Engine o cualquier otro proveedor de servicios en la nube.

  1. Abre la paleta de comandos (pulsa Ctrl/Cmd + Shift + P) y, a continuación, ejecuta el comando Cloud Code: Run on Kubernetes (Cloud Code: Ejecutar en Kubernetes).
  2. Confirma si quieres usar el contexto de Kubernetes actual para ejecutar la aplicación (o cambia a otro). Para obtener más información sobre cómo configurar un contexto de Kubernetes, consulta Configuración.
  3. Si has elegido un clúster remoto como contexto, cuando se te pida, elige un registro de imágenes al que enviar las imágenes. Si tu proyecto tiene la API de Artifact Registry habilitada y al menos un repositorio de Artifact Registry, puedes buscar y seleccionar un repositorio de Artifact Registry.

    En los siguientes ejemplos se muestra cómo especificar dónde se almacenan las imágenes de contenedor en algunos registros habituales:

    Artifact Registry REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME
    Docker Hub docker.io/ACCOUNT
    Asegúrate de que te has autenticado correctamente si usas un repositorio privado de Docker Hub.
    Repositorio de contenedores de AWS (ECR) AWS_ACCOUNT_ID.dkr.ecr.REGION.amazonaws.com/APP
    Azure Container Registry (ACR) ACR_NAME.azurecr.io/APP

    Cloud Code concatena este registro de imágenes con el nombre de la imagen especificado en los manifiestos de Kubernetes para generar el nombre del repositorio de imágenes final.

    Para obtener más información, consulta la guía de gestión de registros de imágenes.

    Esta opción se almacena en la cloudcode.kubernetesconfiguración de inicio (que se encuentra en .vscode/launch.json).

    Cloud Code compila tus contenedores, los envía al registro, aplica las configuraciones de Kubernetes al clúster y espera a que se implementen.

Ver registros

Además de ver los registros de los pods en ejecución como una emisión en directo en la salida del terminal mientras desarrollas y ejecutas tu aplicación, puedes ver los registros de un pod específico en la sección Kubernetes.

Para ver los registros de un pod específico, sigue estos pasos:

  1. En la sección Kubernetes, despliega Deployments (Despliegues).
  2. Haz clic con el botón derecho en el pod del que quieras ver los registros y, a continuación, haz clic en Ver registros.

    Se abre el visualizador de registros.

Hacer cambios, recompilar y limpiar

Si has definido el modo reloj como false en tu configuración de lanzamiento y quieres hacer cambios en tu aplicación, y luego volver a compilarla y redistribuirla, sigue estos pasos:

  1. Haz los cambios que quieras y guárdalos.

  2. En la barra de herramientas de depuración, haz clic en Pausar (F6) y, a continuación, en Reiniciar (Ctrl/Cmd + Shift + F5) para volver a compilar y desplegar la aplicación.

  3. Para detener la ejecución de la aplicación, en la barra de herramientas de depuración, haz clic en Detener.

Cuando detengas la aplicación, todos los recursos de Kubernetes implementados se eliminarán del clúster. Puedes cambiar este comportamiento con la marca cleanUp en la configuración de inicio.

Almacenar secretos

Si tu código incluye datos potencialmente sensibles, como claves de API, contraseñas y certificados, te recomendamos que los almacenes como secretos. Con Cloud Code, puedes almacenar estos secretos de forma segura en Secret Manager y obtenerlos de forma programática cuando los necesites.

Para obtener información detallada sobre cómo crear y gestionar secretos con Cloud Code, consulta la guía de Secret Manager.

Ver detalles del recurso

En la sección de Kubernetes se muestran clústeres, espacios de nombres, nodos, cargas de trabajo (como despliegues, conjuntos de réplicas, pods y contenedores), servicios y entradas, configuraciones (como secretos y mapas de configuración) y almacenamiento (como volúmenes). En la sección Kubernetes, puedes realizar acciones únicas en algunos de estos recursos.

Consulta la descripción general de Kubernetes para obtener más información sobre cómo ver los detalles de los recursos.

Siguientes pasos

Obtener asistencia

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