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

  1. 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.
  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 (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 (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. Make sure that you have the following role or roles on the project: Kubernetes Engine Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. 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.

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

    1. In the Google Cloud console, go to the IAM page.

      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. Nell'elenco Seleziona un ruolo, seleziona un ruolo.
    6. Per concedere altri ruoli, fai clic su Aggiungi un altro ruolo e aggiungi ogni ruolo aggiuntivo.
    7. Fai clic su Salva.
    8. 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:

      1. Attiva l'API Google Kubernetes Engine.

        Vai a GKE

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

        Vai a Google Kubernetes Engine

      3. Fai clic su Crea.

      4. Nella sezione Autopilot, seleziona Configura.

      5. Nella sezione Impostazioni di base del 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 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:

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

        Vai a Configurazione

      2. Fai clic su Installa Config Sync.
      3. Seleziona la versione di Config Sync che vuoi utilizzare.
      4. Nella sezione 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 qualche minuto dovresti vedere lo stato di cs-cluster come Attivato.
      6. Nella dashboard di Config Sync, fai clic su Esegui il deployment del pacchetto del cluster.
      7. Nella tabella Seleziona cluster per il deployment del pacchetto, seleziona cs-cluster e poi 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 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.

      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 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.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 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 dati di inventario per l'applicazione gamestore. 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

      1. Vai al menu GKE nella console Google Cloud .

        Vai a GKE

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

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

      Passaggi successivi