arrow_back

Ottimizzazione dei costi per Google Kubernetes Engine: Challenge Lab

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

Ottimizzazione dei costi per Google Kubernetes Engine: Challenge Lab

Lab 1 ora 30 minuti universal_currency_alt 5 crediti show_chart Intermedio
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP343

Laboratori autogestiti Google Cloud

Introduzione

In un Challenge Lab ti vengono presentati uno scenario e un insieme di attività. Anziché seguire le istruzioni dettagliate, utilizzerai le competenze apprese dai lab nella Quest per capire come completare le attività autonomamente. Tramite un sistema di valutazione automatico (visibile in questa pagina), riceverai un feedback che ti consentirà di capire se hai completato le attività in modo corretto.

Quando partecipi a un Challenge Lab non ricevi alcuna formazione sui concetti di Google Cloud. Dovrai estendere le competenze che hai appreso, ad esempio modificare i valori predefiniti e leggere ed esaminare i messaggi di errore per correggere i tuoi errori.

Per ottenere un punteggio del 100% devi completare tutte le attività correttamente nel tempo stabilito.

Questo lab è consigliato solo agli studenti iscritti al corso Optimize Costs for Google Kubernetes Engine. Accetti la sfida?

Configurazione e requisiti

Prima di fare clic sul pulsante Avvia lab

Leggi le seguenti istruzioni. I lab sono a tempo e non possono essere messi in pausa. Il timer si avvia quando fai clic su Avvia lab e ti mostra per quanto tempo avrai a disposizione le risorse Google Cloud.

Con questo lab pratico avrai la possibilità di completare le attività in prima persona, in un ambiente cloud reale e non di simulazione o demo. Riceverai delle nuove credenziali temporanee che potrai utilizzare per accedere a Google Cloud per la durata del lab.

Per completare il lab, avrai bisogno di:

  • Accesso a un browser internet standard (Chrome è il browser consigliato).
Nota: utilizza una finestra del browser in incognito o privata per eseguire questo lab. Ciò evita eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.
  • È ora di completare il lab: ricorda che, una volta iniziato, non puoi metterlo in pausa.
Nota: se hai già un account o un progetto Google Cloud personale, non utilizzarlo per questo lab per evitare addebiti aggiuntivi al tuo account.

Scenario della sfida

Sei l'amministratore principale di Google Kubernetes Engine in un team che gestisce il negozio online per OnlineBoutique.

Hai tutto pronto per eseguire il deployment del sito del tuo team in Google Kubernetes Engine, ma stai ancora cercando modi per assicurarti di poter mantenere costi bassi e prestazioni elevate.

Sarai responsabile di eseguire il deployment dell'app OnlineBoutique su GKE e di apportare alcune modifiche alla configurazione, che sono state consigliate per ottimizzare i costi.

Ecco alcune linee guida che ti è stato chiesto di seguire durante il deployment:

  • Crea il cluster nella zona .
  • Lo schema di denominazione è team-risorsa-numero, ad es. un cluster potrebbe essere chiamato .
  • Per il tuo cluster iniziale, parti da una dimensione macchina e2-standard-2 (2 vCPU, 8 GB di memoria)
  • Configura il cluster per utilizzare l'impostazione rapid di release-channel.

Attività 1: crea un cluster ed esegui il deployment della tua app

  1. Prima di poter eseguire il deployment dell'applicazione, dovrai creare un cluster e denominarlo .

  2. Parti da dimensioni ridotte e crea un cluster di zona con due (2) soli nodi.

  3. Prima di eseguire il deployment del negozio, assicurati di configurare alcuni spazi dei nomi per separare le risorse sul tuo cluster in base ai due ambienti: dev e prod.

  4. Dopodiché, esegui il deployment dell'applicazione nello spazio dei nomi dev con il seguente comando:

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

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Crea il cluster ed esegui il deployment di un'app

Attività 2: esegui la migrazione a un pool di nodi ottimizzato

  1. Dopo aver eseguito il deployment dell'app nello spazio dei nomi dev, osserva i dettagli dei nodi:

Tabella dei dettagli dei nodi

Stabilisci che è necessario apportare modifiche al pool di nodi del cluster:

  • I deployment attuali hanno lasciato libera una grande quantità di RAM, per cui dovrebbe essere possibile utilizzare un pool di nodi con macchine che offrono meno RAM.
  • La maggior parte dei deployment per cui potresti considerare l'opportunità di aumentare il numero di repliche richiederà solo 100 mCPU per ogni pod aggiuntivo. In teoria, potresti utilizzare un pool di nodi con meno CPU totale se lo configuri per utilizzare macchine più piccole. Tuttavia, devi anche considerare quanti deployment dovranno essere scalati e in che misura.
  1. Crea un nuovo pool di nodi denominato con il tipo di macchina custom-2-3584.

  2. Imposta il numero di nodi su 2.

  3. Dopo aver configurato il nuovo pool di nodi, esegui la migrazione dei deployment della tua applicazione al nuovo pool contrassegnando come non pianificabile e svuotando default-pool.

  4. Elimina default-pool dopo aver completato la migrazione dei deployment.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Esegui la migrazione a un pool di nodi ottimizzato

Attività 3: applica un aggiornamento del frontend

Hai appena completato il deployment di tutto il necessario e ora il team di sviluppo ti chiede di eseguire il push di un aggiornamento dell'ultimo minuto prima dell'imminente release! Non è un problema. Sai che puoi farlo senza dover provocare un tempo di inattività.

  1. Imposta un budget di interruzione dei pod per il tuo deployment frontend.

  2. Assegna il nome onlineboutique-frontend-pdb.

  3. Imposta il valore di min-availability del tuo deployment su 1.

Ora puoi applicare l'aggiornamento del team. Il file utilizzato per il banner della home page è cambiato e il team ti ha fornito un'immagine Docker aggiornata:

gcr.io/qwiklabs-resources/onlineboutique-frontend:v2.1
  1. Modifica il tuo deployment frontend e cambia l'immagine con quella aggiornata.

  2. Quando modifichi il deployment, cambia ImagePullPolicy in Always.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Applica un aggiornamento del frontend

Attività 4: applica la scalabilità automatica in base al traffico stimato

Sta per partire una campagna di marketing che causerà un picco di traffico nel negozio OnlineBoutique. Normalmente, avvieresti risorse aggiuntive in anticipo per gestire il picco di traffico stimato. Tuttavia, se il picco di traffico è maggiore del previsto, potresti doverti alzare nel cuore della notte per aggiungere altre risorse allo scopo di gestire il carico.

Inoltre, vuoi evitare di eseguire risorse aggiuntive per più tempo di quanto strettamente necessario. Per ridurre i costi e risparmiarti potenziali grattacapi, puoi configurare i deployment Kubernetes per la scalabilità automatica all'inizio del picco di traffico.

  1. Applica la scalabilità automatica orizzontale dei pod al tuo deployment frontend per gestire il picco di traffico.

  2. Applica la scalabilità in base a una percentuale di CPU target del 50%.

  3. Imposta la scalabilità dei pod tra un minimo di 1 e un massimo di .

Naturalmente, consigliamo di assicurarti che gli utenti non riscontrino un tempo di inattività durante l'applicazione della scalabilità al deployment.

  1. Per assicurarti che l'applicazione della scalabilità avvenga senza tempi di inattività, imposta il deployment per la scalabilità con una percentuale di CPU target del 50%. Questo dovrebbe lasciare ampio margine per gestire il carico durante l'applicazione della scalabilità automatica.

  2. Imposta il deployment per la scalabilità tra un minimo di 1 e un massimo di pod.

Ma che succede se il picco supera le risorse di computing di cui hai attualmente eseguito il provisioning? Potresti aver bisogno di aggiungere ulteriori nodi di computing.

  1. Come passo successivo, assicurati che il cluster sia in grado di avviare automaticamente nodi di computing aggiuntivi in caso di necessità. Tuttavia, la gestione dello scale up non è l'unico caso che puoi risolvere con la scalabilità automatica.

  2. Giocando in anticipo, configuri sia un numero minimo che un numero massimo di nodi. In questo modo, il cluster può aggiungere nodi quando il traffico è elevato e diminuirne il numero quando il traffico è ridotto.

  3. Aggiorna il gestore della scalabilità automatica del cluster per applicare la scalabilità tra un minimo di 1 nodo e un massimo di 6 nodi.

Fai clic su Controlla i miei progressi per verificare l'obiettivo. Applica la scalabilità automatica in base al traffico stimato

  1. Infine, esegui un test di carico per simulare il picco di traffico.

Fortunatamente, OnlineBoutique è stato progettato con generazione dei carichi incorporata. Attualmente, la tua istanza dev sta simulando il traffico verso il negozio con circa 10 utenti in contemporanea.

  1. Per riprodurre meglio il traffico previsto per questo evento, esegui la generazione del carico dal tuo pod loadgenerator con un numero più alto di utenti in contemporanea mediante questo comando. Sostituisci YOUR_FRONTEND_EXTERNAL_IP con l'IP del servizio 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. Ora osserva i tuoi carichi di lavoro e monitora il modo in cui il cluster gestisce il picco di traffico.

Dovresti vedere che recommendationservice ha un arresto anomalo oppure, come minimo, è in forte difficoltà a causa dell'aumento della domanda.

  1. Applica la scalabilità automatica orizzontale dei pod al tuo deployment recommendationservice. Applica la scalabilità in base a una percentuale di CPU target del 50% e imposta la scalabilità dei pod tra un minimo di 1 e un massimo di 5.
Nota: il processo di applicazione della scalabilità dal test di carico e provisioning di eventuali nuovi nodi richiede complessivamente un paio di minuti.

(Facoltativo) Attività 5: ottimizza altri servizi

Per quanto l'applicazione della scalabilità automatica orizzontale dei pod al tuo servizio frontend mantenga disponibile la tua applicazione durante il test di carico, se esegui il monitoraggio di altri carichi di lavoro noterai che alcuni di questi sono spinti quasi al limite per quanto riguarda determinate risorse.

Se hai del tempo rimasto nel lab, ispeziona alcuni degli altri carichi di lavoro e prova a ottimizzarli applicando la scalabilità automatica in base alla metrica delle risorse adeguata.

Puoi anche vedere se sarebbe possibile ottimizzare ulteriormente il tuo utilizzo delle risorse con il provisioning automatico dei nodi.

Complimenti!

Complimenti! In questo lab, hai eseguito il deployment dell'app OnlineBoutique in Google Kubernetes Engine e hai apportato alcune modifiche alla configurazione, che sono state consigliate per ottimizzare i costi. Hai anche applicato la scalabilità automatica orizzontale dei pod ai deployment frontend e recommendationservice per gestire il picco di traffico. Inoltre, hai ottimizzato altri servizi applicando la scalabilità automatica in base alla metrica delle risorse adeguata.

Optimize_Costs_for_Google_Kubernetes_Engine_Skill_badge_WBG.png

Guadagna il tuo prossimo badge delle competenze

Questo self-paced lab fa parte del corso con badge delle competenze Optimize Costs for Google Kubernetes Engine. Il completamento di questo corso con badge delle competenze ti permette di ottenere il badge indicato in precedenza come riconoscimento per l'obiettivo raggiunto. Condividi il badge sul tuo CV e sulle piattaforme social e annuncia il risultato che hai raggiunto utilizzando #GoogleCloudBadge.

Formazione e certificazione Google Cloud

… per utilizzare al meglio le tecnologie Google Cloud. I nostri corsi ti consentono di sviluppare competenze tecniche e best practice per aiutarti a metterti subito al passo e avanzare nel tuo percorso di apprendimento. Offriamo vari livelli di formazione, dal livello base a quello avanzato, con opzioni di corsi on demand, dal vivo e virtuali, in modo da poter scegliere il più adatto in base ai tuoi impegni. Le certificazioni ti permettono di confermare e dimostrare le tue abilità e competenze relative alle tecnologie Google Cloud.

Ultimo aggiornamento del manuale: 22 marzo 2024

Ultimo test del lab: 27 luglio 2023

Copyright 2024 Google LLC Tutti i diritti riservati. Google e il logo Google sono marchi di Google LLC. Tutti gli altri nomi di società e prodotti sono marchi delle rispettive società a cui sono associati.