arrow_back

Gestione dei deployment utilizzando Kubernetes Engine

Accedi Partecipa
Accedi a oltre 700 lab e corsi

Gestione dei deployment utilizzando Kubernetes Engine

Lab 1 ora universal_currency_alt 5 crediti show_chart Intermedio
info Questo lab potrebbe incorporare strumenti di AI a supporto del tuo apprendimento.
Accedi a oltre 700 lab e corsi

GSP053

Logo dei self-paced lab di Google Cloud

Panoramica

Le best practice DevOps utilizzeranno regolarmente più deployment per gestire gli scenari di deployment delle applicazioni quali "Deployment continuo", "Deployment blu/verde", "Deployment canary" e altri. Questo lab ti insegnerà come scalare e gestire i container in modo da poter realizzare questi scenari comuni in cui vengono utilizzati più deployment eterogenei.

Obiettivi

In questo lab imparerai a:

  • Utilizzare lo strumento kubectl
  • Creare file yaml per i deployment
  • Avviare, aggiornare e scalare i deployment
  • Aggiornare i deployment e scoprire gli stili di deployment

Prerequisiti

Per massimizzare il tuo apprendimento, per questo lab si consiglia quanto segue.

  • Hai seguito questi lab di Google Cloud Skills Boost:
  • Hai competenze di amministrazione del sistema Linux.
  • Comprendi la teoria DevOps: concetti di deployment continuo.

Introduzione ai deployment

I deployment eterogenei in genere implicano il collegamento di due o più ambienti infrastrutturali o regioni differenti per soddisfare una specifica esigenza tecnica o operativa. I deployment eterogenei vengono chiamati "ibridi", "multi-cloud" o "pubblici-privati", a seconda delle specifiche dei deployment.

Per questo lab, i deployment eterogenei includono quelli che interessano più regioni all'interno di un singolo ambiente cloud, più ambienti cloud pubblici (multi-cloud) o una combinazione di ambienti on-premise e cloud pubblici (ibridi o pubblici-privati).

Nei deployment limitati a un solo ambiente o una sola regione, possono sorgere diverse sfide aziendali e tecniche:

  • Risorse esaurite: in ogni singolo ambiente, in particolare negli ambienti on-premise, potresti non disporre delle risorse di computing, networking e archiviazione necessarie per soddisfare le tue esigenze di produzione.
  • Copertura geografica limitata: i deployment in un unico ambiente richiedono che le persone geograficamente distanti l'una dall'altra accedano a un deployment. Il loro traffico potrebbe viaggiare in tutto il mondo verso una posizione centrale.
  • Disponibilità limitata: i pattern di traffico su scala web sfidano le applicazioni a mantenersi resilienti e a tolleranza di errore.
  • Vincoli al fornitore: la piattaforma e le astrazioni dell'infrastruttura a livello di fornitore possono impedirti la portabilità delle applicazioni.
  • Risorse non flessibili: le tue risorse potrebbero essere limitate a un particolare set di offerte di computing, archiviazione o networking.

I deployment eterogenei possono aiutare ad affrontare queste sfide, ma devono essere progettati utilizzando processi e procedure programmatici e deterministici. Le procedure di deployment una tantum o ad hoc possono rendere i deployment o i processi precari e intolleranti agli errori. I processi ad hoc possono provocare la perdita di dati o un calo del traffico. I processi di deployment efficaci devono essere ripetibili e utilizzare approcci comprovati per la gestione del provisioning, della configurazione e della manutenzione.

Tre scenari comuni per il deployment eterogeneo sono:

  • deployment multi-cloud
  • infrastruttura di dati on-premise
  • integrazione continua/distribuzione continua (CI/CD).

Gli esercizi seguenti consentono di fare pratica con alcuni casi d'uso comuni relativi ai deployment eterogenei e con approcci ben strutturati che utilizzano Kubernetes e altre risorse dell'infrastruttura per realizzarli.

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 Inizia il 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 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: per eseguire questo lab, utilizza una finestra del browser in modalità di navigazione in incognito (consigliata) o privata. Ciò evita 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: utilizza solo l'account studente per questo lab. Se utilizzi un altro account Google Cloud, potrebbero essere addebitati costi su quell'account.

Come avviare il lab e accedere alla console Google Cloud

  1. Fai clic sul pulsante Avvia lab. Se devi effettuare il pagamento per il lab, si aprirà una finestra di dialogo per permetterti di selezionare il metodo di pagamento. A sinistra, trovi il riquadro Dettagli lab con le seguenti informazioni:

    • Il pulsante Apri la console Google Cloud
    • Tempo rimanente
    • Credenziali temporanee da utilizzare per il lab
    • Altre informazioni per seguire questo lab, se necessario
  2. Fai clic su Apri console Google Cloud (o fai clic con il tasto destro del mouse e seleziona Apri link in finestra di navigazione in incognito se utilizzi il browser Chrome).

    Il lab avvia le risorse e apre un'altra scheda con la pagina di accesso.

    Suggerimento: disponi le schede in finestre separate posizionate fianco a fianco.

    Nota: se visualizzi la finestra di dialogo Scegli un account, fai clic su Usa un altro account.
  3. Se necessario, copia il Nome utente di seguito e incollalo nella finestra di dialogo di accesso.

    {{{user_0.username | "Username"}}}

    Puoi trovare il Nome utente anche nel riquadro Dettagli lab.

  4. Fai clic su Avanti.

  5. Copia la Password di seguito e incollala nella finestra di dialogo di benvenuto.

    {{{user_0.password | "Password"}}}

    Puoi trovare la Password anche nel riquadro Dettagli lab.

  6. Fai clic su Avanti.

    Importante: devi utilizzare le credenziali fornite dal lab. Non utilizzare le credenziali del tuo account Google Cloud. Nota: utilizzare il tuo account Google Cloud per questo lab potrebbe comportare addebiti aggiuntivi.
  7. Fai clic nelle pagine successive:

    • Accetta i termini e le condizioni.
    • Non inserire opzioni di recupero o l'autenticazione a due fattori, perché si tratta di un account temporaneo.
    • Non registrarti per le prove gratuite.

Dopo qualche istante, la console Google Cloud si apre in questa scheda.

Nota: per accedere ai prodotti e ai servizi Google Cloud, fai clic sul menu di navigazione o digita il nome del servizio o del prodotto nel campo Cerca. Icona del menu di navigazione e campo Cerca

Attiva Cloud Shell

Cloud Shell è una macchina virtuale in cui sono caricati strumenti per sviluppatori. Offre una home directory permanente da 5 GB e viene eseguita su Google Cloud. Cloud Shell fornisce l'accesso da riga di comando alle risorse Google Cloud.

  1. Fai clic su Attiva Cloud Shell Icona Attiva Cloud Shell nella parte superiore della console Google Cloud.

  2. Fai clic nelle seguenti finestre:

    • Continua nella finestra delle informazioni di Cloud Shell.
    • Autorizza Cloud Shell a utilizzare le tue credenziali per effettuare chiamate API Google Cloud.

Quando la connessione è attiva, l'autenticazione è già avvenuta e il progetto è impostato sul tuo Project_ID, . L'output contiene una riga che dichiara il Project_ID per questa sessione:

Your Cloud Platform project in this session is set to {{{project_0.project_id | "PROJECT_ID"}}}

gcloud è lo strumento a riga di comando di Google Cloud. È preinstallato su Cloud Shell e supporta il completamento tramite tasto Tab.

  1. (Facoltativo) Puoi visualizzare il nome dell'account attivo con questo comando:
gcloud auth list
  1. Fai clic su Autorizza.

Output:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} To set the active account, run: $ gcloud config set account `ACCOUNT`
  1. (Facoltativo) Puoi elencare l'ID progetto con questo comando:
gcloud config list project

Output:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Nota: per la documentazione completa di gcloud, in Google Cloud, fai riferimento alla guida Panoramica dell'interfaccia a riga di comando gcloud.

Imposta la zona

Imposta la tua zona Google Cloud di lavoro eseguendo questo comando, sostituendo la zona locale con :

gcloud config set compute/zone {{{ project_0.default_zone | ZONE }}}

Recupera il codice campione per questo lab

  1. Recupera il codice campione per la creazione e l'esecuzione di container e deployment dal bucket del lab:
gcloud storage cp -r gs://spls/gsp053/kubernetes . cd kubernetes
  1. Crea un cluster con 3 nodi (il completamento dell'operazione richiederà alcuni minuti):
gcloud container clusters create bootcamp \ --machine-type e2-small \ --num-nodes 3 \ --scopes "https://www.googleapis.com/auth/projecthosting,storage-rw"

Attività 1: scopri di più sull'oggetto deployment

Per iniziare, dai un'occhiata all'oggetto deployment.

  1. Il comando explain in kubectl può fornire informazioni sull'oggetto deployment:
kubectl explain deployment
  1. Possiamo anche visualizzare tutti i campi utilizzando l'opzione --recursive:
kubectl explain deployment --recursive
  1. Puoi utilizzare il comando explain durante il lab per comprendere la struttura di un oggetto deployment e capire a cosa servono i singoli campi:
kubectl explain deployment.metadata.name

Attività 2: crea un deployment

  1. Crea il deployment fortune-app. Esamina il file di configurazione del deployment:
cat deployments/fortune-app-blue.yaml

Output:

# orchestrate-with-kubernetes/kubernetes/deployments/fortune-app-blue.yaml apiVersion: apps/v1 kind: Deployment metadata: name: fortune-app-blue spec: replicas: 3 selector: matchLabels: app: fortune-app template: metadata: labels: app: fortune-app track: stable version: "1.0.0" spec: containers: - name: fortune-app # The new, centralized image path image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0" ports: - name: http containerPort: 8080 ...

Nota che il deployment sta creando tre repliche e sta utilizzando la versione 1.0.0 del container fortune-service.

  1. Crea il tuo oggetto deployment utilizzando kubectl create:
kubectl create -f deployments/fortune-app-blue.yaml
  1. Una volta creato il deployment, puoi verificare che sia stato creato correttamente.
kubectl get deployments
  1. Una volta creato il deployment, Kubernetes creerà un ReplicaSet per il deployment. È possibile verificare che sia stato creato un ReplicaSet per il deployment:
kubectl get replicasets

Dovresti vedere un ReplicaSet con un nome simile a fortune-app-blue-xxxxxxx

  1. Visualizza i pod che sono stati creati come parte del deployment.
kubectl get pods
  1. Ora crea un servizio per esporre il deployment fortune-app esternamente.
kubectl create -f services/fortune-app.yaml
  1. Interagisci con fortune-app recuperando il suo IP esterno e quindi eseguendo il comando curl sull'endpoint /version:
kubectl get services frontend Nota: potrebbero volerci alcuni secondi prima che il campo IP esterno venga compilato per il tuo servizio. È normale. Esegui il comando riportato sopra a intervalli regolari di alcuni secondi fino a quando il campo non viene compilato. curl http://<EXTERNAL-IP>/version

Dovresti ricevere una risposta JSON che indica {"version":"1.0.0"}.

  1. Puoi anche utilizzare la funzionalità per la creazione di modelli di output kubectl per usare curl come one-liner:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Verifica l'attività completata

Fai clic su Controlla i miei progressi qui sotto per verificare lo stato di avanzamento del lab. Se hai creato correttamente un cluster Kubernetes e il deployment e il servizio fortune-app, visualizzerai un punteggio di valutazione.

Crea un cluster Kubernetes e i deployment (fortune-app)

Scala un deployment

Ora che hai creato un deployment, puoi scalarlo. Per farlo, aggiorna il campo spec.replicas.

  1. Il campo replicas può essere aggiornato più facilmente utilizzando il comando kubectl scale:
kubectl scale deployment fortune-app-blue --replicas=5 Nota: l'avvio di tutti i nuovi pod può richiedere circa un minuto.
  1. Verifica che siano presenti 5 pod fortune-app-blue in esecuzione:
kubectl get pods | grep fortune-app-blue | wc -l
  1. Ora ridimensiona l'applicazione:
kubectl scale deployment fortune-app-blue --replicas=3
  1. Verifica nuovamente di avere il numero corretto di pod:
kubectl get pods | grep fortune-app-blue | wc -l

Ora sai cosa sono i deployment Kubernetes e come gestire e scalare un gruppo di pod.

Attività 3: aggiornamento in sequenza

I deployment supportano l'aggiornamento delle immagini a una nuova versione tramite un meccanismo di aggiornamento in sequenza.

Attiva un aggiornamento in sequenza

  1. Per attivare un aggiornamento in sequenza, puoi semplicemente applicare la configurazione del deployment "verde". Kubernetes è abbastanza intelligente da vedere il deployment esistente (fortune-app-blue) e "applicherà" le modifiche dal nuovo file.
kubectl edit deployment fortune-app-blue
  1. Nell'editor, trova la riga image e cambia il tag della versione da 1.0.0 a 2.0.0. Puoi modificare il file premendo i sulla tastiera per accedere alla "modalità di inserimento".
  • Innanzitutto, cambia il tag dell'immagine:

    • Trova questa riga: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:1.0.0"
    • Modificala in: image: "us-central1-docker.pkg.dev/qwiklabs-resources/spl-lab-apps/fortune-service:2.0.0"
  • Aggiorna quindi la variabile di ambiente:

    • Trova la sezione env e la variabile APP_VERSION.
    • Modifica value: "1.0.0" in value: "2.0.0"
  1. Salva e chiudi l'editor. Puoi farlo premendo Esc, quindi digitando :wq e premendo Invio. In questo modo, l'aggiornamento in sequenza verrà attivato sul deployment corretto e la relativa cronologia verrà registrata in modo appropriato. In questo modo, l'aggiornamento in sequenza verrà attivato sul deployment corretto e la relativa cronologia verrà registrata in modo appropriato.

  2. Guarda il nuovo ReplicaSet creato da Kubernetes:

kubectl get replicaset
  1. Puoi anche vedere una nuova voce nella cronologia di implementazione:
kubectl rollout history deployment/fortune-app-blue

Metti in pausa l'aggiornamento in sequenza

  1. Esegui questo comando per mettere in pausa l'implementazione:
kubectl rollout pause deployment/fortune-app-blue
  1. Verifica lo stato attuale dell'implementazione:
kubectl rollout status deployment/fortune-app-blue Nota: il comando di stato potrebbe segnalare immediatamente "deployment "fortune-app-blue" successfully rolled out". Questo è previsto e indica che il comando di pausa è andato a buon fine. Non significa che l'aggiornamento della versione sia completo.
  1. Controlla la versione di ciascun pod. Vedrai un mix di pod 1.0.0 e 2.0.0, a conferma che l'implementazione è stata messa in pausa a metà del processo.
for p in $(kubectl get pods -l app=fortune-app -o=jsonpath='{.items[*].metadata.name}'); do echo $p && curl -s http://$(kubectl get pod $p -o=jsonpath='{.status.podIP}')/version; echo; done
  1. Premi Ctrl+C per uscire dal ciclo.

Riprendi l'aggiornamento in sequenza

  1. Continua l'implementazione utilizzando il comando resume:
kubectl rollout resume deployment/fortune-app-blue
  1. Al termine dell'implementazione, dovresti vedere quanto segue durante l'esecuzione del comando status:
kubectl rollout status deployment/fortune-app-blue

Esegui il rollback di un aggiornamento

Supponiamo che sia stato rilevato un bug nella tua nuova versione.

  1. Utilizza il comando rollout per eseguire il rollback alla versione precedente:
kubectl rollout undo deployment/fortune-app-blue Nota: il rollback potrebbe richiedere alcuni istanti per essere completato.
  1. Verifica che per tutti i pod sia stato eseguito il rollback alla versione 1.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Bene. Hai imparato come eseguire un aggiornamento in sequenza per i deployment Kubernetes.

Attività 4: deployment canary

Quando vuoi testare un nuovo deployment in produzione con un sottoinsieme di utenti, usa un deployment canary.

Crea un deployment canary

  1. Innanzitutto, crea un nuovo deployment canary per la nuova versione utilizzando il file fortune-app-canary.yaml:
cat deployments/fortune-app-canary.yaml
  1. Ora crea il deployment canary:
kubectl create -f deployments/fortune-app-canary.yaml
  1. Una volta creato il deployment canary, dovresti avere due deployment. Verifica con questo comando:
kubectl get deployments

Il servizio fortune-app ha un selettore per app: fortune-app, che corrisponderà ai pod sia nei deployment fortune-app-blue (prod) che fortune-app-canary.

Verifica il deployment canary

  1. Puoi verificare la versione fornita effettuando richieste al servizio.
for i in {1..10}; do curl -s http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version; echo; done
  1. Esegui questo comando più volte. La maggior parte delle richieste viene gestita dalla versione 1.0.0 e un piccolo sottoinsieme viene gestito dalla versione 2.0.0.

Verifica l'attività completata

Fai clic su Controlla i miei progressi qui sotto per verificare lo stato di avanzamento del lab. Se hai creato correttamente il deployment canary, visualizzerai un punteggio di valutazione.

Deployment canary

Attività 5: deployment blu/verde

Per i deployment blu/verde, creerai due deployment separati e cambierai il traffico tra di loro aggiornando il selettore del servizio.

Il servizio

  1. Innanzitutto, aggiorna il servizio in modo che punti solo alla versione "blu" (1.0.0).
kubectl apply -f services/fortune-app-blue-service.yaml

Aggiornamento mediante deployment blu/verde

  1. Ora crea il nuovo deployment "verde" per la versione 2.0.0.
kubectl create -f deployments/fortune-app-green.yaml
  1. Una volta avviato il deployment verde, verifica che la versione corrente servita sia ancora 1.0.0.
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version
  1. Ora aggiorna il servizio in modo che punti alla nuova versione "verde":
kubectl apply -f services/fortune-app-green-service.yaml
  1. Una volta aggiornato il servizio, il deployment "verde" verrà utilizzato immediatamente. Ora puoi verificare che venga sempre fornita la versione 2.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Rollback blu/verde

  1. Per eseguire il rollback, riapplica semplicemente il manifest del servizio per il deployment "blu":
kubectl apply -f services/fortune-app-blue-service.yaml
  1. Una volta aggiornato il servizio, il rollback sarà stato eseguito correttamente. Verifica che ora sia in uso la versione 1.0.0:
curl http://`kubectl get svc fortune-app -o=jsonpath="{.status.loadBalancer.ingress[0].ip}"`/version

Obiettivo raggiunto. Hai imparato cos'è un deployment blu/verde e come eseguire il deployment degli aggiornamenti delle applicazioni che devono cambiare versione contemporaneamente.

Deployment blu/verde

Complimenti!

Hai avuto l'opportunità di utilizzare di più lo strumento a riga di comando kubectl e molti stili di configurazione di deployment nei file YAML per avviare, aggiornare e scalare i tuoi deployment.

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: 18 agosto 2025

Ultimo test del lab: 18 agosto 2025

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

Prima di iniziare

  1. I lab creano un progetto e risorse Google Cloud per un periodo di tempo prestabilito
  2. I lab hanno un limite di tempo e non possono essere messi in pausa. Se termini il lab, dovrai ricominciare dall'inizio.
  3. In alto a sinistra dello schermo, fai clic su Inizia il lab per iniziare

Utilizza la navigazione privata

  1. Copia il nome utente e la password forniti per il lab
  2. Fai clic su Apri console in modalità privata

Accedi alla console

  1. Accedi utilizzando le tue credenziali del lab. L'utilizzo di altre credenziali potrebbe causare errori oppure l'addebito di costi.
  2. Accetta i termini e salta la pagina di ripristino delle risorse
  3. Non fare clic su Termina lab a meno che tu non abbia terminato il lab o non voglia riavviarlo, perché il tuo lavoro verrà eliminato e il progetto verrà rimosso

Questi contenuti non sono al momento disponibili

Ti invieremo una notifica via email quando sarà disponibile

Bene.

Ti contatteremo via email non appena sarà disponibile

Un lab alla volta

Conferma per terminare tutti i lab esistenti e iniziare questo

Utilizza la navigazione privata per eseguire il lab

Utilizza una finestra del browser in incognito o privata per eseguire questo lab. In questo modo eviterai eventuali conflitti tra il tuo account personale e l'account Studente, che potrebbero causare addebiti aggiuntivi sul tuo account personale.