Versione 1.13

Configurazione del progetto e del cluster GKE in autonomia

L'installazione di Anthos Service Mesh utilizzando asmcli può configurare il tuo progetto e il tuo cluster GKE su Google Cloud se includi il flag --enable_all o i flag di abilitazione più granulari. Se preferisci eseguire la configurazione autonomamente anziché fare in modo che asmcli apporti le modifiche, segui i passaggi descritti in questa pagina.

Se hai già installato una versione precedente di Anthos Service Mesh, non devi apportare modifiche al tuo progetto o cluster prima di utilizzare asmcli per eseguire l'upgrade alla versione più recente di Anthos Service Mesh.

Per impostazione predefinita, asmcli non installa istio-ingressgateway. Ti consigliamo di eseguire il deployment del piano di controllo e dei gateway separatamente. Anthos Service Mesh supporta l'inserimento automatico per i deployment del gateway, semplificando gli upgrade di Anthos Service Mesh. Dopo aver eseguito l'upgrade di Anthos Service Mesh, riavvii i gateway proprio come i tuoi servizi per scegliere una nuova configurazione del piano di controllo. Per ulteriori informazioni, vedi Installare ed eseguire l'upgrade dei gateway.

Prima di iniziare

Configura il progetto

  1. Ottieni l'ID e il numero del progetto in cui è stato creato il cluster.

    gcloud

    Esegui questo comando:

    gcloud projects list
    

    Console

    1. Vai alla pagina Dashboard in Cloud Console.

      Vai alla pagina Dashboard

    2. Fai clic sull'elenco a discesa nella parte superiore della pagina. Nella finestra Seleziona da, seleziona il tuo progetto.

      L'ID e il numero del progetto sono visualizzati nella scheda Informazioni sul progetto della dashboard del progetto.

  2. Crea le seguenti variabili di ambiente:

    • Imposta il pool del carico di lavoro utilizzando l'ID progetto:

      export WORKLOAD_POOL=PROJECT_ID.svc.id.goog
      
    • Imposta l'ID mesh utilizzando il numero del progetto:

      export MESH_ID="proj-PROJECT_NUMBER"
      
  3. Imposta i ruoli IAM necessari. Se sei un proprietario del progetto, disponi di tutte le autorizzazioni necessarie per completare l'installazione. Se non sei un proprietario del progetto, devi bisogno di qualcuno che ti conceda i seguenti ruoli IAM specifici. Nel comando seguente, sostituisci PROJECT_ID con l'ID progetto del passaggio precedente e GCP_EMAIL_ADDRESS con l'account che utilizzi per accedere a Google Cloud.

    ROLES=(
    'roles/servicemanagement.admin' \
    'roles/serviceusage.serviceUsageAdmin' \
    'roles/meshconfig.admin' \
    'roles/compute.admin' \
    'roles/container.admin' \
    'roles/resourcemanager.projectIamAdmin' \
    'roles/iam.serviceAccountAdmin' \
    'roles/iam.serviceAccountKeyAdmin' \
    'roles/gkehub.admin')
    for role in "${ROLES[@]}"
    do
      gcloud projects add-iam-policy-binding PROJECT_ID \
        --member "user:GCP_EMAIL_ADDRESS" \
        --role="$role"
    done
    

    Se includi il flag --enable_all o --enable_gcp_iam_roles quando esegui asmcli, questo imposta i ruoli IAM richiesti per te.

  4. Abilita le API di Google richieste.

    gcloud services enable \
        --project=PROJECT_ID \
        mesh.googleapis.com
    

    Oltre a mesh.googleapis.com, questo comando abilita anche le seguenti API:

    • meshconfig.googleapis.com
    • meshca.googleapis.com
    • container.googleapis.com
    • gkehub.googleapis.com
    • monitoring.googleapis.com
    • stackdriver.googleapis.com
    • opsconfigmonitoring.googleapis.com
    • iam.googleapis.com
    • iamcredentials.googleapis.com
    • bigquery.googleapis.com
    • bigquerystorage.googleapis.com
    • compute.googleapis.com
    • oslogin.googleapis.com
    • containerregistry.googleapis.com
    • pubsub.googleapis.com
    • storage-api.googleapis.com
    • gkeconnect.googleapis.com
    • multiclustermetering.googleapis.com
    • logging.googleapis.com
    • connectgateway.googleapis.com

    L'abilitazione delle API può richiedere un minuto o più. Quando le API sono abilitate, viene visualizzato un output simile al seguente:

    Operation "operations/acf.601db672-88e6-4f98-8ceb-aa3b5725533c" finished
    successfully.
    

    Se includi il flag --enable_all o --enable_apis quando esegui asmcli, verranno abilitate le API richieste.

Configurazione del cluster

Se includi il flag --enable_all o uno dei flag di attivazione più granulari, asmcli configura il cluster per te.

  1. Imposta la zona o l'area geografica predefinita per l'interfaccia a riga di comando di Google Cloud. Se non imposti l'impostazione predefinita qui, assicurati di specificare l'opzione --zone o --region nei comandi gcloud container clusters di questa pagina.

    • Se hai un cluster a zona singola, imposta la zona predefinita:

      gcloud config set compute/zone CLUSTER_LOCATION
      
    • Se hai un cluster a livello di area geografica, imposta l'area geografica predefinita:

      gcloud config set compute/region CLUSTER_LOCATION
      
  2. Imposta l'mesh_id etichetta nel cluster. Se il tuo cluster ha già etichette che vuoi mantenere, devi includerle quando aggiungi l'etichetta mesh_id.

    1. Per verificare se il cluster ha etichette esistenti:

      gcloud container clusters describe CLUSTER_NAME \
          --project PROJECT_ID
      

      Cerca il campo resourceLabels nell'output. Ogni etichetta viene memorizzata in una riga separata nel campo resourceLabels, ad esempio:

      resourceLabels:
        csm: ''
        env: dev
        release: stable

      Per comodità, puoi aggiungere le etichette a una variabile di ambiente. Nel seguente, sostituisci YOUR_EXISTING_LABELS con un elenco separato da virgole delle etichette esistenti nel cluster nel formato KEY=VALUE, ad esempio: env=dev,release=stable

      export EXISTING_LABELS="YOUR_EXISTING_LABELS"
      
    2. Imposta l'etichetta mesh_id:

      • Se il cluster ha già etichette che vuoi mantenere, aggiorna il cluster con il mesh_id e le etichette esistenti:

        gcloud container clusters update CLUSTER_NAME \
            --project PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID},${EXISTING_LABELS}
        
      • Se il tuo cluster non ha etichette esistenti, aggiornalo utilizzando solo l'etichetta mesh_id:

        gcloud container clusters update CLUSTER_NAME \
            --project=PROJECT_ID \
            --update-labels=mesh_id=${MESH_ID}
        
  3. Abilita Workload Identity:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --workload-pool=${WORKLOAD_POOL}
    

    L'attivazione di Workload Identity può richiedere da 10 a 15 minuti.

  4. Inizializza il tuo progetto per prepararti all'installazione. Tra le altre cose, questo comando crea un account di servizio che consente ai componenti del piano dati, ad esempio il proxy sidecar, di accedere in modo sicuro ai dati e alle risorse del progetto. Nel comando seguente, sostituisci FLEET_PROJECT_ID con il progetto host della flotta

    curl --request POST  \
     --header "Authorization: Bearer $(gcloud auth print-access-token)" \
     --header "Content-Type: application/json" \
     --data '{"workloadIdentityPools":["FLEET_PROJECT_ID.hub.id.goog","FLEET_PROJECT_ID.svc.id.goog","PROJECT_ID.svc.id.goog"]}' \
     "https://meshconfig.googleapis.com/v1alpha1/projects/PROJECT_ID:initialize"
    

    Il comando risponde con parentesi graffe vuote: {}

  5. Abilita Cloud Monitoring e Cloud Logging su GKE:

    gcloud container clusters update CLUSTER_NAME \
        --project=PROJECT_ID \
        --enable-stackdriver-kubernetes
    

Il tuo progetto e il tuo cluster sono ora pronti per una nuova installazione utilizzando asmcli.

Passaggi successivi