Points de contrôle
Create cluster and deploy an app
/ 40
Migrate to an Optimized Nodepool
/ 20
Apply a Frontend Update
/ 20
Autoscale from Estimated Traffic
/ 20
Optimiser les coûts pour Google Kubernetes Engine : atelier challenge
- GSP343
- Introduction
- Préparation
- Scénario du challenge
- Tâche 1 : Créer un cluster et déployer votre application
- Tâche 2 : Migrer vers un pool de nœuds optimisé
- Tâche 3 : Appliquer une mise à jour de l'interface
- Tâche 4 : Effectuer un autoscaling à partir du trafic estimé
- Tâche 5 (facultative) : Optimiser d'autres services
- Félicitations !
GSP343
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 du cours correspondant 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) ;
- vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
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
-
Pour pouvoir déployer l'application, vous devez créer un cluster dans la zone
et le nommer . -
Vous allez procéder par étapes. Commencez par créer un cluster zonal comportant seulement deux (2) nœuds.
-
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
etprod
. -
Ensuite, déployez l'application sur l'espace de noms
dev
à l'aide de la commande suivante :
Cliquez sur Vérifier ma progression pour valider l'objectif.
Tâche 2 : Migrer vers un pool de nœuds optimisé
- Après avoir déployé l'application sur l'espace de noms "dev", examinez les 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.
-
Créez un pool de nœuds nommé
avec le type de machine custom-2-3584. -
Définissez le nombre de nœuds sur 2.
-
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. -
Supprimez "default-pool" une fois la migration des déploiements terminée.
Cliquez sur Vérifier ma progression pour valider l'objectif.
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.
-
Définissez un budget d'interruption de pods pour votre déploiement de l'interface (frontend).
-
Nommez-le onlineboutique-frontend-pdb.
-
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 :
-
Modifiez votre déploiement de l'interface et remplacez son image par celle mise à jour.
-
Pour ImagePullPolicy, remplacez la valeur par Always.
Cliquez sur Vérifier ma progression pour valider l'objectif.
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.
-
Appliquez un autoscaling horizontal des pods à votre déploiement de l'interface afin de faire face à la hausse de trafic.
-
Procédez à un scaling basé sur un pourcentage d'utilisation du processeur cible de 50 %.
-
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.
-
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.
-
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.
-
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.
-
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.
-
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.
- 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.
- 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) :
- 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.
- Appliquez un autoscaling horizontal des pods à 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).
Tâche 5 (facultative) : Optimiser d'autres services
Bien que l'application d'un autoscaling horizontal des pods à 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.
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 avec 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 : 29 avril 2024
Dernier test de l'atelier : 29 avril 2024
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.