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 exemple de code des modèles pour vous lancer rapidement. Pour créer une application Kubernetes à l'aide de 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 échantillon basé sur le langage que vous souhaitez utiliser parmi les options: NodeJS, Go, Python et 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, qui Cloud Code permet de créer, déployer et déboguer Kubernetes applications

Utiliser votre propre application

Pour savoir comment utiliser un projet existant, consultez 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 à Exécuter > Ouvrez "Configurations", puis modifier ou ajouter 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 votre skaffold.yaml.

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

Pour en savoir plus sur la personnalisation de votre configuration de lancement, consultez la Kubernetes dans Cloud Code

Exécuter votre application

Une fois votre application configurée, vous pouvez l'exécuter sur un cluster Kubernetes et le voir en direct, en tirant parti 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 une image lorsque vous y êtes invité vers lequel transférer les images. Si vous utilisez Container Registry, vous pouvez accédez à un registre existant ou spécifiez le nom du registre à créer. Si votre projet a API Artifact Registry activée et au minimum un dépôt Artifact Registry, peut accéder à un dépôt Artifact Registry existant et le sélectionner.

    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 sont correctement authentifiées ; 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.

Voir les journaux

En plus de voir les journaux des pods en cours d'exécution sous forme de flux en direct dans le terminal lorsque vous développez et exécutez votre application, vous pouvez consulter les journaux 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 Affichez 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 Apportez des modifications à votre application, puis recompilez-la et redéployez-la:

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

  2. Dans la barre d'outils de débogage, cliquez sur Mettre en veille (F6), puis sur Redémarrez (Ctrl/Cmd + Shift + F5) pour recréer et redéployer le 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és du cluster. Vous pouvez modifier ce comportement à l'aide de l'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 et les charges de travail (déploiements, ensembles d'instances répliquées, pods et conteneurs), de services et d'entrées de configuration (secrets et mappages de configuration, par exemple) et de stockage (volumes, par exemple). La section Kubernetes vous permet d'effectuer des actions uniques sur certaines de ces ressources.

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

Étape suivante

Obtenir de l'aide

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