Guida rapida: sincronizza le configurazioni da un repository Git

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 di riferimento per le configurazioni dei cluster.

L'utilizzo di Config Sync offre i seguenti vantaggi:

  • Applica la coerenza: aiuta a garantire che tutti i cluster abbiano la stessa configurazione, riducendo il rischio di deriva della configurazione.
  • Migliora la sicurezza: gestisci e controlla centralmente le configurazioni dei cluster, semplificando l'applicazione delle norme di sicurezza.
  • Aumenta la velocità: automatizza l'implementazione delle modifiche alla configurazione, consentendoti di eseguire il deployment delle 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 l'esperienza di utilizzo di Config Sync per gestire i cluster in modo coerente e automatizzato.

Prima di iniziare

  1. Accedi al tuo Google Cloud account. 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.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Assicurati di avere il seguente ruolo o i seguenti ruoli nel progetto: Amministratore Kubernetes Engine

    Controlla i ruoli

    1. Nella Google Cloud console vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Nella colonna Entità, trova tutte le righe che identificano te o un gruppo di cui fai parte. Per scoprire i gruppi di cui fai parte, contatta l' amministratore.

    4. 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

    1. Nella Google Cloud console vai alla pagina IAM.

      Vai a IAM
    2. Seleziona il progetto.
    3. Fai clic su Concedi l'accesso.
    4. Nel campo Nuove entità, inserisci il tuo identificatore dell'utente. In genere si tratta dell'indirizzo email di un Account Google.

    5. Fai clic su Seleziona un ruolo, quindi cerca il ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
    7. Fai clic su Salva.

Crea un cluster

In questa sezione creerai un cluster che potrai utilizzare in questo tutorial. Sebbene 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:

  1. Abilita l'API Google Kubernetes Engine.

    Vai a GKE

  2. Nella Google Cloud console vai alla pagina Kubernetes Engine.

    Vai a Google Kubernetes Engine

  3. Fai clic su Crea.

  4. Nella sezione Autopilot, seleziona Configura.

  5. Nella sezione Informazioni di base sul cluster, inserisci cs-cluster nel campo Nome. Lascia invariati tutti gli altri campi con i valori predefiniti consigliati.

  6. Fai clic su Crea. Viene visualizzata la pagina Cluster Kubernetes. La creazione del cluster richiede alcuni 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 Google Cloud console, completa i seguenti passaggi:

  1. Nella Google Cloud console vai alla pagina Configurazione nella sezione Funzionalità.

    Vai a Configurazione

  2. Fai clic su Installa Config Sync.
  3. Seleziona la versione di Config Sync che vuoi utilizzare.
  4. In Opzioni di installazione, seleziona Installa Config Sync su singoli cluster.
  5. Nella tabella Cluster disponibili, seleziona cs-cluster e fai clic su Installa Config Sync. Nella scheda Impostazioni, dopo alcuni minuti dovresti vedere lo stato di cs-cluster come Attivato.
  6. Nella dashboard di Config Sync, fai clic su Esegui il deployment del pacchetto cluster.
  7. Nella tabella Seleziona i cluster per il deployment del pacchetto, seleziona cs-cluster e fai clic su Continua.
  8. Lascia selezionata l'opzione Pacchetto ospitato su Git e fai clic su Continua.
  9. Nel campo Nome pacchetto, inserisci sample-repository.
  10. Nel campo URL repository, inserisci https://github.com/GoogleCloudPlatform/anthos-config-management-samples.
  11. Nel campo Percorso, inserisci config-sync-quickstart/multirepo/root.
  12. Lascia invariati i valori predefiniti degli altri campi.
  13. Fai clic su Esegui il deployment del pacchetto.

    Dopo alcuni minuti, dovresti vedere Sincronizzato nella colonna Stato di 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 la risorsa è sincronizzata.

(Facoltativo) Esplora il repository di esempio

Le configurazioni applicate al cluster sono definite nel /config-sync-quickstart/multirepo/ repository. Questo esempio mostra una configurazione multi-repository in cui le configurazioni a livello di amministratore del cluster, 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 root vengono in genere gestiti da un amministratore centrale e contengono risorse a livello di cluster, configurazioni degli spazi dei nomi e policy. I repository a livello di spazio dei nomi in genere contengono configurazioni specifiche per i singoli spazi dei nomi e spesso vengono gestiti dai team delle applicazioni.

Di seguito sono riportati alcuni dei tipi di file chiave che potresti archiviare in un repository root:

  • Creazione dello spazio dei nomi: i 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 degli spazi dei nomi: il file chiave in questa configurazione multi-repository è il file reposync-gamestore.yaml. Questo oggetto RepoSync indica a Config Sync di sincronizzare le configurazioni per lo spazio dei nomi gamestore da un percorso diverso. In questo esempio, l'oggetto RepoSync punta alla directory config-sync-quickstart/multirepo/ namespaces/gamestore all'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 i dati di inventario per l'applicazione gamestore. Questo tipo di configurazione GitOps consente ai team delle applicazioni di avere maggiore autonomia sui propri deployment e sulle risorse con ambito spazio dei nomi senza dover modificare il repository root centrale.

Libera spazio

  1. Vai al menu GKE nella Google Cloud console.

    Vai a GKE

  2. Accanto a cs-cluster, fai clic su Azioni, quindi su Elimina.

  3. Quando ti viene chiesto di confermare, fai di nuovo clic su Elimina.

Passaggi successivi