Exécuter une application Kubernetes

Cloud Code vous permet d'exécuter facilement votre application sur un cluster Kubernetes et de 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.

Exécuter l'application

  • Choisissez la commande Run on Kubernetes (Exécuter sur Kubernetes) à l'aide de la barre d'état Cloud Code.
  • Si votre application ne dispose pas de la configuration skaffold nécessaire ou d'une configuration de lancement cloudcode.kubernetes, Cloud Code vous aidera à les configurer.
  • Confirmez si vous souhaitez utiliser le contexte Kubernetes actuel pour exécuter l'application (ou en choisir un autre).
  • Si le contexte choisi correspond à un cluster distant, vous serez invité à fournir un registre d'images dans lequel les images seront envoyées.

    Voici des exemples qui indiquent comment spécifier l'emplacement de stockage des images de conteneurs pour certains registres courants :

    Docker Hub docker.io/{account}
    Assurez-vous d'être correctement authentifié si vous utilisez un dépôt Docker Hub privé.
    Google Container Repository (GCR) gcr.io/{project_id}
    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 plus d'informations, 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.

    Exécuter l'application de livre d'or et afficher les journaux renvoyés par l'application en ligne

  • Une fois le déploiement terminé, Cloud Code transfère automatiquement tous les ports de conteneur déclarés vers votre ordinateur et affiche les URL dans la fenêtre de sortie afin que vous puissiez parcourir votre application en ligne.

    Transfert des ports et affichage des URL dans la fenêtre de sortie

  • Par défaut, Cloud Code surveille en permanence le système de fichiers pour détecter les modifications apportées à vos fichiers (fichiers de configuration ou du code Kubernetes), recrée les conteneurs et redéploie l'application dans le cluster, si bien que les modifications sont appliquées quasiment en temps réel. Vous pouvez modifier ce comportement à l'aide de l'option watch dans votre configuration de lancement.

  • Pour arrêter l'exécution de l'application, cliquez sur l'icône d'arrêt 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 la configuration de lancement.

    Arrêter d'exécuter l'application Kubernetes

Personnaliser la configuration de lancement

Pour configurer l'exécution de votre application, vous pouvez personnaliser votre contenu skaffold.yaml et spécifier les champs suivants dans la configuration cloudcode.kubernetes de votre .vscode/launch.json :

  • skaffoldConfig : spécifiez le fichier de configuration Skaffold, qui contient les paramètres de compilation et de déploiement.
  • profil : indiquez votre profil Skaffold préféré. S'il n'est pas défini, le profil par défaut est utilisé.
  • imageRegister : spécifiez le registre d'images vers lequel transférer les images.
  • watch : surveille les modifications apportées à l'espace de travail et réexécute l'application. À moins qu'il ne soit défini explicitement sur "false", "true" par défaut.
  • cleanUp : supprime les ressources Kubernetes déployées dans le cluster après l'arrêt de l'application. À moins qu'il ne soit défini explicitement sur "false", "true" par défaut.
  • portForward : transfère les ports des ressources Kubernetes exposées de votre cluster vers votre ordinateur local. À moins qu'il ne soit défini explicitement sur "false", "true" par défaut.

Assistance

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