arrow_back

Optimize Costs for Google Kubernetes Engine : atelier challenge

Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Optimize Costs for Google Kubernetes Engine : atelier challenge

Lab 1 heure 30 minutes universal_currency_alt 5 crédits show_chart Intermédiaire
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP343

Google Cloud – Ateliers adaptés au rythme de chacun

Introduction

Dans un atelier challenge, vous devez suivre un scénario et effectuer une série de tâches. Aucune instruction détaillée n'est fournie : vous devez utiliser les compétences acquises au cours des ateliers de la quête correspondante pour déterminer comment procéder par vous-même. Vous saurez si vous avez exécuté correctement les différentes tâches grâce au score calculé automatiquement (affiché sur cette page).

Lorsque vous participez à un atelier challenge, vous n'étudiez pas de nouveaux concepts Google Cloud. Vous allez approfondir les compétences précédemment acquises. Par exemple, vous devrez modifier les valeurs par défaut ou encore examiner des messages d'erreur pour corriger vous-même les problèmes.

Pour atteindre le score de 100 %, vous devez mener à bien l'ensemble des tâches dans le délai imparti.

Cet atelier est recommandé uniquement aux participants inscrits au cours Optimize Costs for Google Kubernetes Engine. Êtes-vous prêt pour le challenge ?

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Scénario du challenge

Vous êtes l'administrateur Google Kubernetes Engine principal au sein d'une équipe qui gère la boutique en ligne d'OnlineBoutique.

Vous êtes prêt à déployer le site de votre équipe sur Google Kubernetes Engine, mais vous recherchez toujours des moyens de vous assurer que vous pouvez limiter les coûts et maintenir des performances optimales.

Vous serez chargé de déployer l'application OnlineBoutique sur GKE et d'apporter des modifications de configuration recommandées pour optimiser les coûts.

Voici des consignes que vous devez suivre lors du déploiement :

  • Créez le cluster dans la zone .
  • Le schéma de nommage est équipe-ressource-numéro. Par exemple, un cluster peut être nommé .
  • Pour votre cluster initial, commencez avec la taille de machine e2-standard-2 (2 vCPU, 8 Go de mémoire).
  • Définissez votre cluster de sorte à utiliser le release-channel (canal de publication) rapide.

Tâche 1 : Créer un cluster et déployer votre application

  1. Pour pouvoir déployer l'application, vous devez créer un cluster et le nommer .

  2. Vous allez procéder par étapes. Commencez par créer un cluster zonal comportant seulement deux (2) nœuds.

  3. Avant de déployer la boutique, assurez-vous de configurer des espaces de noms de façon à séparer les ressources de votre cluster entre les deux environnements, dev et prod.

  4. Ensuite, déployez l'application sur l'espace de noms dev à l'aide de la commande suivante :

git clone https://github.com/GoogleCloudPlatform/microservices-demo.git && cd microservices-demo && kubectl apply -f ./release/kubernetes-manifests.yaml --namespace dev

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer le cluster et déployer une application

Tâche 2 : Migrer vers un pool de nœuds optimisé

  1. Après avoir déployé l'application sur l'espace de noms "dev", examinez les détails des nœuds :

Table des détails des nœuds

Vous constatez que vous devriez apporter des modifications au pool de nœuds du cluster :

  • Une grande quantité de RAM n'est pas utilisée par les déploiements en cours. Vous devriez donc pouvoir utiliser un pool de nœuds avec des machines qui offrent moins de RAM.
  • La plupart des déploiements pour lesquels vous pourriez envisager d'augmenter le nombre d'instances répliquées n'exigeront que 100 mCPU par pod supplémentaire. Vous pourriez éventuellement utiliser un pool de nœuds avec une utilisation totale du processeur moins élevée si vous le configurez de façon à utiliser des machines plus petites. Toutefois, vous devez également prendre en compte le nombre de déploiements nécessitant un scaling et l'ampleur de ce scaling.
  1. Créez un pool de nœuds nommé avec le type de machine custom-2-3584.

  2. Définissez le nombre de nœuds sur 2.

  3. Une fois le nouveau pool de nœuds configuré, migrez les déploiements de votre application vers celui-ci en délimitant le périmètre de default-pool et en le drainant.

  4. Supprimez "default-pool" une fois la migration des déploiements terminée.

Cliquez sur Vérifier ma progression pour valider l'objectif. Migrer vers un pool de nœuds optimisé

Tâche 3 : Appliquer une mise à jour de l'interface

Vous venez de tout déployer, et votre équipe de développement veut maintenant que vous propagiez une mise à jour de dernière minute avant la prochaine version ! Pas de problème. Vous savez que vous pouvez le faire sans causer de temps d'arrêt.

  1. Définissez un budget d'interruption de pods pour votre déploiement de l'interface (frontend).

  2. Nommez-le onlineboutique-frontend-pdb.

  3. Définissez la disponibilité minimale de votre déploiement sur 1.

Vous pouvez maintenant appliquer la mise à jour de votre équipe. Celle-ci a changé le fichier utilisé pour la bannière de la page d'accueil et a fourni une image Docker mise à jour :

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. Modifiez votre déploiement de l'interface et remplacez son image par celle mise à jour.

  2. Pour ImagePullPolicy, remplacez la valeur par Always.

Cliquez sur Vérifier ma progression pour valider l'objectif. Appliquer une mise à jour de l'interface

Tâche 4 : Effectuer un autoscaling à partir du trafic estimé

Une campagne marketing se profile et va entraîner une hausse de trafic sur la boutique OnlineBoutique. Normalement, vous lancez des ressources supplémentaires à l'avance pour faire face au pic de trafic estimé. Cependant, si le pic de trafic est plus important que prévu, il se peut que vous deviez vous lever au milieu de la nuit afin de lancer plus de ressources pour supporter la charge.

Vous voulez aussi éviter d'exécuter des ressources supplémentaires plus longtemps que nécessaire. Pour réduire les coûts et éviter d'éventuels problèmes, vous pouvez configurer les déploiements Kubernetes de sorte qu'ils s'adaptent automatiquement quand la charge commence à augmenter.

  1. Appliquez un autoscaling de pods horizontal à votre déploiement de l'interface afin de faire face à la hausse de trafic.

  2. Procédez à un scaling basé sur un pourcentage d'utilisation du processeur cible de 50 %.

  3. Définissez le scaling des pods entre 1 (minimum) et  (maximum).

Bien sûr, vous voulez vous assurer que les utilisateurs ne subiront pas de temps d'arrêt pendant le scaling du déploiement.

  1. Pour le garantir, définissez le déploiement de sorte qu'il s'adapte avec un pourcentage d'utilisation du processeur cible de 50 %. Vous devriez ainsi disposer d'un espace conséquent pour supporter la charge pendant l'autoscaling.

  2. Définissez le déploiement de sorte qu'il s'adapte afin d'utiliser entre 1 pod minimum et  pods maximum.

Mais que se passe-t-il si le pic dépasse les ressources de calcul actuellement provisionnées ? Il se peut que vous deviez ajouter des nœuds de calcul supplémentaires.

  1. Vérifiez donc que votre cluster peut lancer automatiquement des nœuds de calcul supplémentaires si besoin. Cependant, le scaling à la hausse n'est pas le seul cas que vous pouvez gérer avec l'autoscaling.

  2. Pensez dès le départ à configurer à la fois un nombre minimal et un nombre maximal de nœuds. Ainsi, le cluster pourra ajouter des nœuds quand le trafic est élevé et réduire le nombre de nœuds quand le trafic est faible.

  3. Mettez à jour votre autoscaler de cluster de façon à définir un scaling entre 1 nœud minimum et 6 nœuds maximum.

Cliquez sur Vérifier ma progression pour valider l'objectif. Effectuer un autoscaling à partir du trafic estimé

  1. Enfin, exécutez un test de charge pour simuler la hausse de trafic.

Heureusement, l'application OnlineBoutique a été conçue avec la génération de charge intégrée. Actuellement, votre instance de développement simule le trafic sur la boutique avec environ 10 utilisateurs connectés simultanément.

  1. Pour mieux répliquer le trafic attendu pour cet événement, exécutez la génération de charge depuis votre pod loadgenerator avec un nombre plus élevé d'utilisateurs connectés simultanément à l'aide de cette commande. Remplacez YOUR_FRONTEND_EXTERNAL_IP par l'adresse IP du service d'interface externe (frontend-external) :
kubectl exec $(kubectl get pod --namespace=dev | grep 'loadgenerator' | cut -f1 -d ' ') -it --namespace=dev -- bash -c 'export USERS=8000; locust --host="http://YOUR_FRONTEND_EXTERNAL_IP" --headless -u "8000" 2>&1'
  1. Maintenant, observez vos charges de travail et surveillez la façon dont votre cluster gère le pic de trafic.

Le déploiement recommendationservice devrait planter ou tout du moins avoir beaucoup de mal à faire face à l'augmentation de la demande.

  1. Appliquez un autoscaling de pods horizontal à votre déploiement recommendationservice. Procédez à un scaling basé sur un pourcentage d'utilisation du processeur cible de 50 %, et définissez le scaling des pods entre 1 (minimum) et 5 (maximum).
Remarque : Le processus de scaling, entre le test de charge et le provisionnement de nouveaux nœuds, prendra en tout quelques minutes.

Tâche 5 (facultative) : Optimiser d'autres services

Bien que l'application d'un autoscaling de pods horizontal à votre service d'interface permette de garantir la disponibilité de votre application pendant le test de charge, si vous surveillez vos autres charges de travail, vous noterez que certaines d'entre elles exercent une forte pression sur certaines ressources.

S'il vous reste du temps dans l'atelier, inspectez certaines de vos autres charges de travail et essayez de les optimiser en appliquant un autoscaling pour obtenir les métriques de ressources adéquates.

Vous pouvez également voir s'il est possible d'optimiser davantage votre utilisation des ressources grâce au provisionnement automatique des nœuds.

Félicitations !

Félicitations ! Dans cet atelier, vous avez déployé l'application OnlineBoutique sur Google Kubernetes Engine et apporté des modifications de configuration recommandées pour optimiser les coûts. Vous avez également appliqué un autoscaling horizontal des pods à vos déploiements de l'interface et recommendationservice afin de faire face à la hausse de trafic. Vous avez également optimisé d'autres services en appliquant un autoscaling en fonction de la métrique de ressource appropriée.

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

Gagnez un badge de compétence

Cet atelier d'auto-formation fait partie du cours Optimize Costs for Google Kubernetes Engine. Si vous terminez ce cours, vous obtiendrez le badge de compétence ci-dessus attestant de votre réussite. Ajoutez votre badge à votre CV et partagez-le sur les réseaux sociaux en utilisant le hashtag #GoogleCloudBadge.

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 22 mars 2024

Dernier test de l'atelier : 27 juillet 2023

Copyright 2024 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.