Premiers pas avec Cloud Code pour 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 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: New Application (Cloud Code : Nouvelle application).
  2. Sélectionnez Kubernetes application (Application Kubernetes) comme type d'exemple.
  3. Parmi les options disponibles, sélectionnez un exemple en fonction du langage que vous souhaitez utiliser : NodeJS, Go, Python ou 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 connaître la procédure à suivre pour utiliser un projet existant, consultez la section 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 votre fichier 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 section 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 visionner en direct, 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, lorsque vous y êtes invité, choisissez un registre d'images vers lequel transférer les images. 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 contient au moins un dépôt Artifact Registry, vous pouvez 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 d'être 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.

Voir les journaux

En plus d'afficher les journaux des pods en cours d'exécution en tant que flux en direct dans la sortie du terminal à mesure que vous développez et exécutez votre application, vous pouvez consulter 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 pour lequel vous souhaitez consulter 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 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 Pause (F6), puis sur Restart (Redémarrer) (Ctrl/Cmd + Shift + F5) pour reconstruire 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'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 et les charges de travail (déploiements, ensembles d'instances répliquées, pods et conteneurs), de services et d'entrées les configurations (secrets et mappages de configuration, par exemple) et le stockage (volumes, par exemple). 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.

Étape suivante

Obtenir de l'aide

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