Gestisci le risorse del team in tutto il parco risorse

Questa pagina spiega come utilizzare Config Sync e Terraform per creare dinamicamente un ambito di team in un parco risorse di cluster. Config Sync estende le funzionalità gestione dei team del parco risorse per creare e gestire l'infrastruttura e il cluster configurazioni tra i parchi risorse.

Questa guida presuppone che tu abbia già familiarità con la gestione dei team del parco risorse come gli ambiti dei team e gli spazi dei nomi del parco risorse. Per ulteriori informazioni, vedi la panoramica sulla gestione del team del parco risorse.

Per un tutorial end-to-end con configurazioni di esempio, consulta tutorial fleet tenancy nel repository di esempio.

Per un elenco dei campi supportati per Config Sync in Terraform, consulta Documentazione di riferimento Terraform per le funzionalità del parco risorse GKE.

Flusso di lavoro di esempio

Sei un amministratore di piattaforma e vuoi creare risorse in modo dinamico in un parco risorse di cluster in cui team diversi hanno esigenze diverse. Ad esempio, potresti voler applicare NetworkPolicy agli spazi dei nomi del team di backend, ma non a quelli del team Frontend. In questo scenario, la procedura per creare risorse con ambito di team in uno spazio dei nomi è la seguente:

  1. Scegli o crea il parco risorse in cui vuoi gestire le risorse per i team.
  2. Configura la tua fonte di riferimento. La fonte di riferimento contiene NamespaceSelector oggetti che utilizzi per selezionare spazi dei nomi a livello di parco risorse negli ambiti del team e le risorse (ad esempio NetworkPolicy) che vuoi sincronizzare tra questi spazi dei nomi.
  3. Crea la configurazione predefinita a livello di parco risorse per Config Sync. Config Sync utilizza queste impostazioni predefinite per la sincronizzazione dalla fonte attendibile creato nel passaggio precedente. Queste impostazioni di Config Sync si applicano a qualsiasi nuovi cluster creati nel parco risorse.

  4. Crea i cluster nel tuo parco risorse.

  5. Crea gli ambiti e gli spazi dei nomi dei team Frontend e Backend Config Sync può rilevare e riconciliare le risorse nei tuoi spazi dei nomi.

Dopo aver completato questi passaggi, Config Sync crea e applica NetworkPolicy in base a NamespaceSelector agli spazi dei nomi del team di backend. Se modifichi o aggiungi qualsiasi di risorse, Config Sync rileva e applica continuamente eventuali modifiche alla configurazione file, ambiti dei team, spazi dei nomi del parco risorse e membri del parco risorse.

Prezzi

Le funzionalità di Config Sync e di gestione dei team del parco risorse sono disponibili solo per che hanno abilitato GKE Enterprise. Per ulteriori informazioni Per i prezzi di GKE Enterprise, consulta Pagina dei prezzi di GKE.

Prima di iniziare

  1. 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 gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Installa Google Cloud CLI.
  3. Per initialize gcloud CLI, esegui questo comando:

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

  5. Installa Google Cloud CLI.
  6. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  7. 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.

  8. Creare o avere accesso a una fonte attendibile (un repository Git o un'immagine OCI) in cui puoi archiviare i tuoi file di configurazione. Gli esempi in questa guida utilizzano un repository Git.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per creare risorse del team per il tuo parco risorse, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite la ruoli o altri ruoli predefiniti ruoli.

Acquisisci le credenziali utente

Per eseguire i comandi Terraform in questa guida nel tuo esegui il comando seguente acquisire nuove credenziali utente:

gcloud auth application-default login

Configura il tuo parco risorse

In questa sezione creerai il tuo parco risorse e abiliti i servizi richiesti.

Per configurare il tuo parco risorse, completa i seguenti passaggi:

  1. Crea una directory per i file Terraform di configurazione del parco risorse. In questa directory, aggiungi un file main.tf e un file variables.tf.

  2. Nel file variables.tf, aggiungi le seguenti variabili:

    variable "project" {
      type = string
      description = "GCP project ID"
    }

  3. Nel file main.tf, aggiungi le seguenti risorse:

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = ">= 5.16.0"
        }
      }
    }
    
    provider "google" {
      # project variable must be provided at runtime
      project = var.project
    }
    
    # Enable API services
    resource "google_project_service" "services" {
      for_each = toset([
        "gkehub.googleapis.com",
        "container.googleapis.com",
        "connectgateway.googleapis.com",
        "cloudresourcemanager.googleapis.com",
        "iam.googleapis.com",
        "anthos.googleapis.com",
        "anthosconfigmanagement.googleapis.com",
      ])
      service = each.value
      disable_on_destroy = false
    }
    
    # Declare a fleet in the project
    resource "google_gke_hub_fleet" "default" {
      display_name = "demo"
    
      depends_on = [google_project_service.services]
    }
  4. Esporta la variabile PROJECT_ID:

    export TF_VAR_project=PROJECT_ID
    

    Sostituisci PROJECT_ID con l'ID progetto in cui vuoi creare il parco risorse.

  5. Inizializza Terraform nella directory che hai creato:

    terraform init
    
  6. Verifica che le modifiche che proponi con Terraform corrispondano al piano previsto:

    terraform plan
    
  7. Crea il parco risorse, abilita le API e crea l'account di servizio:

    terraform apply
    

    A volte l'attivazione di tutti i servizi può richiedere alcuni minuti.

Configura la tua fonte di riferimento

In questa sezione, aggiungerai i file di configurazione a una fonte attendibile. È necessario un oggetto NamespaceSelector per ogni ambito del team che vuoi utilizzare. Ad esempio, se hai team di frontend e backend, devi creare un NamespaceSelector per ogni team. L'oggetto NamespaceSelector seleziona tutti o alcuni degli spazi dei nomi all'interno di un ambito del team. Puoi aggiungere altre risorse del team alla tua fonte di riferimento, ad esempio NetworkPolicy. Quando crei queste risorse, fai riferimento all'NamespaceSelector in modo che Config Sync possa eseguire il deployment e sincronizzare queste risorse in modo dinamico tra gli spazi dei nomi.

Per impostare la tua fonte di riferimento, completa i seguenti passaggi:

  1. Nella tua fonte attendibile, crea una directory per i file di configurazione che da cui vuoi eseguire la sincronizzazione di Config Sync.

  2. Per ogni team, crea un oggetto NamespaceSelector in la directory di configurazione:

    apiVersion: configmanagement.gke.io/v1
    kind: NamespaceSelector
    metadata:
       name: NAMESPACE_SELECTOR_NAME
    spec:
      mode: dynamic
      selector:
        matchLabels:
          fleet.gke.io/fleet-scope: SCOPE_NAME
    

    Sostituisci quanto segue:

    • NAMESPACE_SELECTOR_NAME: il nome dell'oggetto NamespaceSelector, ad esempio backend-scope.
    • SCOPE_NAME: il nome dell'ambito del team, ad esempio backend.

    Tutti gli spazi dei nomi che fanno parte di uno spazio dei nomi del parco risorse hanno automaticamente l'etichetta fleet.gke.io/fleet-scope: SCOPE_NAME. NamespaceSelector seleziona tutti gli spazi dei nomi del parco risorse di un ambito del team utilizzando la stessa etichetta. Per ulteriori informazioni vedi esempi su come includere o escludere gli spazi dei nomi: Esempi di NamespaceSelector.

  3. Crea gli oggetti che vuoi sincronizzare tra gli spazi dei nomi.

    Per sincronizzare un oggetto solo con un team specifico, imposta la seguente annotazione in di metadati dell'oggetto:

    annotations:
      configmanagement.gke.io/namespace-selector: NAMESPACE_SELECTOR_NAME
    

    Ad esempio, un NetworkPolicy per il team di backend potrebbe assomigliare seguenti:

    apiVersion: networking.k8s.io/v1
    kind: NetworkPolicy
    metadata:
      name: be-deny-all
      annotations:
        configmanagement.gke.io/namespace-selector: backend-scope # Actuate this resource in the namespaces with labels matched by the namespace selector
    spec:
      ingress:
      - from:
        - podSelector: {}
      podSelector:
        matchLabels: null

Crea valori predefiniti a livello di parco risorse per Config Sync

In questa sezione, creerai impostazioni predefinite a livello di parco risorse per Config Sync, che applica la stessa configurazione di Config Sync a tutti i cluster creati nel tuo parco risorse.

Per creare una configurazione predefinita a livello di parco risorse per Config Sync, completa segui questi passaggi:

  1. Crea una directory per i file Terraform di configurazione predefiniti del parco risorse. In questa directory, aggiungi un file main.tf e un file variables.tf.

  2. Nel file variables.tf, aggiungi le seguenti variabili:

    variable "project" {
      type = string
      description = "GCP project ID"
    }

  3. Nel file main.tf, aggiungi la risorsa seguente per configurare le impostazioni di Config Sync:

    git

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = ">=5.16.0"
         }
       }
     }
    
    provider "google" {
      project = var.project
    }
    
    resource "google_gke_hub_feature" "feature" {
      name = "configmanagement"
      location = "global"
      provider = google
      fleet_default_member_config {
        configmanagement {
        version = "VERSION"
     config_sync {
       source_format = "unstructured"
       git {
         sync_repo = "REPO"
         sync_branch = "BRANCH"
         policy_dir = "DIRECTORY"
         secret_type = "SECRET"
            }
          }
        }
      }
    }
    

    Sostituisci quanto segue:

    • VERSION: (facoltativo) il numero di versione di Config Sync. Deve essere impostato sulla versione 1.17.0 o successiva. Se viene lasciato vuoto, viene utilizzata la versione più recente.
    • REPO: l'URL del repository contenente i file di configurazione.
    • BRANCH: il ramo del repository, ad esempio main.
    • DIRECTORY: il percorso all'interno del repository Git che rappresenta il livello superiore del repository che vuoi sincronizzare.
    • SECRET: il tipo di autenticazione del secret.

    Per un elenco completo delle impostazioni supportate nel blocco git di Config Sync, consulta la documentazione di riferimento di Terraform per le funzionalità di GKE Hub.

    OCI

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = ">=5.16.0"
         }
       }
     }
    
    provider "google" {
      project = var.project
    }
    
    resource "google_gke_hub_feature" "feature" {
      name = "configmanagement"
      location = "global"
      provider = google
      fleet_default_member_config {
        configmanagement {
        version = "VERSION"
        config_sync {
        source_format = "unstructured"
        oci {
         sync_repo = "REPO"
         policy_dir = "DIRECTORY"
         secret_type = "SECRET"
         }
        }
        }
      }
    }
    

    Sostituisci quanto segue:

    • VERSION: il numero di versione di Config Sync. Deve essere impostato sulla versione 1.17.0 o successiva. Se viene lasciato vuoto, viene utilizzata la versione più recente.
    • REPO: l'URL del repository di immagini OCI contenente i file di configurazione.
    • DIRECTORY: il percorso assoluto della directory contenente le risorse che vuoi sincronizzare. Lascia vuoto per utilizzare la directory principale.
    • SECRET: il tipo di autenticazione segreto.

    Per un elenco completo delle impostazioni supportate nel blocco oci di Config Sync, consulta la documentazione di riferimento di Terraform per le funzionalità di GKE Hub.

    Ad esempio, il seguente file main.tf configura Config Sync per la sincronizzazione da un repository Git e sincronizza tutti gli oggetti presenti nella directory config:

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = ">= 5.16.0"
        }
      }
    }
    
    provider "google" {
      project = var.project
    }
    
    resource "google_gke_hub_feature" "feature" {
      name = "configmanagement"
      location = "global"
      provider = google
      fleet_default_member_config {
        configmanagement {
          # version = "1.17.0" # Use the default latest version; if specifying a version, it must be at or after 1.17.0
          config_sync {
            source_format = "unstructured"
            git {
              sync_repo = "https://github.com/GoogleCloudPlatform/anthos-config-management-samples"
              sync_branch = "main"
              policy_dir = "fleet-tenancy/config"
              secret_type = "none"
            }
          }
        }
      }
    }
  4. Inizializza Terraform nella directory che hai creato:

    terraform init
    
  5. Verifica che le modifiche che proponi con Terraform corrispondano al piano previsto:

    terraform plan
    
  6. Crea le configurazioni predefinite dei membri del parco risorse:

    terraform apply
    

Crea cluster nel tuo parco risorse

In questa sezione creerai una configurazione di cluster condivisa e quindi creerai cluster nel tuo parco risorse.

Per creare e registrare nuovi cluster nel tuo parco risorse, completa il seguenti passaggi:

  1. Creare una directory per i file Terraform di configurazione del cluster. In questa directory, aggiungi un file main.tf e un file variables.tf.

  2. Nel file variables.tf, aggiungi le seguenti variabili:

    variable "project" {
      type = string
      description = "GCP project ID"
    }

  3. Crea un file cluster.tf contenente i valori predefiniti utilizzati in tutti i tuoi quali gli ID progetto e del parco risorse:

    variable "location" {
      type = string
    }
    
    variable "cluster_name" {
      type = string
    }
    
    data "google_project" "project" {
      provider = google
    }
    
    resource "google_container_cluster" "cluster" {
     provider = google
     name               = var.cluster_name
     location           = var.location
     initial_node_count = 3
     project = data.google_project.project.project_id
     fleet {
       project = data.google_project.project.project_id
     }
     workload_identity_config {
       workload_pool = "${data.google_project.project.project_id}.svc.id.goog"
     }
     deletion_protection = false
    }
    
  4. Nel file main.tf, aggiungi le seguenti risorse:

    terraform {
      required_providers {
        google = {
        source = "hashicorp/google"
        version = ">=5.16.0"
        }
      }
    }
    
    provider "google" {
      project = var.project
    }
    
    module "MODULE_NAME" {
      source = "CLUSTER_CONFIGURATION_FILEPATH"
      cluster_name = "CLUSTER_NAME"
      location="CLUSTER_LOCATION"
    }
    

    Sostituisci quanto segue:

    • MODULE_NAME: il nome che vuoi assegnare al modulo del cluster. MODULE_NAME e CLUSTER_NAME possono essere lo stesso valore, ad esempio us-east-cluster.
    • CLUSTER_CONFIGURATION_FILEPATH: il percorso relativo del file cluster.tf che hai creato.
    • CLUSTER_NAME: il nome del tuo cluster. MODULE_NAME e CLUSTER_NAME possono essere lo stesso valore, ad esempio us-east-cluster.
    • CLUSTER_LOCATION: la località del cluster, ad esempio us-east1.

    Puoi creare tutti i cluster che vuoi. Ad esempio, il seguente file main.tf crea tre cluster in diverse regioni:

    terraform {
      required_providers {
        google = {
          source = "hashicorp/google"
          version = ">= 5.16.0"
        }
      }
    }
    
    provider "google" {
      project = var.project
    }
    
    module "us-west-cluster" {
      source = "./cluster"
      cluster_name = "us-west-cluster"
      location="us-west1-a"
    }
    
    module "us-east-cluster" {
      source = "./cluster"
      cluster_name = "us-east-cluster"
      location="us-east1-b"
    }
    
    module "us-central-cluster" {
      source = "./cluster"
      cluster_name = "us-central-cluster"
      location="us-central1-c"
    }
  5. Inizializza Terraform nella directory che hai creato:

    terraform init
    
  6. Verifica che le modifiche che proponi con Terraform corrispondano al piano previsto:

    terraform plan
    
  7. Crea i cluster:

    terraform apply
    

Configura gli ambiti dei team e gli spazi dei nomi del parco risorse

In questa sezione, creerai gli ambiti dei team e assocerai i tuoi cluster per quegli ambiti. Quindi crei gli spazi dei nomi del parco risorse che ti servono, ad esempio, uno per ogni team, in ogni ambito e Config Sync crea le risorse in tutti gli spazi dei nomi.

Per configurare gli ambiti e gli spazi dei nomi del team, completa i seguenti passaggi:

  1. Crea una directory per i file Terraform di configurazione dell'ambito e dello spazio dei nomi del team. In questa directory, aggiungi un file main.tf e un file variables.tf.

  2. Nel file variables.tf, aggiungi le seguenti variabili:

    variable "project" {
      type = string
      description = "GCP project ID"
    }
    

  3. Nel file main.tf, aggiungi le seguenti risorse:

    1. Aggiungi le informazioni sul fornitore:

      terraform {
        required_providers {
          google = {
            source = "hashicorp/google"
            version = ">=5.16.0"
           }
         }
       }
      
      provider "google" {
        project = var.project
      }
      
    2. Aggiungi la risorsa nell'ambito del team:

      resource "google_gke_hub_scope" "scope" {
        provider = google
        for_each = toset([
          "SCOPE_NAME",
          "SCOPE_NAME_2",
        ])
        scope_id = each.value
      }
      

      Sostituisci quanto segue:

      • SCOPE_NAME: il nome dell'ambito del team, ad esempio backend.
      • SCOPE_NAME_2: un ambito aggiuntivo del team, se ne hai creato uno.

      Puoi aggiungere tutti gli ambiti dei team che ti servono. Quando uno spazio dei nomi del parco risorse nel cluster, allo spazio dei nomi viene automaticamente etichettato fleet.gke.io/fleet-scope: SCOPE_NAME, consentendo Config Sync per selezionare gli spazi dei nomi in base a NamespaceSelector presenti durante la sincronizzazione delle risorse Kubernetes.

      Ad esempio, una risorsa Terraform con ambito del team che include un ambito sia per il team Frontend che per il team di backend potrebbe essere simile al seguente:

      resource "google_gke_hub_scope" "scope" {
        provider = google
        for_each = toset([
          "backend",
          "frontend",
        ])
        scope_id = each.value
      }
    3. Aggiungi un'associazione di membri del parco risorse per ogni che vuoi applicare a un ambito del team:

      resource "google_gke_hub_membership_binding" "membership-binding" {
        provider = google
        for_each = {
          MEMBERSHIP_BINDING_NAME = {
            membership_binding_id = "MEMBERSHIP_BINDING_ID"
            scope = google_gke_hub_scope.scope["SCOPE_NAME"].name
            membership_id = "CLUSTER_NAME"
            location = "CLUSTER_LOCATION"
          }
          MEMBERSHIP_BINDING_NAME_2 = {
            membership_binding_id = "MEMBERSHIP_BINDING_ID_2"
            scope = google_gke_hub_scope.scope["SCOPE_NAME_2"].name
            membership_id = "CLUSTER_NAME_2"
            location = "CLUSTER_LOCATION_2"
          }
        }
        membership_binding_id = each.value.membership_binding_id
        scope = each.value.scope
        membership_id = each.value.membership_id
        location = each.value.location
      
        depends_on = [google_gke_hub_scope.scope]
      }
      

      Sostituisci quanto segue:

      • MEMBERSHIP_BINDING_NAME: il nome dell'associazione delle iscrizioni, ad esempio us-east-backend.
      • MEMBERSIP_BINDING_ID: l'ID di associazione delle iscrizioni. Può essere lo stesso di MEMBERSHIP_BINDING_NAME.
      • SCOPE_NAME: il selettore di etichette che hai assegnato all'ambito del team al momento della creazione di un NamespaceSelector, ad esempio backend.
      • CLUSTER_NAME: il nome del cluster che hai creato quando hai creato i cluster, ad esempio us-east-cluster.
      • CLUSTER_LOCATION: la località del cluster, ad esempio us-east1.

      Devi definire un'associazione di appartenenza al parco risorse per ogni cluster. Se non definisci un ambito del team per un cluster, quest'ultimo non viene creato per quello spazio dei nomi. Ad esempio, se hai tre nelle regioni us-east1, us-west1 e us-central1, ma us-central1 è destinato esclusivamente al team Frontend, la risorsa di associazione degli abbonamenti sono simili ai seguenti:

      resource "google_gke_hub_membership_binding" "membership-binding" {
        provider = google
        for_each = {
          us-east-backend = {
            membership_binding_id = "us-east-backend"
            scope = google_gke_hub_scope.scope["backend"].name
            membership_id = "us-east-cluster"
            location = "us-east1"
          }
          us-west-backend = {
            membership_binding_id = "us-west-backend"
            scope = google_gke_hub_scope.scope["backend"].name
            membership_id = "us-west-cluster"
            location = "us-west1"
          }
          us-east-frontend = {
            membership_binding_id = "us-east-frontend"
            scope = google_gke_hub_scope.scope["frontend"].name
            membership_id = "us-east-cluster"
            location = "us-east1"
          }
          us-west-frontend = {
            membership_binding_id = "us-west-frontend"
            scope = google_gke_hub_scope.scope["frontend"].name
            membership_id = "us-west-cluster"
            location = "us-west1"
          }
          us-central-frontend = {
            membership_binding_id = "us-central-frontend"
            scope = google_gke_hub_scope.scope["frontend"].name
            membership_id = "us-central-cluster"
            location = "us-central1"
          }
        }
      
        membership_binding_id = each.value.membership_binding_id
        scope = each.value.scope
        membership_id = each.value.membership_id
        location = each.value.location
      
        depends_on = [google_gke_hub_scope.scope]
      }
    4. Aggiungi gli eventuali spazi dei nomi che vuoi definire per i tuoi team:

      resource "google_gke_hub_namespace" "fleet_namespace" {
        provider = google
      
        for_each = {
          FLEET_NAMESPACE = {
            scope_id = "SCOPE_NAME"
            scope_namespace_id = "FLEET_NAMESPACE_ID"
            scope = google_gke_hub_scope.scope["SCOPE_NAME"].name
          }
          FLEET_NAMESPACE_2 = {
            scope_id = "SCOPE_NAME"
            scope_namespace_id = "FLEET_NAMESPACE_ID_2"
            scope = google_gke_hub_scope.scope["SCOPE_NAME"].name
          }
      
      }
      
        scope_namespace_id = each.value.scope_namespace_id
        scope_id = each.value.scope_id
        scope = each.value.scope
      
        depends_on = [google_gke_hub_scope.scope]
      }
      

      Sostituisci quanto segue:

      • FLEET_NAMESPACE: il nome che vuoi assegnare allo spazio dei nomi, ad esempio backend-a.
      • SCOPE_NAME: il selettore di etichette che hai assegnato all'ambito del team al momento della creazione di un NamespaceSelector, ad esempio backend.
      • FLEET_NAMESPACE_ID: l'ID dello spazio dei nomi. Può essere lo stesso valore di FLEET_NAMESPACE.

      Ad esempio, se vuoi che sia il team Frontend che Backend due spazi dei nomi ciascuno, la risorsa dello spazio dei nomi del parco risorse potrebbe essere simile alla seguente:

      resource "google_gke_hub_namespace" "fleet_namespace" {
        provider = google
      
        for_each = {
          bookstore = {
            scope_id = "backend"
            scope_namespace_id = "bookstore"
            scope = google_gke_hub_scope.scope["backend"].name
          }
          shoestore = {
            scope_id = "backend"
            scope_namespace_id = "shoestore"
            scope = google_gke_hub_scope.scope["backend"].name
          }
          frontend_a = {
            scope_id = "frontend"
            scope_namespace_id = "frontend-a"
            scope = google_gke_hub_scope.scope["frontend"].name
          }
          frontend_b = {
            scope_id = "frontend"
            scope_namespace_id = "frontend-b"
            scope = google_gke_hub_scope.scope["frontend"].name
          }
        }
      
        scope_namespace_id = each.value.scope_namespace_id
        scope_id = each.value.scope_id
        scope = each.value.scope
      
        depends_on = [google_gke_hub_scope.scope]
      }
  4. Inizializza Terraform nella directory che hai creato:

    terraform init
    
  5. Verifica che le modifiche che proponi con Terraform corrispondano al piano previsto:

    terraform plan
    
  6. Crea gli ambiti e gli spazi dei nomi del parco risorse:

    terraform apply
    

Dopo aver creato ambiti e spazi dei nomi del parco risorse, Config Sync rileva i nuovi spazi dei nomi e relativi ambiti, seleziona le risorse negli spazi dei nomi del parco risorse e le riconcilia con i file di configurazione.

Puoi verificare che le risorse siano applicate al cluster corretto utilizzando nomos status o visitando la Nella scheda Pacchetti di Config Sync della console Google Cloud e impostare il pulsante di opzione Visualizza per su Cluster.

Vai a Pacchetti

Config Sync sincronizza le risorse negli spazi dei nomi in base agli ambiti del team in base alla configurazione archiviata nella fonte attendibile. Ogni volta che aggiungi una nuova risorsa, purché includi l'annotazione NamespaceSelector corretta, Config Sync riconcilia automaticamente la risorsa negli spazi dei nomi dei team.

Se vuoi applicare le impostazioni di Config Sync ai cluster esistenti, consulta le istruzioni per Configurare valori predefiniti a livello di parco risorse nella guida all'installazione di Config Sync.

Passaggi successivi