Premiers pas avec Cloud Code for VS Code pour Kubernetes

Cloud Code vous permet de créer une application Kubernetes basée sur un exemple ou sur un projet existant.

Créer une application à partir d'un modèle

Cloud Code est fourni avec un ensemble d'exemples de code pour vous aider à démarrer rapidement. Pour créer une application Kubernetes à l'aide d'un exemple existant, procédez comme suit:

  1. Lancez la palette de commandes (appuyez sur Ctrl/Cmd+Shift+P ou cliquez sur Affichage > Palette de commandes), puis exécutez Cloud Code: Nouvelle application.
  2. Sélectionnez Kubernetes application (Application Kubernetes) comme type d'exemple.
  3. Sélectionnez un exemple basé sur le langage que vous souhaitez utiliser parmi les options disponibles: NodeJS, Go, Python, Java.
  4. Choisissez l'emplacement de votre choix pour l'application sur votre ordinateur local, puis cliquez sur Create new application (Créer une application) pour enregistrer.

    Cloud Code clone l'exemple que vous avez choisi et ouvre votre nouveau projet pour l'utiliser.

Exemple de structure d'application

Tous les exemples d'application ont une structure quasiment identique, quel que soit le langage. Cette structure n'est pas la seule possible, mais elle est recommandée lors du démarrage.

Par exemple, la structure de l'application Node.js Guestbook ressemble à ceci :

.
|---- .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

En observant de plus près cet exemple d'application de livre d'or Node.js Kubernetes, voici quelques fichiers clés et leurs utilisations :

  • .vscode
    • extensions.json : invitation à télécharger les extensions associées à l'ouverture du projet.
    • launch.json : configuration de lancement (de type cloudcode.kubernetes) pour exécuter ou déboguer l'application Kubernetes.
    • tasks.json : informations de configuration des tâches Visual Studio Code.
  • kubernetes-manifests
    • guestbook-backend.deployment.yaml : spécification de pod pour les nœuds de backend.
    • guestbook-frontend.deployment.yaml : spécification de pod pour les nœuds de frontend.
    • mongo.deployment.yaml : spécification de pod pour la base de données.
  • src
    • (backend|frontend)/app.js : code Node.js contenant la logique de serveur Web.
    • (backend|frontend)/Dockerfile : permet de compiler l'image de conteneur pour notre programme.
  • skaffold.yaml: fichier de configuration de Skaffold, utilisé par Cloud Code pour créer, déployer et déboguer des applications Kubernetes

Utiliser votre propre application

Pour connaître les étapes à suivre pour utiliser un projet existant, consultez la page Utiliser Cloud Code avec une application Kubernetes existante.

Définir votre contexte Kubernetes

Avant d'exécuter votre application, assurez-vous que vous êtes prêt à la déployer dans le contexte Kubernetes de votre choix. Vous pouvez le spécifier dans votre configuration.

Configuration

Lorsque vous utilisez la configuration d'exécution Cloud Code: Développer sur Kubernetes, vous pouvez personnaliser votre déploiement en configurant les paramètres disponibles.

Pour ajouter ou modifier des configurations, accédez à Run > Open Configurations (Exécuter > Ouvrir les configurations), puis modifiez ou ajoutez des configurations.

Paramètres de compilation

Cloud Code est compatible avec les types d'artefacts Docker, Jib et Buildpacks. Pour savoir comment définir le compilateur souhaité et les paramètres associés, consultez le guide Configurer les préférences de compilation d'images de conteneurs.

Personnaliser votre configuration de lancement

Pour configurer l'exécution de votre application, vous pouvez personnaliser le fichier skaffold.yaml.

Vous pouvez également configurer le lancement en modifiant la configuration cloudcode.kubernetes dans le fichier .vscode/launch.json.

Pour en savoir plus sur la personnalisation de votre configuration de lancement, consultez le document Kubernetes in Cloud Code.

Exécuter votre application

Une fois qu'une application est configurée, vous pouvez l'exécuter sur un cluster Kubernetes et l'afficher en ligne à l'aide de skaffold dev. Vous pouvez exécuter votre application sur un cluster local (par exemple, Minikube ou Docker Desktop), Google Kubernetes Engine ou tout autre fournisseur cloud.

  1. Ouvrez la palette de commandes (Ctrl/Cmd+Shift+P), puis exécutez la commande Cloud Code : Run on Kubernetes (Cloud Code : Exécuter sur Kubernetes).
  2. Confirmez que vous souhaitez utiliser le contexte Kubernetes actuel pour exécuter l'application (ou basculez vers le contexte de votre choix). Pour en savoir plus sur la définition d'un contexte Kubernetes, consultez la section Définir la configuration.
  3. Si vous avez choisi un cluster distant comme contexte, choisissez un registre d'images vers lequel transférer les images lorsque vous y êtes invité. Si vous utilisez Container Registry, vous pouvez accéder à un registre existant ou spécifier le nom d'un registre à créer. Si l'API Artifact Registry est activée dans votre projet et qu'il comporte au moins un dépôt Artifact Registry, vous pouvez parcourir et sélectionner un dépôt Artifact Registry existant.

    Les exemples suivants montrent comment spécifier l'emplacement de stockage des images de conteneurs pour certains registres courants :

    Artifact Registry {region}-docker.pkg.dev/{project_id}/{repo-name}
    Container Registry, gcr.io/{project_id}
    Docker Hub docker.io/{account}
    Assurez-vous que vous êtes correctement authentifié si vous utilisez un dépôt Docker Hub privé.
    AWS Container Repository (ECR) {aws_account_id}.dkr.ecr.{region}.amazonaws.com/{my-app}
    Azure Container Registry (ACR) {my_acr_name}.azurecr.io/{my-app}

    Cloud Code concatène ce registre d'images avec le nom d'image spécifié dans les fichiers manifeste Kubernetes afin de générer le nom final du dépôt d'images.

    Pour en savoir plus, consultez le guide de gestion des registres d'images.

    Ce choix est stocké dans votre configuration de lancement cloudcode.kubernetes (disponible dans .vscode/launch.json).

    Cloud Code crée ensuite vos conteneurs, les transfère dans le registre, applique les configurations Kubernetes au cluster et attend le déploiement.

Afficher les journaux

Outre l'affichage des journaux des pods en cours d'exécution sous forme de flux en direct dans la sortie du terminal lorsque vous développez et exécutez votre application, vous pouvez afficher les journaux d'un pod spécifique en accédant à la section Kubernetes.

Pour afficher les journaux d'un pod spécifique, procédez comme suit :

  1. Dans la section Kubernetes, développez Déploiements.
  2. Effectuez un clic droit sur le pod dont vous souhaitez afficher les journaux, puis cliquez sur Afficher les journaux.

    La visionneuse de journaux s'ouvre.

Apporter des modifications, recréer et nettoyer

Si vous avez défini le mode de surveillance sur false dans votre configuration de lancement et que vous souhaitez modifier votre application, puis la recompiler et la redéployer:

  1. Apportez les modifications souhaitées, puis enregistrez-les.

  2. Dans la barre d'outils de débogage, cliquez sur Pause (Mettre en pause) (F6), puis sur Restart (Redémarrer) (Ctrl/Cmd + Shift + F5) pour recompiler et redéployer l'application.

  3. Pour arrêter d'exécuter l'application, cliquez sur Stop (Arrêter) dans la barre d'outils de débogage.

Une fois l'application arrêtée, toutes les ressources Kubernetes déployées sont supprimées du cluster. Vous pouvez modifier ce comportement à l'aide de l'option cleanUp dans votre configuration de lancement.

Stocker les secrets

Si votre code inclut des données potentiellement sensibles telles que des clés API, des mots de passe et des certificats, nous vous recommandons de les stocker en tant que secrets. Avec Cloud Code, vous pouvez stocker ces secrets en toute sécurité dans Secret Manager et les récupérer de manière automatisée lorsque vous en avez besoin.

Pour plus d'informations sur la création et la gestion des secrets avec Cloud Code, consultez le guide de Secret Manager.

Afficher les détails de la ressource

La section "Kubernetes" affiche les clusters, les espaces de noms, les nœuds, les charges de travail (telles que les déploiements, les ensembles d'instances répliquées, les pods et les conteneurs), les services et entrées, les configurations (telles que les secrets et les mappages de configuration) et le stockage (tels que les volumes). La section Kubernetes vous permet d'effectuer des actions uniques sur certaines de ces ressources.

Pour en savoir plus sur l'affichage des détails des ressources, consultez la présentation de Kubernetes.

Étapes suivantes

Assistance

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