Installa Cloud Service Mesh per i workload Kubernetes all'esterno di Google Cloud

Questa pagina spiega come installare Cloud Service Mesh in-cluster non gestito per i workload Kubernetes esterni a Google Cloud:

  • Esegui asmcli per eseguire una nuova installazione di Cloud Service Mesh 1.28.5-asm.12.
  • (Facoltativo) Esegui il deployment di un gateway in entrata.
  • Esegui il deployment o il redeploy dei tuoi carichi di lavoro per inserire i proxy sidecar.

Se devi installare Cloud Service Mesh non gestito in-cluster con un control plane istiod su GKE, consulta Installare Cloud Service Mesh in-cluster su Google Cloud. Tieni presente che per i carichi di lavoro Kubernetes su Google Cloud, ti consigliamo di eseguire il provisioning di un control plane gestito

Per istruzioni su come preparare un'installazione offline di Cloud Service Mesh, consulta Preparare un'installazione offline di Cloud Service Mesh. Dovrai specificare le opzioni --offline e --output_dir quando esegui asmcli install.

Limitazioni

Nota. Vi sono delle limitazioni:

  • Per utilizzare Cloud Service Mesh, tutti i cluster Cloud Service Mesh per un mesh devono essere registrati nello stesso parco risorse in qualsiasi momento. Gli altri cluster nel progetto di un cluster Cloud Service Mesh non devono essere registrati in un parco risorse diverso.

  • Lo strumento asmcli deve avere accesso all'endpoint Google Kubernetes Engine (GKE). Puoi configurare l'accesso tramite un server "jump", ad esempio una VM Compute Engine all'interno di Virtual Private Cloud (VPC) che fornisce un accesso specifico.

Prima di iniziare

Prima di iniziare, assicurati di:

Ruoli richiesti per installare Cloud Service Mesh nel cluster

La tabella seguente descrive i ruoli necessari per installare Cloud Service Mesh in-cluster.

Nome del ruolo ID ruolo Concedi la posizione Descrizione
Amministratore GKE Hub roles/gkehub.admin Progetto del parco risorse Accesso completo a GKE Hub e alle risorse correlate.
Kubernetes Engine Admin roles/container.admin Progetto cluster. Tieni presente che questo ruolo deve essere concesso sia nel progetto del parco risorse sia in quello del cluster per i binding tra progetti. Fornisce l'accesso alla gestione completa dei cluster di container e dei relativi oggetti API di Kubernetes.
Mesh Config Admin roles/meshconfig.admin Progetto del parco risorse e del cluster Fornisce le autorizzazioni necessarie per inizializzare i componenti gestiti di Cloud Service Mesh, come il control plane gestito e l'autorizzazione di backend che consente ai workload di comunicare con Stackdriver senza che ognuno venga autorizzato individualmente (sia per i control plane gestiti che per quelli in-cluster).
Amministratore IAM progetto roles/resourcemanager.projectIamAdmin Progetto cluster Fornisce le autorizzazioni per amministrare le policy IAM sui progetti.
Amministratore account di servizio roles/iam.serviceAccountAdmin Progetto del parco risorse Autenticati come account di servizio.
Amministratore Service Management roles/servicemanagement.admin Progetto del parco risorse Controllo completo delle risorse Google Service Management.
Amministratore Service Usage roles/serviceusage.serviceUsageAdmin Progetto del parco risorse Può abilitare, disabilitare e analizzare gli stati dei servizi, analizzare le operazioni e utilizzare la quota e la fatturazione per un progetto consumer.(Nota 1)
Amministratore del servizio CA Beta roles/privateca.admin Progetto del parco risorse Accesso completo a tutte le risorse del servizio CA. (Nota 2)

Note:

  1. Amministratore utilizzo servizi: questo ruolo è necessario come prerequisito per abilitare l'API mesh.googleapis.com durante il provisioning iniziale di Cloud Service Mesh gestito.
  2. Amministratore del servizio CA: questo ruolo è necessario solo se esegui l'integrazione con il servizio CA.

Installa Cloud Service Mesh

Di seguito viene descritto come installare Cloud Service Mesh:

  1. Esegui asmcli install per installare il control plane in-cluster su un singolo cluster. Per esempi di righe di comando, consulta le sezioni seguenti. Gli esempi contengono sia argomenti obbligatori sia argomenti facoltativi che potresti trovare utili. Ti consigliamo di specificare sempre l'argomento output_dir in modo da poter individuare gateway ed strumenti di esempio come istioctl. Consulta la barra di navigazione a destra per un elenco degli esempi.

  2. (Facoltativo) Installa un gateway in entrata. Per impostazione predefinita, asmcli non installa istio-ingressgateway. Ti consigliamo di eseguire il deployment e gestire separatamente il control plane e i gateway. Se hai bisogno dell'istio-ingressgateway predefinito installato con il control plane in-cluster, includi l'argomento --option legacy-default-ingressgateway.

  3. Per completare la configurazione di Cloud Service Mesh, devi abilitare l'inserimento automatico di sidecar e eseguire il deployment o il redeploy dei workload.

  4. Se stai installando Cloud Service Mesh su più di un cluster, esegui asmcli install su ogni cluster. Quando esegui asmcli install, assicurati di utilizzare lo stesso FLEET_PROJECT_ID per ogni cluster. Dopo aver installato Cloud Service Mesh, consulta le istruzioni per configurare un mesh multi-cluster off Google Cloud.

  5. Se i cluster si trovano su reti diverse (come in modalità isolata), devi passare un nome di rete univoco a asmcli utilizzando il flag --network_id.

Installare le funzionalità predefinite e Mesh CA

Questa sezione mostra come eseguire asmcli per installare Cloud Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e abilitare l'autorità di certificazione Cloud Service Mesh come autorità di certificazione.

On-premise

Esegui i seguenti comandi su Google Distributed Cloud (solo software) per VMware o Google Distributed Cloud (solo software) per bare metal per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. asmcliconfigura l'autorità di certificazione Cloud Service Mesh in modo che utilizzi l'identità dei workload del parco risorse

Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

AWS

Esegui i seguenti comandi su GKE su AWS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. asmcliconfigura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità del workload del parco risorse.

Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

Azure

Esegui questi comandi su GKE su Azure per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca mesh_ca
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. asmcliconfigura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità del workload del parco risorse.

Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

Amazon EKS

Esegui questi comandi su Amazon EKS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --option attached-cluster Modifica l'utilità di firma predefinita in istiod.
    • --network_id Se stai configurando una mesh multirete, imposta --network_id su un valore univoco per ogni cluster nella mesh.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. asmcliconfigura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità del workload del parco risorse.

Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

Microsoft AKS

Esegui questi comandi su Microsoft AKS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --option attached-cluster \
      --network_id default \
      --ca mesh_ca
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Consente la registrazione con GKE Fleet.
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --option attached-cluster Modifica l'utilità di firma predefinita in istiod.
    • --network_id Se stai configurando una mesh multirete, imposta --network_id su un valore univoco per ogni cluster nella mesh.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. asmcliconfigura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità del workload del parco risorse.

Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

Installa le funzionalità predefinite e il servizio autorità di certificazione (CA)

Questa sezione mostra come eseguire asmcli per installare Cloud Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e abilitare CA Service come autorità di certificazione.

Oltre all'autorità di certificazione Cloud Service Mesh, puoi configurare Cloud Service Mesh in modo che utilizzi Certificate Authority Service. Questa guida ti offre l'opportunità di stabilire l'integrazione con Certificate Authority Service, il che è consigliato per i seguenti casi d'uso:

  • Se hai bisogno di autorità di certificazione diverse per firmare i certificati dei workload su cluster diversi.
  • Se devi eseguire il backup delle chiavi di firma in un Cloud HSM.
  • Se operi in un settore altamente regolamentato e sei soggetto a conformità.
  • Se vuoi concatenare la CA Cloud Service Mesh a un certificato radice aziendale personalizzato per firmare i certificati dei workload.

Il costo dell'autorità di certificazione Cloud Service Mesh è incluso nei prezzi di Cloud Service Mesh. Certificate Authority Service non è incluso nel prezzo base di Cloud Service Mesh e viene addebitato separatamente. Inoltre, Certificate Authority Service include uno SLA esplicito, mentre l'autorità di certificazione Cloud Service Mesh non lo include.

Configura CA Service

  1. Crea il pool di CA nel livello DevOps e nella stessa regione del cluster a cui serve per evitare problemi di latenza eccessiva o potenziali interruzioni tra regioni. Per saperne di più, vedi Livelli ottimizzati per il carico di lavoro.
  2. Crea la CA per avere almeno un'autorità di certificazione attiva nel pool di CA nello stesso progetto del cluster GKE. Utilizza le CA subordinate per firmare i certificati dei workload Cloud Service Mesh. Prendi nota del pool di CA corrispondente alla CA subordinata.
  3. Se è destinato a gestire solo i certificati per i workload Cloud Service Mesh, configura il seguente criterio di emissione per il pool di CA:

    policy.yaml

    baselineValues:
      keyUsage:
        baseKeyUsage:
          digitalSignature: true
          keyEncipherment: true
        extendedKeyUsage:
          serverAuth: true
          clientAuth: true
      caOptions:
        isCa: false
    identityConstraints:
      allowSubjectPassthrough: false
      allowSubjectAltNamesPassthrough: true
      celExpression:
        expression: subject_alt_names.all(san, san.type == URI && san.value.startsWith("spiffe://PROJECT_ID.svc.id.goog/ns/") )
    
  4. Per aggiornare la policy di emissione del pool di CA, utilizza il seguente comando:

    gcloud privateca pools update CA_POOL --location ca_region --issuance-policy policy.yaml
    

    Per informazioni sull'impostazione di una policy su un pool, vedi Utilizzare una policy di emissione dei certificati.

  5. Se utilizzi un modello di certificato, configuralo ora. Per saperne di più, segui la guida al servizio CA per i certificati di identità del workload. Assicurati che il modello di certificato sia creato nella stessa regione del pool di CA. Se esistono più regioni per i pool di CA, crea un modello di certificato per regione.

Configura Cloud Service Mesh per l'utilizzo di Certificate Authority Service

Esegui i seguenti comandi su Google Distributed Cloud (solo software) per VMware o Google Distributed Cloud (solo software) per bare metal per installare il control plane con le funzionalità predefinite e Certificate Authority Service. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --kubeconfig KUBECONFIG_FILE \
      --fleet_id FLEET_PROJECT_ID \
      --output_dir DIR_PATH \
      --enable_all \
      --ca gcp_cas \
      --platform multicloud \
      --ca_pool  projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca gcp_cas Utilizza Certificate Authority Service come autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa tempi di inattività. asmcliconfigura Certificate Authority Service in modo che utilizzi l'identità del workload del parco risorse
    • --ca_pool L'identificatore completo del pool di CA di Certificate Authority Service. Se utilizzi un modello di certificato, aggiungi l'ID modello separato da :. Ad esempio:
        --ca_pool projects/CA_POOL_PROJECT_ID/locations/ca_region/caPools/CA_POOL:projects/CA_POOL_PROJECT_ID/locations/ca_region/certificateTemplates/CERT_TEMPLATE_ID
        

    Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

Installa le funzionalità predefinite con Istio CA

Questa sezione spiega come:

  • Genera certificati e chiavi per Istio CA che Cloud Service Mesh utilizza per firmare i tuoi workload.
  • Esegui asmcli per installare Cloud Service Mesh con le funzionalità predefinite e abilitare Istio CA.

Per impostazione predefinita, gli ambienti che installano Cloud Service Mesh con Istio CA inviano le metriche a Prometheus. Se vuoi utilizzare le dashboard di Cloud Service Mesh, devi abilitare Stackdriver. Per maggiori informazioni, vedi Installazione con funzionalità opzionali.

Per una maggiore sicurezza, ti consigliamo vivamente di mantenere una CA radice offline e di utilizzare le CA subordinate per emettere certificati per ogni cluster. Per ulteriori informazioni, consulta Inserire i certificati CA. In questa configurazione, tutti i carichi di lavoro nel mesh di servizi utilizzano la stessa autorità di certificazione (CA) radice. Ogni CA Cloud Service Mesh utilizza una chiave e un certificato di firma della CA intermedia, firmati dalla CA radice. Quando esistono più CA all'interno di una mesh, viene stabilita una gerarchia di trust tra le CA. Puoi ripetere questi passaggi per eseguire il provisioning di certificati e chiavi per un numero qualsiasi di autorità di certificazione.

Il Makefile per generare i certificati si trova nella sottodirectory istio-1.28.5-asm.12 della directory --output_dir che hai specificato nel comando asmcli validate. Se non hai eseguito asmcli validate o non hai la directory scaricata localmente, puoi ottenere il Makefile scaricando il file di installazione di Cloud Service Mesh ed estraendo i contenuti.

  1. Passa alla directory istio-1.28.5-asm.12.

  2. Crea una directory per i certificati e le chiavi:

    mkdir -p certs && \
    pushd certs
  3. Genera un certificato radice e una chiave:

    make -f ../tools/certs/Makefile.selfsigned.mk root-ca
    

    Vengono generati i seguenti file:

    • root-cert.pem: il certificato radice
    • root-key.pem: la chiave root
    • root-ca.conf: la configurazione di openssl per generare il certificato radice
    • root-cert.csr: la CSR per il certificato radice
  4. Genera una chiave e un certificato intermedio:

    make -f ../tools/certs/Makefile.selfsigned.mk cluster1-cacerts

    Vengono generati i seguenti file in una directory denominata cluster1:

    • ca-cert.pem: i certificati intermedi
    • ca-key.pem: la chiave intermedia
    • cert-chain.pem: la catena di certificati utilizzata da istiod
    • root-cert.pem: il certificato radice

    Se esegui questi passaggi utilizzando un computer offline, copia la directory generata su un computer con accesso ai cluster.

  5. Torna alla directory precedente:

    popd
  6. Esegui asmcli per installare una mesh utilizzando Istio CA:

    On-premise

    Esegui i seguenti comandi su Google Distributed Cloud (solo software) per VMware o Google Distributed Cloud (solo software) per bare metal per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i valori nei segnaposto forniti.

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio
      • --ca_key La chiave del certificato intermedio
      • --root_cert Il certificato radice
      • --cert_chain La catena di certificati

    AWS

    Esegui questi comandi su GKE su AWS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i valori nei segnaposto forniti. Puoi scegliere di attivare l'ingresso per la subnet pubblica o quella privata.

    Pubblico

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio.
      • --ca_key La chiave del certificato intermedio.
      • --root_cert Il certificato radice.
      • --cert_chain La catena di certificati.

    Privato

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Salva il seguente YAML in un file denominato istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio.
      • --ca_key La chiave del certificato intermedio.
      • --root_cert Il certificato radice.
      • --cert_chain La catena di certificati.
      • --custom_overlay Il nome del file di overlay creato. Per saperne di più sui file di overlay, consulta Attivazione delle funzionalità opzionali sul control plane in-cluster.

    Azure

    Esegui i seguenti comandi su GKE su Azure per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i tuoi valori nei segnaposto forniti. Puoi scegliere di abilitare l'ingresso per la subnet pubblica o la subnet privata.

    Pubblico

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio.
      • --ca_key La chiave del certificato intermedio.
      • --root_cert Il certificato radice.
      • --cert_chain La catena di certificati.

    Privato

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Salva il seguente YAML in un file denominato istio-operator-internal-lb.yaml:

      apiVersion: install.istio.io/v1alpha1
      kind: IstioOperator
      spec:
        components:
          ingressGateways:
          - enabled: true
            k8s:
              serviceAnnotations:
                service.beta.kubernetes.io/aws-load-balancer-internal: "true"
            name: istio-ingressgateway
      
    3. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --ca citadel \
        --ca_cert FILE_PATH \
        --ca_key FILE_PATH \
        --root_cert FILE_PATH \
        --cert_chain FILE_PATH \
        --custom_overlay istio-operator-internal-lb.yaml
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio.
      • --ca_key La chiave del certificato intermedio.
      • --root_cert Il certificato radice.
      • --cert_chain La catena di certificati.
      • --custom_overlay Il nome del file di overlay creato. Per saperne di più sui file di overlay, consulta Attivazione delle funzionalità opzionali sul control plane in-cluster.

    Amazon EKS

    Esegui i seguenti comandi su Amazon EKS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i valori nei segnaposto forniti.

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Esegui asmcli install:

      ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • --option attached-cluster Modifica l'utilità di firma predefinita in istiod.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio
      • --ca_key La chiave del certificato intermedio
      • --root_cert Il certificato radice
      • --cert_chain La catena di certificati
      • --network_id Se stai configurando una mesh multi-rete, imposta --network_id su un valore univoco per ogni cluster nella mesh.

    Microsoft AKS

    Esegui i seguenti comandi su Microsoft AKS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i valori nei segnaposto forniti.

    1. Imposta il contesto corrente sul cluster utente:

      kubectl config use-context CLUSTER_NAME
      
    2. Esegui asmcli install:

      HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
        --fleet_id FLEET_PROJECT_ID \
        --kubeconfig KUBECONFIG_FILE \
        --output_dir DIR_PATH \
        --platform multicloud \
        --enable_all \
        --option attached-cluster \
        --ca citadel \
        --ca_cert CA_CERT_FILE_PATH \
        --ca_key CA_KEY_FILE_PATH \
        --root_cert ROOT_CERT_FILE_PATH \
        --cert_chain CERT_CHAIN_FILE_PATH \
        --network_id default
      
      • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Consente la registrazione con GKE Fleet.
      • --fleet_id L'ID progetto del progetto host del parco risorse.
      • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
      • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
      • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
      • --enable_all Consente allo script di:
        • Concedi le autorizzazioni IAM richieste.
        • Abilita le API di Google richieste.
        • Imposta nel cluster un'etichetta che identifica il mesh.
        • Registra il cluster nel parco risorse, se non è già registrato.
      • --option attached-cluster Modifica l'utilità di firma predefinita in istiod.
      • -ca citadel Utilizza Istio CA come autorità di certificazione.
      • --ca_cert Il certificato intermedio
      • --ca_key La chiave del certificato intermedio
      • --root_cert Il certificato radice
      • --cert_chain La catena di certificati
      • --network_id Se stai configurando una mesh multi-rete, imposta --network_id su un valore univoco per ogni cluster nella mesh.

Installazione con Istio CA con Google Cloud Observability abilitato

Se vuoi utilizzare le dashboard di Cloud Service Mesh, devi abilitare Stackdriver.

On-premise

Esegui i seguenti comandi su Google Distributed Cloud (solo software) per VMware o Google Distributed Cloud (solo software) per bare metal per installare il control plane con Stackdriver e altre funzionalità facoltative e Istio CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
       --fleet_id FLEET_PROJECT_ID \
       --kubeconfig KUBECONFIG_FILE \
       --output_dir DIR_PATH \
       --platform multicloud \
       --enable_all \
       --ca citadel \
       --ca_cert CA_CERT_FILE_PATH \
       --ca_key CA_KEY_FILE_PATH \
       --root_cert ROOT_CERT_FILE_PATH \
       --cert_chain CERT_CHAIN_FILE_PATH
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio
    • --ca_key La chiave del certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver.

    Per visualizzare gli SLO e le metriche dell'infrastruttura nella UI di Cloud Service Mesh, devi anche eseguire i primi tre passaggi in Attivare il logging e il monitoraggio delle applicazioni. Se la registrazione e il monitoraggio non sono attivi e non ricevono log e metriche personalizzati, la dashboard Cloud Service Mesh non mostrerà SLO, log degli errori o metriche di CPU e memoria.

AWS

Esegui i seguenti comandi su GKE su AWS per installare il control plane con Stackdriver e altre funzionalità facoltative e Istio CA. Inserisci i tuoi valori nei segnaposto forniti. Puoi scegliere di abilitare l'ingresso per la subnet pubblica o la subnet privata.

Pubblico

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio.
    • --ca_key La chiave del certificato intermedio.
    • --root_cert Il certificato radice.
    • --cert_chain La catena di certificati.
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver.

Privato

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Salva il seguente YAML in un file denominato istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio.
    • --ca_key La chiave del certificato intermedio.
    • --root_cert Il certificato radice.
    • --cert_chain La catena di certificati.
    • --custom_overlay Il nome del file di overlay creato. Per saperne di più sui file di overlay, vedi Attivazione delle funzionalità facoltative sul control plane in-cluster.
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver. In alternativa, puoi abilitare Stackdriver utilizzando --custom_overlay stackdriver.yaml. Devi scaricare anthos-service-mesh-package o creare stackdriver.yaml dal manifest fornito.

Azure

Esegui i seguenti comandi su GKE su Azure per installare il control plane con Stackdriver e altre funzionalità facoltative e Istio CA. Inserisci i valori nei segnaposto forniti. Puoi scegliere di attivare l'ingresso per la subnet pubblica o la subnet privata.

Pubblico

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio.
    • --ca_key La chiave del certificato intermedio.
    • --root_cert Il certificato radice.
    • --cert_chain La catena di certificati.
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver.

Privato

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Salva il seguente YAML in un file denominato istio-operator-internal-lb.yaml:

    apiVersion: install.istio.io/v1alpha1
    kind: IstioOperator
    spec:
      components:
        ingressGateways:
        - enabled: true
          k8s:
            serviceAnnotations:
              service.beta.kubernetes.io/aws-load-balancer-internal: "true"
          name: istio-ingressgateway
    
  3. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --cert_chain FILE_PATH
      --custom_overlay istio-operator-internal-lb.yaml \
      --option stackdriver
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio.
    • --ca_key La chiave del certificato intermedio.
    • --root_cert Il certificato radice.
    • --cert_chain La catena di certificati.
    • --custom_overlay Il nome del file di overlay creato. Per saperne di più sui file di overlay, vedi Attivazione delle funzionalità facoltative sul control plane in-cluster.
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver. In alternativa, puoi abilitare Stackdriver utilizzando --custom_overlay stackdriver.yaml. Devi scaricare anthos-service-mesh-package o creare stackdriver.yaml dal manifest fornito.

Amazon EKS

Esegui i seguenti comandi su Amazon EKS per installare il control plane con Stackdriver e altre funzionalità facoltative e Istio CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio
    • --ca_key La chiave del certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver.
    • --option stackdriver Modifica l'utilità di firma predefinita in istiod.

Microsoft AKS

Esegui i seguenti comandi su Microsoft AKS per installare il control plane con le funzionalità predefinite e l'autorità di certificazione Istio. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install:

    HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer ./asmcli install \
      --fleet_id FLEET_PROJECT_ID \
      --kubeconfig KUBECONFIG_FILE \
      --output_dir DIR_PATH \
      --platform multicloud \
      --enable_all \
      --ca citadel \
      --ca_cert CA_CERT_FILE_PATH \
      --ca_key CA_KEY_FILE_PATH \
      --root_cert ROOT_CERT_FILE_PATH \
      --cert_chain CERT_CHAIN_FILE_PATH \
      --option stackdriver \
      --option attached-cluster
    
    • HUB_REGISTRATION_EXTRA_FLAGS=--has-private-issuer Consente la registrazione con GKE Fleet.
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • -ca citadel Utilizza Istio CA come autorità di certificazione.
    • --ca_cert Il certificato intermedio
    • --ca_key La chiave del certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati
    • --option stackdriver Abilita l'opzione Stackdriver. Tieni presente che puoi attivare sia Stackdriver che Prometheus utilizzando --option prometheus-and-stackdriver.
    • --option stackdriver Modifica l'utilità di firma predefinita in istiod.

Installare con funzionalità facoltative

Un file di overlay è un file YAML contenente una risorsa personalizzata IstioOperator (CR) che passi a asmcli per configurare il control plane. Puoi ignorare la configurazione predefinita del control plane e attivare una funzionalità facoltativa passando il file YAML a asmcli. Puoi aggiungere altre sovrapposizioni e ogni file di sovrapposizione sostituisce la configurazione dei livelli precedenti. Come best practice, ti consigliamo di salvare i file di overlay nel sistema di controllo delle versioni.

Esistono due opzioni per attivare le funzionalità opzionali: --option e --custom_overlay.

Utilizza --option se non devi modificare il file di overlay. Con questo metodo, asmcli recupera il file dal repository GitHub per te.

Utilizza --custom_overlay quando devi personalizzare il file di overlay.

Per saperne di più, consulta Attivazione delle funzionalità facoltative sul control plane in-cluster.

Esegui i seguenti comandi su Google Distributed Cloud (solo software) per VMware, Google Distributed Cloud (solo software) per bare metal, GKE su AWS, GKE su Azure, Amazon EKS o Microsoft AKS. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto corrente sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esegui asmcli install per installare il control plane con una funzionalità facoltativa. Per aggiungere più file, specifica --custom_overlay e il nome file, ad esempio: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml

    ./asmcli install \
    --fleet_id FLEET_PROJECT_ID \
    --kubeconfig KUBECONFIG_FILE \
    --output_dir DIR_PATH \
    --platform multicloud \
    --enable_all \
    --ca mesh_ca \
    --custom_overlay OVERLAY_FILE
    
    • --fleet_id L'ID progetto del progetto host del parco risorse.
    • --kubeconfig Il percorso completo del file kubeconfig. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni dei file kubeconfig relative che utilizzano `~` non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory in cui asmcli scarica il pacchetto anthos-service-mesh ed estrae il file di installazione, che contiene istioctl, esempi e manifest. In caso contrario, asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente $PWD non funziona qui.
    • --platform multicloud Specifica che la piattaforma è qualcosa di diverso da Google Cloud, ad esempio on-premise o multi-cloud.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta nel cluster un'etichetta che identifica il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione. Tieni presente che asmcli configura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità dei workload del parco risorse
    • --custom_overlay Specifica il nome del file di sovraimpressione.

Installare i gateway

Cloud Service Mesh ti offre la possibilità di eseguire il deployment dei gateway e di gestirli all'interno del mesh di servizi. Un gateway descrive un bilanciatore del carico che opera al limite del mesh e riceve connessioni HTTP/TCP in entrata o in uscita. I gateway sono proxy Envoy che offrono un controllo granulare sul traffico in entrata e in uscita dal mesh.

  1. Crea uno spazio dei nomi per il gateway in entrata se non ne hai già uno. I gateway sono workload utente e, come best practice, non devono essere deployati nello spazio dei nomi del control plane. Sostituisci GATEWAY_NAMESPACE con il nome del tuo spazio dei nomi.

    kubectl create namespace GATEWAY_NAMESPACE
    

    Output previsto:

    namespace/GATEWAY_NAMESPACE created
    
  2. Attiva l'inserimento automatico sul gateway. I passaggi richiesti dipendono dal fatto che tu voglia utilizzare le etichette di inserimento predefinite (ad esempio, istio-injection=enabled) o l'etichetta di revisione nello spazio dei nomi del gateway. Il tag di revisione e l'etichetta di revisione predefiniti vengono utilizzati dal webhook di inserimento del sidecar per associare i proxy inseriti a una particolare revisione del control plane.

    1. Se hai utilizzato una revisione del tag predefinita per abilitare l'inserimento automatico sul gateway, verifica che il tag predefinito esista nella directory specificata in --output_dir e che punti alla revisione appena installata.

      DIR_PATH/istioctl tag list
      
    2. Applica le etichette di inserimento predefinite allo spazio dei nomi.

      kubectl label namespace GATEWAY_NAMESPACE istio-injection=enabled istio.io/rev-
      

    Etichetta di revisione

    1. Utilizza il comando seguente per individuare l'etichetta della revisione su istiod:

      kubectl get deploy -n istio-system -l app=istiod -o \
        "jsonpath={.items[*].metadata.labels['istio\.io/rev']}{'\n'}"
      

      Il comando restituisce l'etichetta della revisione che corrisponde alla versione di Cloud Service Mesh, ad esempio: asm-1285-12

    2. Applica l'etichetta di revisione allo spazio dei nomi. Nel comando seguente, REVISION è il valore dell'etichetta di revisione istiod che hai annotato nel passaggio precedente.

      kubectl label namespace GATEWAY_NAMESPACE \
        istio.io/rev=REVISION --overwrite
      

      Output previsto:

      namespace/GATEWAY_NAMESPACE labeled
      

    Puoi ignorare il messaggio "istio.io/rev" not found nell'output. Ciò significa che lo spazio dei nomi non aveva in precedenza l'etichetta istio.io/rev, che dovresti aspettarti nelle nuove installazioni di Cloud Service Mesh o nei nuovi deployment. Poiché l'inserimento automatico non riesce se uno spazio dei nomi ha sia l'etichetta istio.io/rev che l'etichetta istio-injection, tutti i comandi kubectl label nella documentazione di Cloud Service Mesh specificano esplicitamente entrambe le etichette.

    Se lo spazio dei nomi del gateway non è etichettato, i pod istio-ingressgateway non funzioneranno e verrà visualizzato un errore ImagePullBackOff quando il gateway tenta di eseguire il pull e l'immagine auto. Questa immagine deve essere sostituita dal webhook.

  3. Scarica il file di configurazione .yaml del gateway in entrata di esempio dal repository anthos-service-mesh-packages.

  4. Applica la configurazione .yaml del gateway di ingresso di esempio così com'è o modificala in base alle tue esigenze.

    kubectl apply -n GATEWAY_NAMESPACE \
      -f CONFIG_PATH/istio-ingressgateway
    

    Output previsto:

    deployment.apps/istio-ingressgateway created
    poddisruptionbudget.policy/istio-ingressgateway created
    horizontalpodautoscaler.autoscaling/istio-ingressgateway created
    role.rbac.authorization.k8s.io/istio-ingressgateway created
    rolebinding.rbac.authorization.k8s.io/istio-ingressgateway created
    service/istio-ingressgateway created
    serviceaccount/istio-ingressgateway created
    

Scopri di più sulle best practice per i gateway.

Esegui il deployment e il nuovo deployment dei carichi di lavoro

Cloud Service Mesh utilizza proxy sidecar per migliorare la sicurezza, l'affidabilità e l'osservabilità della rete. Con Cloud Service Mesh, queste funzioni sono astratte dal container principale dell'applicazione e implementate in un proxy out-of-process comune fornito come container separato nello stesso pod.

L'installazione non è completa finché non attivi l'inserimento automatico del proxy sidecar e riavvii i pod per tutti i workload in esecuzione sul cluster prima dell'installazione di Cloud Service Mesh.

Per abilitare l'inserimento automatico, etichetta gli spazi dei nomi con le etichette di inserimento predefinite se è configurato il tag predefinito o con un'etichetta di revisione impostata su istiod quando hai installato Cloud Service Mesh. Il tag e l'etichetta di revisione predefiniti vengono utilizzati dal webhook dell'iniettore sidecar per associare i sidecar inseriti a una revisione istiod. Dopo aver aggiunto l'etichetta, è necessario riavviare tutti i pod esistenti nello spazio dei nomi per inserire i sidecar.

Prima di eseguire il deployment di nuovi workload in un nuovo spazio dei nomi, assicurati di configurare l'iniezione automatica in modo che Cloud Service Mesh possa monitorare e proteggere il traffico.

  1. I passaggi necessari per abilitare l'inserimento automatico dipendono dal fatto che tu voglia utilizzare le etichette di inserimento predefinite o l'etichetta di revisione:

    1. Se hai utilizzato una revisione del tag predefinita per abilitare l'inserimento automatico sul gateway, verifica che il tag predefinito esista nella directory specificata in --output_dir e che punti alla revisione appena installata.

      DIR_PATH/istioctl tag list
      
    2. Esegui questo comando. NAMESPACE è il nome dello spazio dei nomi in cui vuoi attivare l'inserimento automatico.

      kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev-
      

    Le etichette di inserimento predefinite inseriscono la revisione a cui punta il tag predefinito.

    Etichetta di revisione

    1. Utilizza il comando seguente per individuare l'etichetta della revisione su istiod:

      kubectl -n istio-system get pods -l app=istiod --show-labels
      

      L'output è simile al seguente:

      NAME                                READY   STATUS    RESTARTS   AGE   LABELS
      istiod-asm-1285-12-5788d57586-bljj4   1/1     Running   0          23h   app=istiod,istio.io/rev=asm-1285-12,istio=istiod,pod-template-hash=5788d57586
      istiod-asm-1285-12-5788d57586-vsklm   1/1     Running   1          23h   app=istiod,istio.io/rev=asm-1285-12,istio=istiod,pod-template-hash=5788d57586

      Nell'output, nella colonna LABELS, annota il valore dell'etichetta di revisione istiod, che segue il prefisso istio.io/rev=. In questo esempio, il valore è asm-1285-12.

    2. Applica l'etichetta di revisione e rimuovi l'etichetta istio-injection, se esiste. Nel comando seguente, NAMESPACE è il nome dello spazio dei nomi in cui vuoi abilitare l'inserimento automatico e REVISION è l'etichetta di revisione che hai annotato nel passaggio precedente.

      kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION --overwrite
      

      Puoi ignorare il messaggio "istio-injection not found" nell'output. Ciò significa che lo spazio dei nomi non aveva in precedenza l'etichetta istio-injection, che dovresti aspettarti nelle nuove installazioni di Cloud Service Mesh o nei nuovi deployment. Poiché il comportamento di inserimento automatico non è definito quando uno spazio dei nomi ha sia l'etichetta istio-injection sia quella di revisione, tutti i comandi kubectl label nella documentazione di Cloud Service Mesh assicurano esplicitamente che ne sia impostata solo una.

  2. Se i carichi di lavoro erano in esecuzione sul cluster prima dell'installazione di Cloud Service Mesh, riavvia i pod per attivare la reiniezione.

    La modalità di riavvio dei pod dipende dall'applicazione e dall'ambiente in cui si trova il cluster. Ad esempio, nell'ambiente di staging, potresti semplicemente eliminare tutti i pod, il che ne causa il riavvio. Tuttavia, nell'ambiente di produzione, potresti avere un processo che implementa un deployment blu/verde in modo da poter riavviare in sicurezza i pod per evitare interruzioni del traffico.

    Puoi utilizzare kubectl per eseguire un riavvio in sequenza:

    kubectl rollout restart deployment -n NAMESPACE
    

Passaggi successivi