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
- 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.
-
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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. 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
(
roles/resourcemanager.projectCreator
), which contains theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
Make sure that you have the following role or roles on the project: Kubernetes Engine Admin
Check for the roles
-
In the Google Cloud console, go to the IAM page.
Go to IAM - Select the project.
-
In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.
- For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.
Grant the roles
-
In the Google Cloud console, go to the IAM page.
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.
- Nell'elenco Seleziona un ruolo, seleziona un ruolo.
- Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
- Fai clic su Salva.
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-cluster
nel 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.
- 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-cluster
e fai clic su Installa Config Sync. Nella scheda Impostazioni, dopo qualche minuto dovresti vedere lo stato dics-cluster
come 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-cluster
e 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 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
.- Creazione dello spazio dei nomi:file come
namespace-gamestore.yaml
creano gli spazi dei nomi stessi. - Risorse con ambito cluster:i file che interessano l'intero cluster includono risorse come gli oggetti
ClusterRole
che 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 oggettoRepoSync
indica a Config Sync di sincronizzare le configurazioni per lo spazio dei nomigamestore
da un percorso diverso. In questo esempio, l'oggettoRepoSync
punta alla directoryconfig-sync-quickstart/multirepo/ namespaces/gamestore
all'interno dello stesso repository, ma in uno scenario reale potresti puntare a un repository Git diverso. 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.
- Scopri di più sulla convalida delle configurazioni.
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:
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:
Ora che Config Sync è sincronizzato con un repository, riconcilia continuamente lo stato dei cluster con le configurazioni nel repository.
Visualizzare 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, incluso 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 repositoryroot
, sono separate dalle configurazioni a livello di spazio dei nomi, rappresentate dal repositorynamespaces
. 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:
Il repository dello spazio dei nomi contiene configurazioni specifiche dell'applicazione per lo spazio dei nomi
gamestore
. Ad esempio, il fileconfigmap-inventory.yaml
contiene dati di inventario per l'applicazionegamestore
. Questo tipo di configurazione GitOps consente ai team di sviluppo delle 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
Passaggi successivi
-