arrow_back

Déployer des tâches sur Google Kubernetes Engine

Accédez à plus de 700 ateliers et cours

Déployer des tâches sur Google Kubernetes Engine

Atelier 1 heure universal_currency_alt 5 crédits show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Accédez à plus de 700 ateliers et cours

Présentation

Dans cet atelier, vous allez définir et exécuter des tâches standard et des tâches Cron.

Dans GKE, une tâche est un objet Contrôleur qui représente une opération finie. Les tâches gèrent une action du début à la fin, plutôt que de gérer un état souhaité en continu, comme le maintien du nombre total de pods en cours d'exécution.

Les tâches Cron réalisent des actions limitées dans le temps qui s'exécutent une ou plusieurs fois à un moment que vous déterminez, et utilisent des objets Tâche pour effectuer ces actions.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :

  • Définir, déployer et nettoyer une tâche GKE

  • Définir, déployer et nettoyer une tâche Cron GKE

Tâche 0 : Mettre en place l'atelier

Accéder à Qwiklabs

Pour chaque atelier, nous vous attribuons un nouveau projet Google Cloud et un nouvel ensemble de ressources pour une durée déterminée, sans frais.

  1. Connectez-vous à Qwiklabs dans une fenêtre de navigation privée.

  2. Vérifiez le temps imparti pour l'atelier (par exemple : 01:15:00) : vous devez pouvoir le terminer dans ce délai.
    Une fois l'atelier lancé, vous ne pouvez pas le mettre en pause. Si nécessaire, vous pourrez le redémarrer, mais vous devrez tout reprendre depuis le début.

  3. Lorsque vous êtes prêt, cliquez sur Démarrer l'atelier.

  4. Notez vos identifiants pour l'atelier (Nom d'utilisateur et Mot de passe). Ils vous serviront à vous connecter à Google Cloud Console.

  5. Cliquez sur Ouvrir la console Google.

  6. Cliquez sur Utiliser un autre compte, puis copiez-collez les identifiants de cet atelier lorsque vous y êtes invité.
    Si vous utilisez d'autres identifiants, des messages d'erreur s'afficheront ou des frais seront appliqués.

  7. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.

Une fois la connexion initiale effectuée, le tableau de bord du projet s'affiche.

Activer Google Cloud Shell

Google Cloud Shell est une machine virtuelle qui contient de nombreux outils pour les développeurs. Elle comprend un répertoire d'accueil persistant de 5 Go et s'exécute sur Google Cloud.

Google Cloud Shell vous permet d'accéder à vos ressources Google Cloud grâce à une ligne de commande.

  1. Dans la barre d'outils située en haut à droite dans la console Cloud, cliquez sur le bouton "Ouvrir Cloud Shell".

    Icône Cloud Shell encadrée

  2. Cliquez sur Continuer.

Le provisionnement et la connexion à l'environnement prennent quelques instants. Une fois connecté, vous êtes en principe authentifié et le projet est défini sur votre ID_PROJET. Par exemple :

ID de projet mis en évidence dans le terminal Cloud Shell

gcloud est l'outil de ligne de commande pour Google Cloud. Il est préinstallé sur Cloud Shell et permet la complétion par tabulation.

  • Vous pouvez lister les noms des comptes actifs à l'aide de cette commande :
gcloud auth list

Résultat :

Credentialed accounts: - @.com (active)

Exemple de résultat :

Credentialed accounts: - google1623327_student@qwiklabs.net
  • Vous pouvez lister les ID de projet à l'aide de cette commande :
gcloud config list project

Résultat :

[core] project =

Exemple de résultat :

[core] project = qwiklabs-gcp-44776a13dea667a6 Remarque : Pour consulter la documentation complète sur gcloud, accédez au guide de présentation de la gcloud CLI.

Tâche 1 : Définir et déployer un fichier manifeste de tâche

Dans GKE, une tâche est un objet Contrôleur qui représente une opération finie.

Dans cet exercice, vous allez créer une tâche, inspecter son état, puis la supprimer.

Se connecter au cluster Google Kubernetes Engine de l'atelier

  1. Dans Cloud Shell, définissez les variables d'environnement correspondant à la zone et au nom du cluster en saisissant la commande suivante.

export my_zone=us-central1-a export my_cluster=standard-cluster-1
  1. Dans Cloud Shell, configurez la saisie semi-automatique pour kubectl via la touche de tabulation.

source <(kubectl completion bash)
  1. Dans Cloud Shell, configurez l'accès de l'outil de ligne de commande kubectl à votre cluster en saisissant la commande suivante :

gcloud container clusters get-credentials $my_cluster --zone $my_zone
  1. Saisissez la commande suivante dans Cloud Shell pour cloner le dépôt dans l'environnement Cloud Shell de l'atelier.

git clone https://github.com/GoogleCloudPlatform/training-data-analyst
  1. Créez un lien symbolique qui servira de raccourci vers le répertoire de travail.

ln -s ~/training-data-analyst/courses/ak8s/v1.1 ~/ak8s
  1. Passez au répertoire qui contient les exemples de fichiers de l'atelier.

cd ~/ak8s/Jobs_CronJobs

Créer et exécuter une tâche

Vous allez créer une tâche en utilisant un exemple de fichier manifeste de déploiement appelé example-job.yaml, qui vous a été fourni. Cette tâche calcule la valeur de pi jusqu'à 2 000 décimales, puis imprime le résultat.

apiVersion: batch/v1 kind: Job metadata: # Unique key of the Job instance name: example-job spec: template: metadata: name: example-job spec: containers: - name: pi image: perl command: ["perl"] args: ["-Mbignum=bpi", "-wle", "print bpi(2000)"] # Do not restart containers after they exit restartPolicy: Never
  1. Pour créer une tâche à partir de ce fichier, exécutez la commande suivante :

kubectl apply -f example-job.yaml

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer et exécuter une tâche

  1. Pour vérifier l'état de cette tâche, exécutez la commande suivante :

kubectl describe job example-job

Vous verrez les détails de la tâche, y compris les états du pod indiquant combien de tâches sont en cours d'exécution, combien ont réussi et combien ont échoué.

... Start Time: Thu, 20 Dec 2018 14:34:09 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ...
  1. Pour afficher toutes les ressources de votre cluster associées au pod, y compris les pods créés par la tâche qui sont terminés, exécutez la commande suivante :

kubectl get pods

Le nom de votre pod peut être différent de ceux de l'exemple de sortie. Notez l'un des noms de pods.

NAME READY STATUS RESTARTS AGE example-job-sqljc 0/1 Completed 0 1m

Nettoyer et supprimer la tâche

Lorsqu'une tâche est terminée, elle arrête de créer des pods. L'objet de l'API de la tâche n'est pas supprimé lorsqu'il est terminé, ce qui vous permet d'afficher son état. Les pods créés par la tâche ne sont pas supprimés, mais terminés. La conservation des pods vous permet de consulter leurs journaux et d'interagir avec eux.

  1. Pour obtenir la liste des tâches du cluster, exécutez la commande suivante :

kubectl get jobs

La sortie doit ressembler à cet exemple.

NAME COMPLETIONS DURATION AGE example-job 1/1 75s 2m5s
  1. Pour récupérer le fichier journal du pod qui a exécuté la tâche, exécutez la commande suivante. Vous devez remplacer [POD-NAME] par le nom de pod que vous avez noté lors de la dernière tâche.

kubectl logs [POD-NAME]

La sortie indique que la tâche a écrit les 2 000 premiers chiffres de pi dans le journal du pod.

  1. Pour supprimer la tâche, exécutez la commande suivante :

kubectl delete job example-job

La commande échouera si vous réessayez d'interroger les journaux, puisque le pod ne peut plus être trouvé.

Tâche 2 : Définir et déployer un fichier manifeste de tâche Cron

Les tâches Cron permettent de réaliser des tâches limitées dans le temps qui s'exécutent une ou plusieurs fois à l'heure que vous indiquez.

Dans cet exercice, vous allez créer et exécuter une tâche Cron, puis vous nettoierez et supprimerez la tâche.

Créer et exécuter une tâche Cron

Le fichier manifeste example-cronjob.yaml de tâche Cron vous a été fourni. Cette tâche Cron déploie toutes les minutes un nouveau conteneur qui imprime l'heure, la date et "Hello, World!".

apiVersion: batch/v1beta1 kind: CronJob metadata: name: hello spec: schedule: "*/1 * * * *" jobTemplate: spec: template: spec: containers: - name: hello image: busybox args: - /bin/sh - -c - date; echo "Hello, World!" restartPolicy: OnFailure
  1. Pour créer une tâche à partir de ce fichier, exécutez la commande suivante :

kubectl apply -f example-cronjob.yaml

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer et exécuter une tâche Cron

  1. Pour obtenir la liste des tâches du cluster, exécutez la commande suivante :

kubectl get jobs

La sortie doit ressembler à cet exemple.

NAME COMPLETIONS DURATION AGE hello-1545013620 1/1 2s 18s
  1. Pour vérifier l'état de cette tâche, exécutez la commande suivante, où [job_name] est le nom de votre tâche :

kubectl describe job [job_name]

Vous verrez les détails de la tâche, y compris les états du pod indiquant qu'une instance de cette tâche a été exécutée.

... Start Time: Thu, 20 Dec 2018 15:24:03 +0000 Pods Statuses: 0 Running / 1 Succeeded / 0 Failed ... ...Created pod: hello-1545319920-twkhl
  1. Notez le nom du pod qui a été utilisé par cette tâche.

  2. Consultez les résultats de la tâche en interrogeant les journaux pour le pod. Remplacez [POD-NAME] par le nom de pod noté à l'étape précédente.

kubectl logs [POD-NAME]

La sortie du script shell configuré dans la tâche Cron s'affiche :

Fri Jan 28 11:12:01 UTC 2022 Hello, World!
  1. Pour afficher toutes les ressources de votre cluster associées à cette tâche, y compris tous les pods créés par la tâche Cron et qui sont terminés, exécutez la commande suivante :

kubectl get jobs

Les noms de vos tâches peuvent être différents de ceux de l'exemple de sortie. Par défaut, Kubernetes définit les limites de l'historique des tâches afin de ne conserver que les trois dernières tâches réussies et la dernière tâche ayant échoué. Sur quatre tâches, cette liste ne contient donc que les trois tâches les plus récentes.

NAME COMPLETIONS DURATION AGE hello-27389472 1/1 1s 2m55s hello-27389473 1/1 1s 115s hello-27389474 1/1 1s 55s

Nettoyer et supprimer la tâche

Si vous souhaitez interrompre la tâche Cron et nettoyer les tâches associées, vous devez supprimer la tâche Cron.

  1. Pour supprimer toutes ces tâches, exécutez la commande suivante :

kubectl delete cronjob hello
  1. Pour vérifier que les tâches ont bien été supprimées, exécutez la commande suivante :

kubectl get jobs

La sortie doit ressembler à cet exemple.

No resources found in default namespace.

Toutes les tâches ont été supprimées.

Terminer l'atelier

Une fois l'atelier terminé, cliquez sur Terminer l'atelier. Google Cloud Skills Boost supprime les ressources que vous avez utilisées, puis efface le compte.

Si vous le souhaitez, vous pouvez noter l'atelier. Sélectionnez un nombre d'étoiles, saisissez un commentaire, puis cliquez sur Envoyer.

Le nombre d'étoiles correspond à votre degré de satisfaction :

  • 1 étoile = très insatisfait(e)
  • 2 étoiles = insatisfait(e)
  • 3 étoiles = ni insatisfait(e), ni satisfait(e)
  • 4 étoiles = satisfait(e)
  • 5 étoiles = très satisfait(e)

Si vous ne souhaitez pas donner votre avis, vous pouvez fermer la boîte de dialogue.

Pour soumettre des commentaires, suggestions ou corrections, veuillez accéder à l'onglet Assistance.

Copyright 2020 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Avant de commencer

  1. Les ateliers créent un projet Google Cloud et des ressources pour une durée déterminée.
  2. Les ateliers doivent être effectués dans le délai imparti et ne peuvent pas être mis en pause. Si vous quittez l'atelier, vous devrez le recommencer depuis le début.
  3. En haut à gauche de l'écran, cliquez sur Démarrer l'atelier pour commencer.

Utilisez la navigation privée

  1. Copiez le nom d'utilisateur et le mot de passe fournis pour l'atelier
  2. Cliquez sur Ouvrir la console en navigation privée

Connectez-vous à la console

  1. Connectez-vous à l'aide des identifiants qui vous ont été attribués pour l'atelier. L'utilisation d'autres identifiants peut entraîner des erreurs ou des frais.
  2. Acceptez les conditions d'utilisation et ignorez la page concernant les ressources de récupération des données.
  3. Ne cliquez pas sur Terminer l'atelier, à moins que vous n'ayez terminé l'atelier ou que vous ne vouliez le recommencer, car cela effacera votre travail et supprimera le projet.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible

Un atelier à la fois

Confirmez pour mettre fin à tous les ateliers existants et démarrer celui-ci

Utilisez la navigation privée pour effectuer l'atelier

Ouvrez une fenêtre de navigateur en mode navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le compte temporaire de participant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.