Questa guida rapida mostra come utilizzare Config Sync per implementare un approccio GitOps per la gestione dei cluster Google Kubernetes Engine. Con un flusso di lavoro GitOps, utilizzi un repository Git come unica fonte attendibile per le configurazioni del cluster.
Utilizzando Config Sync, ottieni i seguenti vantaggi:
- Applica la coerenza: contribuisce a garantire che tutti i tuoi cluster abbiano la stessa configurazione, riducendo il rischio di deriva della configurazione.
- Migliora la sicurezza:gestisci ed esegui l'audit delle configurazioni dei cluster a livello centrale, semplificando l'applicazione delle policy di sicurezza.
- Aumenta la velocità:automatizza l'implementazione delle modifiche alla configurazione, consentendoti di implementare le modifiche in modo più rapido e affidabile.
In questo tutorial, creerai un cluster GKE e configurerai Config Sync per sincronizzare i file di configurazione da un repository di esempio. Questo tutorial ti aiuta a capire come funziona Config Sync e ti offre esperienza nell'utilizzo di Config Sync per gestire i tuoi cluster in modo coerente e automatizzato.
Prima di iniziare
- Accedi al tuo account Google Cloud . Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti senza costi per l'esecuzione, il test e il deployment dei workload.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Assicurati di disporre dei seguenti ruoli nel progetto: Amministratore Kubernetes Engine
Controlla i ruoli
-
Nella console Google Cloud vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
-
Nella colonna Entità, trova tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire a quali gruppi appartieni, contatta il tuo amministratore.
- Per tutte le righe che ti specificano o ti includono, controlla la colonna Ruolo per verificare se l'elenco dei ruoli include i ruoli richiesti.
Concedi i ruoli
-
Nella console Google Cloud vai alla pagina IAM.
Vai a IAM - Seleziona il progetto.
- Fai clic su Concedi l'accesso.
-
Nel campo Nuove entità, inserisci il tuo identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.
- Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo successivo.
- Fai clic su Salva.
-
Crea un cluster
In questa sezione creerai un cluster da utilizzare in questo tutorial. Anche se in uno scenario reale probabilmente gestirai più cluster, per semplificare questo tutorial creerai e gestirai un solo cluster.
Per creare un cluster, completa i seguenti passaggi:
Attiva l'API Google Kubernetes Engine.
Nella console Google Cloud , vai alla pagina Kubernetes Engine.
Fai clic su add_box Crea.
Nella sezione Autopilot, seleziona Configura.
Nella sezione Impostazioni di base del cluster, inserisci
cs-clusternel campo Nome. Lascia invariati tutti gli altri campi con i valori predefiniti consigliati.Fai clic su Crea. Viene visualizzata la pagina Cluster Kubernetes. La creazione del cluster richiede diversi minuti. Quando vedi un segno di spunta verde nella colonna Stato accanto al cluster, significa che è pronto.
Configura il cluster
Ora che hai un cluster, puoi configurare Config Sync per sincronizzare i file di configurazione da un repository Git.
Per configurare Config Sync nella console Google Cloud , completa i seguenti passaggi:
- Nella console Google Cloud , vai alla pagina Config nella sezione Funzionalità.
- Fai clic su add Installa Config Sync.
- Seleziona la versione di Config Sync che vuoi utilizzare.
- Nella sezione Opzioni di installazione, seleziona Installa Config Sync su singoli cluster.
- Nella tabella
Cluster disponibili, seleziona
cs-clustere fai clic su Installa Config Sync. Nella scheda Impostazioni, dopo qualche minuto dovresti vedere lo stato dics-clustercome Attivato. - Nella dashboard di Config Sync, fai clic su Esegui il deployment del pacchetto del cluster.
- Nella tabella Seleziona cluster per il deployment del pacchetto, seleziona
cs-clustere poi fai clic su Continua. - Lascia selezionata l'opzione Pacchetto ospitato su Git e fai clic su Continua.
- Nel campo Nome pacchetto, inserisci
sample-repository. - Nel campo Repository URL (URL repository), inserisci
https://github.com/GoogleCloudPlatform/anthos-config-management-samples. - Nel campo Percorso, inserisci
config-sync-quickstart/multirepo/root. - Lascia invariati i valori predefiniti degli altri campi.
Fai clic su Esegui il deployment del pacchetto.
Dopo qualche minuto, dovresti vedere Sincronizzato nella colonna Stato sincronizzazione per
cs-cluster.
Ora che Config Sync è sincronizzato con un repository, riconcilia continuamente lo stato dei cluster con le configurazioni nel repository.
Visualizza i dettagli del pacchetto
Per visualizzare gli oggetti gestiti da Config Sync, vai alla scheda Pacchetti e fai clic su cs-cluster. La pagina dei dettagli del pacchetto fornisce una panoramica di tutte le risorse sincronizzate, inclusi il tipo di risorsa e lo spazio dei nomi in cui viene sincronizzata.
(Facoltativo) Esplora il repository di esempio
Le configurazioni applicate al cluster sono definite nel repository
/config-sync-quickstart/multirepo/. Questo esempio mostra una configurazione multirepository in cui
le configurazioni a livello di cluster-admin, rappresentate dal repository root, sono
separate dalle configurazioni a livello di spazio dei nomi, rappresentate dal repository namespaces. In questo esempio, queste configurazioni sono suddivise in cartelle diverse. In uno scenario reale, potresti archiviare le configurazioni in due repository diversi con autorizzazioni di accesso diverse.
A livello generale, i repository a livello di cluster o radice sono in genere gestiti da un amministratore centrale e contengono risorse a livello di cluster, configurazioni e criteri dello spazio dei nomi. I repository a livello di spazio dei nomi in genere contengono configurazioni specifiche per i singoli spazi dei nomi e spesso sono gestiti da team di applicazioni.
Alcuni dei tipi di file chiave che potresti archiviare in un repository principale includono i seguenti:
- Creazione dello spazio dei nomi:file come
namespace-gamestore.yamlcreano gli spazi dei nomi stessi. - Risorse con ambito cluster:i file che interessano l'intero cluster includono risorse come gli oggetti
ClusterRoleche aggiungono ruoli a livello di cluster che concedono autorizzazioni. - Connessione dei repository dello spazio dei nomi:il file di chiavi in questa configurazione
multi-repository è il file
reposync-gamestore.yaml. Questo oggettoRepoSyncindica a Config Sync di sincronizzare le configurazioni per lo spazio dei nomigamestoreda un percorso diverso. In questo esempio, l'oggettoRepoSyncpunta alla directoryconfig-sync-quickstart/multirepo/ namespaces/gamestoreall'interno dello stesso repository, ma in uno scenario reale potresti puntare a un repository Git diverso.
Il repository dello spazio dei nomi contiene configurazioni specifiche dell'applicazione per lo spazio dei nomi gamestore. Ad esempio, il file configmap-inventory.yaml contiene
dati di inventario per l'applicazione gamestore. Questo tipo di configurazione GitOps
consente ai team di applicazioni di avere maggiore autonomia sui propri deployment e
sulle risorse con ambito spazio dei nomi senza dover modificare il repository
root centrale.
Esegui la pulizia
Vai al menu GKE nella console Google Cloud .
Accanto a
cs-cluster, fai clic su more_vert Azioni e poi su delete Elimina.Quando ti viene chiesto di confermare, fai di nuovo clic su Elimina.
Passaggi successivi
- Scopri di più sulla convalida delle configurazioni.