Esegui il deployment delle risorse in un parco risorse
Questo tutorial ti insegna a utilizzare un pacchetto del parco risorse per eseguire il deployment dei manifest delle risorse Kubernetes in un parco risorse di cluster. L'utilizzo di strumenti GitOps come i pacchetti del parco risorse di Config Sync può aiutarti a scalare la gestione della configurazione su un numero elevato di cluster.
In questo tutorial completerai le seguenti attività:
- Connetti un repository Git a Cloud Build
- Crea e registra i cluster in un parco risorse
- Installare Config Sync come impostazione predefinita del parco risorse
- Esegui il deployment delle risorse dal repository al parco risorse di cluster
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE Enterprise, Config Delivery (fleet packages), Cloud Build, Developer Connect APIs:
gcloud services enable anthos.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com -
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the GKE Enterprise, Config Delivery (fleet packages), Cloud Build, Developer Connect APIs:
gcloud services enable anthos.googleapis.com
configdelivery.googleapis.com cloudbuild.googleapis.com developerconnect.googleapis.com - Crea un account GitHub o accedi a uno esistente.
Costi
In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto,
utilizza il calcolatore prezzi.
Connettiti a Git
Il repository Git contiene le risorse di cui vuoi eseguire il deployment in un parco risorse. Per eseguire il deployment di queste risorse con un pacchetto della flotta, devi connettere il repository Git a Cloud Build.
Crea il repository Git
Questo tutorial utilizza GitHub come provider Git. Per creare un nuovo repository GitHub, completa i seguenti passaggi:
Nel browser web, apri GitHub.
Se necessario, accedi al tuo account GitHub. Se hai accesso ad altre organizzazioni o team su GitHub, assicurati di creare il repository con il tuo account personale.
Dalla barra degli strumenti, seleziona Aggiungi add e poi fai clic su Nuovo repository.
Digita
fleet-package-tutorial
come nome del repository.Mantieni selezionata l'opzione Pubblico come visibilità del repository.
Seleziona Crea repository.
Connetti il repository a Cloud Build
Il servizio di pacchetti della flotta di Config Sync utilizza Cloud Build per sincronizzare e recuperare le risorse Kubernetes dal tuo repository Git.
Per connettere il tuo repository GitHub a Cloud Build, completa i seguenti passaggi:
Apri la pagina Cloud Build nella console Google Cloud , quindi seleziona Repository.
Assicurati di trovarti nella pagina Repository di 2ª generazione. Se necessario, seleziona Visualizza i repository (2ª generazione.).
Fai clic su Crea connessione host.
Nel menu Regione, seleziona us-central1 (Iowa) come regione.
Nel campo Nome, digita
fleet-package-quickstart-connection
come nome della connessione.Fai clic su Connetti.
Se è la prima volta che connetti Cloud Build al tuo account GitHub, completa i seguenti passaggi:
- Accetta la richiesta del tuo token OAuth GitHub. Il token è archiviato in Secret Manager per l'utilizzo con la connessione GitHub di Cloud Build. Fai clic su Continua.
- Installa Cloud Build nel tuo repository GitHub. Seleziona Installa in un nuovo account.
- Nella nuova finestra di GitHub che si apre, seleziona l'account GitHub in cui hai creato il fork di Cymbal Bank in precedenza. In un ambiente di produzione, potresti selezionare altri account o repository a cui hai delegato l'accesso.
- Segui le richieste di autenticazione per confermare la tua identità su GitHub.
- Nella finestra GitHub per l'accesso al repository Cloud Build, scegli Solo repository selezionati.
- Dal menu a discesa che elenca i repository, seleziona il tuo repository
fleet-package-tutorial
. - Fai clic su Salva.
Nella pagina Cloud Build della console Google Cloud , fai clic su Collega repository per connettere un nuovo repository Git a Cloud Build.
Nel menu Connessione, seleziona
fleet-package-quickstart-connection
.Nel menu Repository, seleziona il tuo repository
fleet-package-tutorial
.Seleziona Collega.
Configurare il parco risorse
In questa sezione, configuri il parco risorse creando cluster, registrandoli in un parco risorse e installando Config Sync come pacchetto del parco risorse.
Creazione di cluster
Per dimostrare come utilizzare i pacchetti del parco risorse per eseguire il deployment di risorse in più cluster, questo tutorial mostra come creare due cluster.
Per creare i due cluster e registrarli nel parco risorse del tuo progetto:
Crea un cluster GKE:
gcloud container clusters create-auto cluster1 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapid
Sostituisci quanto segue:
PROJECT_ID
con l'ID progetto.REGION
con la regione in cui vuoi creare il cluster, ad esempious-central1
.
Crea un secondo cluster GKE:
gcloud container clusters create-auto cluster2 \ --project=PROJECT_ID \ --region=REGION \ --fleet-project=PROJECT_ID \ --release-channel=rapid
Installare Config Sync come impostazione predefinita del parco risorse
Per utilizzare il servizio di pacchetti del parco risorse, Config Sync deve essere installato su entrambi i cluster. Per installare Config Sync su più cluster contemporaneamente e su tutti i cluster futuri registrati nel parco risorse, completa i seguenti passaggi:
Nella console Google Cloud , vai alla pagina Feature Manager.
Nel riquadro Config Sync, fai clic su Configura.
Fai clic su Personalizza le impostazioni del parco risorse. Nella finestra di dialogo visualizzata, seleziona la versione di Config Sync da installare.
Fai clic su Configura.
Nella finestra di dialogo di conferma Configurazione delle impostazioni della flotta, fai clic su Conferma. Se non hai abilitato Config Sync in precedenza, facendo clic su Conferma viene abilitata anche l'API
anthosconfigmanagement.googleapis.com
.Nella tabella Cluster nel parco risorse, seleziona entrambi i cluster e poi fai clic su Sincronizza con le impostazioni del parco risorse. In questo modo Config Sync viene installato su entrambi i cluster con le impostazioni che hai configurato.
La sincronizzazione dei cluster può richiedere alcuni minuti. Puoi procedere con i passaggi successivi quando Config Sync viene visualizzato come Installato.
Configura un account di servizio per Cloud Build
Per creare il account di servizio e concedere le autorizzazioni richieste a Cloud Build, completa i seguenti passaggi:
Crea l'account di servizio:
gcloud iam service-accounts create "quickstart-service-account"
Concedi al account di servizio l'autorizzazione per recuperare le risorse dal repository Git aggiungendo un binding della policy IAM per il ruolo Publisher bundle di risorse:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/configdelivery.resourceBundlePublisher'
Se richiesto, seleziona
None
come condizione per la policy.Concedi all'account di servizio l'autorizzazione a scrivere i log aggiungendo un binding della policy IAM per il ruolo Writer log:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" \ --role='roles/logging.logWriter'
Se richiesto, seleziona
None
come condizione per la policy.
Eseguire il deployment delle risorse nel parco risorse
In questo tutorial, aggiungi un manifest Kubernetes con un deployment nginx al tuo repository Git, pubblica una release e poi crea un pacchetto della flotta per eseguire il deployment dell'applicazione nginx.
Esegui il commit di un manifest Kubernetes nel repository
Per aggiungere le risorse a GitHub e pubblicare una release, completa i seguenti passaggi:
Nella finestra del browser web del repository GitHub, fai clic su Aggiungi file e poi su Crea nuovo file.
Assegna al file il nome
deployment.yaml
e incolla i seguenti contenuti:apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx spec: containers: - image: nginx:1.14.2 name: nginx ports: - containerPort: 80
Fai clic su Applica modifiche…
Nella finestra di dialogo di conferma, mantieni selezionata l'opzione Esegui il commit direttamente nel ramo
main
e poi fai clic su Esegui il commit delle modifiche.Nella pagina principale del repository, seleziona Releases dalla barra laterale.
Nella parte superiore della pagina, scegli Crea una nuova release.
Seleziona il menu Scegli un tag e digita
v1.0.0
come tag. Fai clic su Crea nuovo tag.Fai clic su Pubblica release.
Esegui il deployment di una risorsa nei cluster con un pacchetto del parco risorse
Per eseguire il deployment della nuova risorsa, crea un nuovo pacchetto della flotta:
Questo pacchetto del parco risorse ha come target tutti i cluster del parco risorse perché non contiene un campo selettore. Ciò significa anche che tutti i cluster futuri aggiunti al parco risorse avranno il deployment di nginx aggiunto automaticamente.
In Cloud Shell, crea un file denominato
fleet-package.yaml
con il seguente contenuto:resourceBundleSelector: cloudBuildRepository: name: projects/PROJECT_ID/locations/us-central1/connections/fleet-package-quickstart-connection/repositories/REPOSITORY_NAME tag: v1.0.0 serviceAccount: projects/PROJECT_ID/serviceAccounts/quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com path: target: fleet: project: projects/PROJECT_ID rolloutStrategy: rolling: maxConcurrent: 1
Sostituisci
REPOSITORY_NAME
con il nome del repository di Cloud Build. Solitamente ha il formatoUSERNAME-REPOSITORY_NAME
.Crea il pacchetto del parco risorse per iniziare l'implementazione:
gcloud alpha container fleet packages create fp-nginx \ --source=fleet-package.yaml \ --project=PROJECT_ID
Verifica che il pacchetto del parco risorse sia stato creato:
gcloud alpha container fleet packages list
Puoi fare clic sul link fornito per visualizzare i log di streaming per il job Cloud Build.
Il pacchetto del parco risorse inizia a implementare le risorse Kubernetes nel tuo parco risorse.
Nella pagina Google Kubernetes Engine della console Google Cloud , vai alla pagina Carichi di lavoro per visualizzare una visualizzazione aggregata dei carichi di lavoro di cui viene eseguito il deployment su tutti i tuoi cluster GKE:
Apri la pagina Carichi di lavoro
Potrebbero essere necessari alcuni minuti prima che i workload diventino disponibili. Potresti anche notare errori di disponibilità mentre Autopilot modifica le richieste di risorse per il nuovo deployment.
Nota come, poiché
maxConcurrent:
è impostato su1
nella definizione del pacchetto del parco risorse, l'API Fleet Package attende chenginx-deployment
sia completamente implementato su un cluster prima di iniziare l'implementazione sul secondo cluster. Se hai modificato la strategia di implementazione impostandola sumaxConcurrent: 2
o su un valore superiore, le risorse verranno implementate in entrambi i cluster contemporaneamente.Dopo alcuni minuti, vedrai due nuovi workload per
nginx-deployment
su entrambi i cluster. Potresti dover aggiornare la pagina.
Puoi continuare a esplorare diverse strategie di deployment con i pacchetti del parco risorse. Ad esempio, puoi aggiungere un nuovo cluster al tuo parco risorse per osservare che il tuo carico di lavoro viene distribuito automaticamente a questo nuovo cluster. Per ulteriori informazioni sulle strategie di deployment e sulle varianti, consulta Eseguire il deployment dei pacchetti per la flotta.
Esegui la pulizia
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il progetto Google Cloud con le risorse.
Per evitare che al tuo account Google Cloud vengano addebitati costi relativi alle risorse utilizzate in questo tutorial, elimina il progetto che hai creato.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Per eliminare il repository, segui questi passaggi:
In una finestra del browser web della tua fork di GitHub di Cymbal Bank, sotto il nome del repository, fai clic su Settings (Impostazioni).
Nella pagina delle impostazioni generali (selezionata per impostazione predefinita), vai alla sezione Zona di pericolo e fai clic su Elimina questo repository.
Fai clic su Voglio eliminare questo repository.
Leggi gli avvisi e fai clic su Ho letto e compreso questi effetti.
Per verificare di eliminare il repository corretto, nel campo di testo digita il nome del repository.
Fai clic su Elimina questo repository.
Passaggi successivi
- Scopri di più sui pacchetti per i parchi risorse.
- Scopri come distribuire i pacchetti del parco risorse.
- Prova il tutorial sull'app Scalable apps tutorial, una serie di tutorial che ti insegna a eseguire il deployment, l'esecuzione e la gestione di ambienti di applicazioni moderne su GKE Enterprise. Include il tutorial Centralizzare la gestione delle modifiche, che illustra come scalare le modifiche alla configurazione con i pacchetti della flotta.