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 de modèles 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 sur votre ordinateur local, puis cliquez sur Create new application (Créer une application) pour l'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 la procédure à 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: Develop on 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 le fonctionnement de votre application, vous pouvez personnaliser votre fichier skaffold.yaml.

Vous pouvez également configurer votre 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 la documentation sur Kubernetes dans Cloud Code.

Exécuter votre application

Une fois que vous avez configuré une application, vous pouvez l'exécuter sur un cluster Kubernetes et l'afficher en direct à 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 et au moins un dépôt Artifact Registry pour votre projet, 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}
    Vérifiez 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

En plus de pouvoir consulter les 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 la section Déploiements.
  2. Effectuez un clic droit sur le pod dont vous souhaitez consulter les journaux, puis cliquez sur Afficher les journaux.

    La visionneuse de journaux s'ouvre.

Modifier, 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 vos modifications et enregistrez-les.

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

  3. Pour arrêter l'exécution de l'application, cliquez sur 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'indicateur cleanUp dans votre configuration de lancement.

Stocker des 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 (déploiements, ensembles d'instances répliquées, pods et conteneurs), les services et entrées, les configurations (secrets et mappages de configuration, par exemple) et le stockage (volumes). La section Kubernetes vous permet d'effectuer des actions uniques sur certaines de ces ressources.

Pour savoir comment afficher les 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.