Sviluppa ed esegui il deployment di app containerizzate utilizzando una pipeline CI/CD

Last reviewed 2022-11-18 UTC

Questa guida al deployment descrive come configurare e usare uno sviluppo, di integrazione continua (CI) e di distribuzione continua (CD) utilizzando un un insieme integrato di strumenti Google Cloud. Puoi utilizzare questo sistema per sviluppare ed eseguire il deployment di applicazioni in Google Kubernetes Engine (GKE).

Questa guida illustra come creare descritta in precedenza Pipeline di deployment per lo sviluppo e la distribuzione di app containerizzate.

Questa guida al deployment è rivolta sia agli sviluppatori software sia agli operatori. e, man mano che la completi, svolgi i seguenti ruoli:

  • Innanzitutto, devi agire come operatore per configurare la pipeline CI/CD. I componenti principali di questa pipeline sono Cloud Build, Artifact Registry e Cloud Deploy.
  • Poi agisci come sviluppatore per modificare un'applicazione utilizzando Cloud Code. Quando agisci in qualità di sviluppatore, vedi l'esperienza integrata che questa pipeline fornisce.
  • Infine, agisci come operatore ed esegui i passaggi per eseguire il deployment di un'applicazione in produzione.

Questa guida al deployment presuppone che tu abbia familiarità con l'esecuzione dei comandi gcloud sulle Google Cloud e con il deployment di container di applicazioni con GKE.

Architettura

Il seguente diagramma mostra le risorse utilizzate in questa guida al deployment:

Sviluppare ed eseguire il deployment di un sistema con Cloud Code, Cloud Build, Artifact Registry, Cloud Deploy e GKE

Per informazioni dettagliate sui componenti utilizzati in questa architettura, consulta la pipeline di deployment per lo sviluppo e la pubblicazione di app containerizzate.

Obiettivi

In qualità di operatore, devi:

  • Configura la pipeline CI e la pipeline CD. Questa configurazione include quanto segue:
    • Configura le autorizzazioni richieste.
    • Crea i cluster GKE per gli ambienti di staging e produzione.
    • Creare un repository in Cloud Source Repositories per il codice sorgente.
    • Crea un repository in Artifact Registry per il container dell'applicazione.
    • Crea un trigger di Cloud Build nel repository GitHub principale.
    • Crea una pipeline di distribuzione e i target di Cloud Deploy. La i target sono l'ambiente di gestione temporanea e produzione.
  • Avvia il processo CI/CD per eseguire il deployment in gestione temporanea, quindi promuoverlo in produzione.

In qualità di sviluppatore, apporti una modifica all'applicazione. Per farlo, segui questi passaggi:

  • Clona il repository per lavorare con un ambiente di sviluppo preconfigurato.
  • Apporta una modifica all'applicazione all'interno dell'area di lavoro dello sviluppatore.
  • Crea e testa la modifica. I test includono un test di convalida per la governance.
  • Visualizza e convalida la modifica in un cluster di sviluppo. Questo cluster viene eseguito su minikube.
  • Esegui il commit della modifica nel repository principale.

Costi

In questo documento utilizzi i seguenti componenti fatturabili di Google Cloud:

Per generare una stima dei costi basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.

Prima di iniziare

  1. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  2. Make sure that billing is enabled for your Google Cloud project.

  3. Enable the Artifact Registry, Cloud Build, Cloud Deploy, Cloud Source Repositories, Google Kubernetes Engine, Resource Manager, and Service Networking APIs.

    Enable the APIs

  4. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

prepara l'ambiente

In questa sezione, agirai come operatore dell'applicazione e:

  • Configura le autorizzazioni richieste.
  • Creare i cluster GKE per la gestione temporanea ambienti di produzione.
  • Clonare il repository del codice sorgente.
  • Creare un repository in Cloud Source Repositories per il codice sorgente.
  • Creare un repository in Artifact Registry per l'applicazione container.

Configurare le autorizzazioni

In questa sezione, concedi le autorizzazioni necessarie per configurare il pipeline CI/CD.

  1. Se stai lavorando su una nuova istanza dell'editor di Cloud Shell, specifica il progetto da utilizzare per questa guida al deployment:

    gcloud config set project PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID del progetto selezionato o creato per questa guida all'implementazione.

    Se viene visualizzata una finestra di dialogo, fai clic su Autorizza.

  2. Assicurati che l'account di servizio Compute Engine predefinito sia sufficiente autorizzazioni per eseguire job in Cloud Deploy e eseguire il pull dei container da Artifact Registry. Cloud Build e Cloud Deploy utilizzano questo account di servizio predefinito.

    Questo account di servizio potrebbe già disporre delle autorizzazioni necessarie. Questo passaggio garantisce che le autorizzazioni necessarie vengano concesse per i progetti che disattivano la concessione automatica dei ruoli per gli account di servizio predefiniti.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/clouddeploy.jobRunner"
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/artifactregistry.reader"
    
  3. Concedi il privilegio per l'account di servizio Cloud Build per richiamare i deployment con Cloud Deploy e aggiornare la distribuzione pipeline e le definizioni della destinazione:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")@cloudbuild.gserviceaccount.com \
        --role="roles/clouddeploy.operator"
    

    Per ulteriori informazioni su questo ruolo IAM, consulta il ruolo clouddeploy.operator.

  4. Concedi i servizi Cloud Build e Cloud Deploy privilegio dell'account per eseguire il deployment su GKE:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")-compute@developer.gserviceaccount.com \
        --role="roles/container.admin"
    

    Per maggiori dettagli su questo ruolo IAM, consulta le Ruolo container.admin ruolo.

  5. Concedi all'account di servizio Cloud Build le autorizzazioni necessarie per richiama le operazioni di Cloud Deploy:

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:$(gcloud projects describe PROJECT_ID \
        --format="value(projectNumber)")@cloudbuild.gserviceaccount.com \
        --role="roles/iam.serviceAccountUser"
    

    Quando Cloud Build invoca Cloud Deploy, utilizza un account di servizio Compute Engine per creare una release, motivo per cui è necessaria questa autorizzazione.

    Per maggiori dettagli su questo ruolo IAM, consulta le Ruolo iam.serviceAccountUser ruolo.

Ora hai concesso le autorizzazioni necessarie per la pipeline CI/CD.

crea i cluster GKE

In questa sezione, creerai gli ambienti di gestione temporanea e produzione, che sono in entrambi i cluster GKE. Non è necessario configurare il cluster di sviluppo qui, perché utilizza minikube.

  1. Crea i cluster GKE di gestione temporanea e produzione:

    gcloud container clusters create-auto staging \
        --region us-central1 \
        --project=$(gcloud config get-value project) \
        --async
    
    gcloud container clusters create-auto prod \
        --region us-central1 \
        --project=$(gcloud config get-value project) \
        --async
    

    Il cluster di staging è il luogo in cui testi le modifiche al codice. Dopo verificare che il deployment in fase temporanea non abbia influito negativamente esegui il deployment dell'applicazione in produzione.

  2. Esegui il seguente comando e assicurati che l'output contenga STATUS: RUNNING per i cluster di staging e di produzione:

    gcloud container clusters list
    
  3. Recupera le credenziali nei file kubeconfig per i cluster di staging e produzione.

    gcloud container clusters get-credentials staging --region us-central1
    
    gcloud container clusters get-credentials prod --region us-central1
    

    Queste credenziali possono essere utilizzate per interagire cluster, ad esempio per verificare che un'applicazione funzioni correttamente.

Ora hai creato i cluster GKE per l'ambiente di staging e di produzione.

Apri l'IDE e clona il repository

clonare il repository e visualizzare l'applicazione in fase di sviluppo segui questi passaggi:

  1. Clona il repository GitHub in Cloud Shell.

    Apri in Cloud Shell

  2. Fai clic su Conferma.

    L'editor di Cloud Shell apre e clona il repository di esempio.

    Ora puoi visualizzare il codice dell'applicazione nell'editor di Cloud Shell.

  3. Specifica il progetto da utilizzare per questa guida al deployment:

    gcloud config set project PROJECT_ID
    

    Se viene visualizzata una finestra di dialogo, fai clic su Autorizza.

Ora hai il codice sorgente per l'applicazione nel tuo di sviluppo software.

Questo repository di origine include i file Cloud Build e Cloud Deploy necessari per la pipeline CI/CD.

Crea repository per il codice sorgente e per i container

In questa sezione configuri un repository in Cloud Source Repositories per il codice sorgente e un repository in Artifact Registry per archiviare i contenitori creati dalla pipeline CI/CD.

  1. Crea un repository in Cloud Source Repositories per archiviare l'origine e collegalo al processo CI/CD:

    gcloud source repos create cicd-sample
    
  2. Assicurati che le configurazioni di Cloud Deploy abbiano come target il progetto corretto:

    sed -i s/project-id-placeholder/$(gcloud config get-value project)/g deploy/*
    git config --global credential.https://source.developers.google.com.helper gcloud.sh
    git remote add google https://source.developers.google.com/p/$(gcloud config get-value project)/r/cicd-sample
    
  3. Esegui il push del codice sorgente nel repository:

    git push --all google
    
  4. Crea un repository di immagini in Artifact Registry:

    gcloud artifacts repositories create cicd-sample-repo \
        --repository-format=Docker \
        --location us-central1
    

Ora hai un repository per il codice sorgente in Cloud Source Repositories e uno per il container di applicazioni in Artifact Registry. Il repository Cloud Source Repositories consente di clonare il codice sorgente e collegarlo alla pipeline CI/CD.

Configura la pipeline CI/CD

In questa sezione, agisci come operatore dell'applicazione e configuri la pipeline CI/CD. La pipeline utilizza Cloud Build per CI e Cloud Deploy per CD. I passaggi della pipeline sono definiti il trigger di Cloud Build.

  1. Crea un bucket Cloud Storage per Cloud Build per archiviare il file artifacts.json (che tiene traccia degli artefatti generati da Skaffold per ogni build):

    gcloud storage buckets create gs://$(gcloud config get-value project)-gceme-artifacts/
    

    Archiviare il file artifacts.json di ogni build in una posizione centrale perché garantisce la tracciabilità e ciò semplifica la risoluzione dei problemi.

  2. Esamina il file cloudbuild.yaml, che definisce Cloud Build ed è già configurata nel repository di origine che hai clonato.

    Questo file definisce l'attivatore invocato ogni volta che viene eseguito un nuovo push al ramo principale del repository del codice sorgente.

    I seguenti passaggi per la pipeline CI/CD sono definiti nel cloudbuild.yaml file:

    • Cloud Build utilizza Skaffold per creare il container dell'applicazione.

    • Cloud Build inserisce il file artifacts.json della build nel nel bucket Cloud Storage.

    • Cloud Build inserisce il contenitore dell'applicazione in Artifact Registry.

    • Cloud Build esegue i test sul contenitore dell'applicazione.

    • Il comando gcloud deploy apply registra i seguenti file con il servizio Cloud Deploy:

      • deploy/pipeline.yaml, ovvero la pipeline di distribuzione
      • deploy/staging.yaml e deploy/prod.yaml, che sono file di destinazione

      Una volta registrati i file, Cloud Deploy crea pipeline e target se non esistono ancora, oppure li ricrea se la configurazione è cambiata. I target sono gli ambienti di gestione temporanea e produzione.

    • Cloud Deploy crea una nuova release per la pipeline di distribuzione.

      Questa release fa riferimento al container dell'applicazione che è stato creato vengono testate nel processo CI.

    • Cloud Deploy esegue il deployment della release nell'ambiente di gestione temporanea.

    La pipeline di distribuzione e i target sono gestiti da Cloud Deploy e sono disaccoppiati dal codice sorgente. Questo disaccoppiamento significa che non è necessario aggiornare la pipeline di importazione e i file di destinazione quando viene apportata una modifica al codice sorgente dell'applicazione.

  3. Crea l'trigger di Cloud Build:

    gcloud beta builds triggers create cloud-source-repositories \
        --name="cicd-sample-main" \
        --repo="cicd-sample" \
        --branch-pattern="main" \
        --build-config="cloudbuild.yaml"
    

    Questo trigger indica a Cloud Build di monitorare il repository di origine e di utilizzare il file cloudbuild.yaml per reagire a eventuali modifiche al repository. Questo trigger viene richiamato ogni volta che viene eseguito un nuovo push al ramo principale.

  4. Vai alla pagina Cloud Build nella console Google Cloud.

    Vai a Cloud Build

    Nota che non sono presenti build per l'applicazione.

A questo punto hai configurato le pipeline CI e CD e creato un trigger sulla ramo principale del repository.

Apporta una modifica all'applicazione nell'area di lavoro per sviluppatori

In questa sezione, agirai come sviluppatore dell'applicazione.

Durante lo sviluppo dell'applicazione, apporti e verifichi le modifiche iterative al utilizzando Cloud Code come area di lavoro di sviluppo:

  • Apporta una modifica all'applicazione.
  • Creare e testare il nuovo codice.
  • Esegui il deployment dell'applicazione nel cluster minikube e verifica le modifiche rivolte agli utenti.
  • Invia la modifica al repository principale.

Quando viene eseguito il commit di questa modifica nel repository principale, Il trigger di Cloud Build avvia la pipeline CI/CD.

Crea, testa ed esegui l'applicazione

In questa sezione imparerai a creare, testare, eseguire il deployment e accedere alla tua applicazione.

Utilizza la stessa istanza di Cloud Shell Editor utilizzata nella sezione precedente. Se hai chiuso l'editor, apri nel browser nell'editor di Cloud Shell ide.cloud.google.com.

  1. Nel terminale, avvia minikube:

    minikube start
    

    minikube configura un cluster Kubernetes locale in Cloud Shell. L'esecuzione di questa configurazione richiede alcuni minuti. Una volta completato, viene eseguito in background sull'istanza di Cloud Shell.

  2. Nel riquadro nella parte inferiore dell'editor di Cloud Shell, seleziona Cloud Code.

  3. Nel riquadro sottile visualizzato tra il terminale e l'editor, seleziona Esegui su Kubernetes.

    Se viene visualizzato il messaggio Use current context (minikube) to run the app?, fai clic su .

    Questo comando compila il codice sorgente ed esegue i test. L'operazione può richiedere alcuni minuti. I test includono i test delle unità e una fase di convalida preconfigurata che verifica le regole impostate per l'ambiente di deployment. Ciò garantisce che riceverai un avviso in caso di problemi di deployment anche mentre stai lavorando di sviluppo software.

    La scheda Output mostra lo stato di avanzamento di Skaffold durante la creazione e il deployment della tua applicazione.

    Tieni aperta questa scheda per tutta la durata di questa sezione.

    Al termine della compilazione e dei test, nella scheda Output viene visualizzato il messaggio Update succeeded e vengono mostrati due URL.

    Durante la creazione e il test dell'app, Cloud Code restituisce in streaming i log e gli URL nella scheda Output. Quando apporti modifiche ed esegui test nel tuo ambiente di sviluppo, puoi vedere dell'app e verifica che funzioni correttamente.

    L'output indica anche Watching for changes..., il che significa che la modalità smartwatch è attivata. Quando Cloud Code è in modalità di monitoraggio, il servizio rileva eventuali modifiche salvate nel repository e ricostruisce e ridistribuisce automaticamente l'app con le modifiche più recenti.

  4. Nel terminale Cloud Code, tieni il puntatore sul primo URL nella di output (http://localhost:8080).

  5. Nella descrizione comando visualizzata, seleziona Apri anteprima web.

    In background, Cloud Code esegue automaticamente il port forwarding traffico al servizio cicd-sample in esecuzione su minikube.

  6. Nel browser, aggiorna la pagina.

    Il numero accanto a Contatore aumenta, per indicare che l'app è a rispondere all'aggiornamento.

    Nel browser, tieni aperta questa pagina per visualizzare l'applicazione man mano che apporti modifiche nell'ambiente locale.

Ora hai creato e testato la tua applicazione nell'ambiente di sviluppo. Hai eseguito il deployment dell'applicazione nel cluster di sviluppo in esecuzione minikube e ha visualizzato il comportamento dell'applicazione rivolto agli utenti.

apporta una modifica

In questa sezione apporti una modifica all'applicazione e visualizzi la modifica man mano che l'app viene eseguita nel cluster di sviluppo.

  1. Nell'editor di Cloud Shell, apri il file index.html.

  2. Cerca la stringa Sample App Info e modificala in sample app info, in modo che il titolo ora utilizzi lettere minuscole.

    Il file viene salvato automaticamente, attivando una ricostruzione del contenitore dell'applicazione.

    Cloud Code rileva la modifica e la esegue di nuovo automaticamente. La La scheda Output mostra Update initiated. L'esecuzione di questo nuovo deployment richiede alcuni minuti.

    Questa funzionalità di rideployment automatico è disponibile per qualsiasi applicazione in esecuzione per un cluster Kubernetes.

  3. Al termine della creazione, apri il browser su cui è installata l'app aprila e aggiorna la pagina.

    Quando aggiorni la pagina, vedrai che il testo ora utilizza lettere minuscole.

Questa configurazione consente il ricaricamento automatico per qualsiasi architettura, con qualsiasi componenti. Quando usi Cloud Code e minikube, tutto ciò che in esecuzione in Kubernetes dispone di questa funzionalità di ricaricamento del codice a caldo.

Puoi eseguire il debug delle applicazioni di cui è stato eseguito il deployment in un cluster Kubernetes in Cloud Code. Questi passaggi non sono trattati in questa guida al deployment, ma per maggiori dettagli, vedi Debug di un'applicazione Kubernetes.

Esegui il commit del codice

Ora che hai apportato una modifica all'applicazione, puoi eseguire il commit del codice.

  1. Configura la tua identità git:

    git config --global user.email "YOU@EXAMPLE.COM"
    git config --global user.name "NAME"
    

    Sostituisci quanto segue:

    • YOU@EXAMPLE.COM: l'indirizzo email collegato al tuo account GitHub.
    • NAME: il nome collegato al tuo account GitHub.
  2. Dal terminale, esegui il commit del codice:

    git add .
    git commit -m "use lowercase for: sample app info"
    

    Non è necessario eseguire il comando git push qui. ma dopo.

Nell'ambiente di sviluppo, hai apportato una modifica all'applicazione, l'hai creata e testata e hai verificato il comportamento di queste modifiche per gli utenti. I test nell'ambiente di sviluppo includono controlli di governance che ti consentono di correggere i problemi che causano problemi nell'ambiente di produzione.

In questa guida al deployment, quando esegui il commit del codice nel repository principale, non vengono sottoposti a revisione del codice. Tuttavia, una revisione del codice o l'approvazione della modifica è un processo consigliato per lo sviluppo del software.

Per ulteriori informazioni sulle best practice per l'approvazione delle modifiche, consulta Semplificazione dell'approvazione delle modifiche.

Esegui il deployment di una modifica in produzione

In questa sezione, agisci come operatore dell'applicazione ed esegui le seguenti operazioni:

  • Attiva la pipeline CI/CD, che esegue il deployment della release in dell'ambiente di gestione temporanea.
  • Promuovi e approva la release in produzione.

Avvia la pipeline CI/CD ed esegui il deployment in gestione temporanea

In questa sezione, avvii la pipeline CI/CD richiamando l'attivatore Cloud Build. Questo trigger viene richiamato ogni volta che viene eseguito il commit di una modifica nel repository principale. Puoi anche avviare il sistema CI con un attivatore manuale.

  1. Nell'editor Cloud Shell, esegui il seguente comando per attivare una compilazione:

    git push google
    

    Questa build include la modifica apportata a cicd-sample.

  2. Torna alla dashboard di Cloud Build e verifica che sia stata creata una build.

  3. Fai clic su In esecuzione: cicd-sample - cicd-sample-main nel log di compilazione a destra e cerca il testo blu che indica l'inizio e la fine di ogni passaggio.

    Il passaggio 0 mostra l'output di skaffold build e skaffold test istruzioni dal file cloudbuild.yaml. Le attività di compilazione e test nel passaggio 0 (la parte CI della pipeline) sono passate, quindi ora vengono eseguite le attività di deployment del passaggio 1 (la parte CD della pipeline).

    Questo passaggio termina con il seguente messaggio:

    Created Cloud Deploy rollout ROLLOUT_NAME in target staging

  4. Apri l'app Pagina delle pipeline di distribuzione di Cloud Deploy e fai clic sulla pipeline cicd-sample delivery.

    Il deployment dell'applicazione viene eseguito in fase temporanea, ma non in produzione.

  5. Verifica che l'applicazione funzioni correttamente nello staging:

    kubectl proxy --port 8001 --context gke_$(gcloud config get-value project)_us-central1_staging
    

    Questo comando configura un proxy kubectl per accedere all'applicazione.

  6. Accedi all'applicazione da Cloud Shell:

    1. Nell'editor di Cloud Shell, apri una nuova scheda del terminale.

    2. Invia una richiesta a localhost per incrementare un contatore:

      curl -s http://localhost:8001/api/v1/namespaces/default/services/cicd-sample:8080/proxy/ | grep -A 1 Counter
      

      Puoi eseguire questo comando più volte e osservare ogni volta l'incremento del valore del contatore.

      Quando visualizzi l'app, noterai che il testo modificato è nella versione dell'applicazione di cui hai eseguito il deployment nell'ambiente di staging.

    3. Chiudi questa seconda scheda.

    4. Nella prima scheda, premi Control+C per interrompere il proxy.

Ora hai invocato l'attivatore Cloud Build per avviare il processo CI, che include la creazione dell'applicazione, il relativo deployment nell'ambiente di staging ed l'esecuzione di test per verificare che l'applicazione funzioni in questo ambiente.

La procedura CI ha esito positivo quando la compilazione e i test del codice vengono superati nell'ambiente di gestione temporanea. Il buon esito del processo CI avvia il sistema CD in Cloud Deploy.

Promuovi la release in produzione

In questa sezione, promuovi la release dalla versione temporanea alla produzione. Il target di produzione è preconfigurato per richiedere l'approvazione, quindi devi approvarlo manualmente.

Per la tua pipeline CI/CD, ti consigliamo di utilizzare una strategia di implementazione che avvii l'implementazione gradualmente prima di eseguire un'implementazione completa in produzione. Il lancio graduale del deployment può semplificare il rilevamento dei problemi e, se necessario, il ripristino di una release precedente.

Per promuovere la release in produzione:

  1. Apri la panoramica delle pipeline di distribuzione Cloud Deploy e seleziona la pipeline cicd-sample.

  2. Promuovi il deployment dalla gestione temporanea alla produzione. A questo scopo, procedi nel seguente modo: seguenti:

    1. Nel diagramma della pipeline nella parte superiore della pagina, fai clic sul pulsante blu Promuovi nella casella di staging.

    2. Nella finestra che si apre, fai clic sul pulsante Promuovi in basso.

    Il deployment non è ancora in esecuzione in produzione. Sta aspettando necessaria l'approvazione manuale.

  3. Approva manualmente il deployment:

    1. Nella visualizzazione della pipeline, fai clic sul pulsante Rivedi tra i di gestione temporanea e produzione.

    2. Nella finestra che si apre, fai clic sul pulsante Rivedi.

    3. Nella finestra successiva, fai clic su Approva.

    4. Torna alla panoramica delle pipeline di distribuzione di Cloud Deploy e seleziona la pipeline cicd-sample.

  4. Dopo la visualizzazione della pipeline, la casella di produzione è verde (ovvero una dell'implementazione), verifica che l'applicazione funzioni in produzione per configurare un proxy kubectl che usi per accedere all'applicazione:

    kubectl proxy --port 8002 --context gke_$(gcloud config get-value project)_us-central1_prod
    
  5. Accedi all'applicazione da Cloud Shell:

    1. Nell'editor di Cloud Shell, apri una nuova scheda del terminale.

    2. Aumenta il contatore:

      curl -s http://localhost:8002/api/v1/namespaces/default/services/cicd-sample:8080/proxy/ | grep -A 1 Counter
      

      Puoi eseguire questo comando più volte e osservare ogni volta l'incremento del valore del contatore.

    3. Chiudi la seconda scheda del terminale.

    4. Nella prima scheda, premi Control+C per interrompere il proxy.

Hai promosso e approvato il deployment di produzione. L'applicazione con la modifica recente è ora in produzione.

Esegui la pulizia

Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate. in questa guida al deployment, eliminare il progetto che contiene le risorse, o mantenere il progetto ed eliminare le singole risorse.

Opzione 1: elimina il progetto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Opzione 2: elimina le singole risorse

  1. Elimina la pipeline di Cloud Deploy:

    gcloud deploy delivery-pipelines delete cicd-sample --region=us-central1 --force
    
  2. Elimina il trigger di Cloud Build:

    gcloud beta builds triggers delete cicd-sample-main
    
  3. Elimina i cluster di staging e di produzione:

    gcloud container clusters delete staging
    
    gcloud container clusters delete prod
    
  4. Elimina il repository in Cloud Source Repositories:

    gcloud source repos delete cicd-sample
    
  5. Elimina i bucket Cloud Storage:

    gcloud storage rm -r gs://$(gcloud config get-value project)-gceme-artifacts/
    
    gcloud storage rm -r gs://$(gcloud config get-value project)_clouddeploy/
    
  6. Elimina il repository in Artifact Registry:

    gcloud artifacts repositories delete cicd-sample-repo \
        --location us-central1
    

Passaggi successivi