Versione 1.13

Upgrade di Anthos Service Mesh

In questa pagina viene spiegato come:

  • Esegui asmcli per eseguire l'upgrade da Anthos Service Mesh ad Anthos Service Mesh 1.13.4.

  • Facoltativamente, esegui il deployment di un gateway in entrata.

  • Esegui un upgrade canary per eseguire la migrazione dei carichi di lavoro al nuovo piano di controllo.

La versione di Anthos Service Mesh di cui puoi eseguire l'upgrade varia in base alla piattaforma.

GKE

Puoi eseguire l'upgrade direttamente ad Anthos Service Mesh 1.13.4-asm.4 in Google Kubernetes Engine dalle seguenti versioni:

1.11+

Risorse e subnet

Puoi eseguire l'upgrade direttamente ad Anthos Service Mesh 1.13.4-asm.4 su cluster Anthos su VMware e Anthos su Bare Metal dalle seguenti versioni:

1.11+

Cluster Anthos su AWS

Puoi eseguire l'upgrade direttamente ad Anthos Service Mesh 1.13.4-asm.4 nei cluster Anthos su AWS dalle seguenti versioni:

1.11+

Amazon EKS

Se hai installato Anthos Service Mesh 1.7 su EKS, dovrai installare Anthos Service Mesh 1.13 su un nuovo cluster. Gli upgrade da Anthos Service Mesh 1.7 ad Anthos Service Mesh 1.13 non sono supportati.

Microsoft AKS

Se hai installato Anthos Service Mesh 1.7 su AKS, dovrai installare Anthos Service Mesh 1.13 su un nuovo cluster. Gli upgrade da Anthos Service Mesh 1.7 ad Anthos Service Mesh 1.13 non sono supportati.

Prima di iniziare

Prima di iniziare, assicurati di:

Personalizzazioni piano di controllo

Se hai personalizzato l'installazione precedente, hai bisogno delle stesse personalizzazioni quando esegui l'upgrade a una nuova versione di Anthos Service Mesh o esegui la migrazione da Istio. Se hai personalizzato l'installazione aggiungendo il flag --set values a istioctl install, devi aggiungere tali impostazioni a un file YAML IstioOperator, denominato {2}file overlay. Per specificare il file overlay, utilizza l'opzione --custom_overlay con il nome file durante l'esecuzione dello script. Lo script trasmette il file dell'overlay a istioctl install.

Autorità di certificazione

La modifica dell'autorità di certificazione (CA) durante un upgrade causa un tempo di inattività. Durante l'upgrade, il traffico mTLS viene interrotto fino a quando tutti i carichi di lavoro non passano al nuovo piano di controllo con la nuova CA.

Upgrade di Anthos Service Mesh

Di seguito viene spiegato come eseguire l'upgrade di Anthos Service Mesh:

  1. Se esegui l'upgrade di un mesh multi-cluster su GKE che utilizza l'autorità di certificazione Anthos Service Mesh (Mesh CA), esegui asmcli create-mesh per configurare il mesh multi-cluster in modo da considerare attendibile l'identità dei carichi di lavoro di parco risorse per evitare tempi di inattività nel bilanciamento del carico cross-cluster durante l'upgrade.

  2. Esegui asmcli install per installare Anthos Service Mesh su un singolo cluster. Consulta le seguenti sezioni per avere esempi di righe di comando. Gli esempi contengono sia gli argomenti obbligatori sia quelli facoltativi che potresti trovare utili. Ti consigliamo di specificare sempre l'argomento output_dir, in modo da poter individuare facilmente gateway e strumenti di esempio come istioctl. Per visualizzare un elenco di esempi, visualizza la barra di navigazione a destra.

  3. In via facoltativa, puoi installare o eseguire l'upgrade di un gateway in entrata. Per impostazione predefinita, asmcli non installa istio-ingressgateway. Ti consigliamo di eseguire il deployment del piano di controllo e dei gateway separatamente. Se devi installare l'elemento istio-ingressgateway predefinito con il piano di controllo nel cluster, includi l'argomento --option legacy-default-ingressgateway.

  4. Per completare la configurazione di Anthos Service Mesh, devi abilitare l'inserimento automatico sidecar e eseguire il deployment o il deployment dei carichi di lavoro.

Configura il mesh multi-cluster per considerare attendibile l'identità del carico di lavoro del parco risorse

Se esegui l'upgrade di un mesh multi-cluster su GKE che utilizza Mesh CA come autorità di certificazione, devi eseguire asmcli create-mesh prima di eseguire l'upgrade di ogni cluster. Questo comando configura Mesh CA in modo che utilizzi il pool di identità del carico di lavoro del parco risorse, FLEET_PROJECT_ID.svc.id.goog, come dominio attendibile dopo l'upgrade. Il comando asmcli create-mesh:

  • Registra tutti i cluster nello stesso parco risorse.
  • Configura il mesh per considerare attendibile l'identità del carico di lavoro del parco risorse.
  • Crea secret da remoto.

Puoi specificare l'URI di ogni cluster o il percorso del file kubeconfig.

URI cluster

Nel comando seguente, sostituisci FLEET_PROJECT_ID con l'ID progetto del progetto host della flotta e l'URI del cluster con il nome, la zona o l'area geografica e l'ID del progetto per ciascun cluster.

./asmcli create-mesh \
    FLEET_PROJECT_ID \
    PROJECT_ID_1/CLUSTER_LOCATION_1/CLUSTER_NAME_1 \
    PROJECT_ID_2/CLUSTER_LOCATION_2/CLUSTER_NAME_2 # \
    # Add a line for each cluster in the mesh

File kubeconfig

Nel comando seguente, sostituisci FLEET_PROJECT_ID con l'ID progetto del progetto host della flotta e PATH_TO_KUBECONFIG con il percorso di ogni file kubeconfig.

./asmcli create-mesh \
    FLEET_PROJECT_ID \
    PATH_TO_KUBECONFIG_1 \
    PATH_TO_KUBECONFIG_2 # \
    # Add a line for each cluster in the mesh

Esegui l'upgrade con funzionalità predefinite e Mesh CA

Questa sezione mostra come eseguire asmcli per eseguire l'upgrade di Anthos Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e per attivare l'autorità di certificazione (Mesh CA) di Anthos Service Mesh come autorità di certificazione.

GKE

Esegui il comando seguente per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e la mesh CA. Inserisci i valori nei segnaposto forniti.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca
  • --project_id, --cluster_name e --cluster_location Specifica l'ID progetto in cui si trova il cluster, il nome del cluster e la zona o l'area geografica del cluster.
  • --fleet_id: l'ID progetto del progetto host del parco risorse. Se non includi questa opzione, asmcli utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.
  • --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 file 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.
  • --enable_all Consente allo script di:
    • Concedi le autorizzazioni IAM richieste.
    • Abilita le API di Google richieste.
    • Imposta un'etichetta sul cluster che identifichi il mesh.
    • Registra il cluster nel parco risorse se non è già registrato.
  • --ca mesh_ca Utilizza Mesh CA come autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di inattività. asmcliconfigura Cloud CA per utilizzare l'identità del carico di lavoro di una flotta

Risorse e subnet

Esegui i seguenti comandi sui cluster Anthos su VMware o Anthos su Bare Metal per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Mesh CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi il mesh.
      • Registra il cluster nel parco risorse se non è già registrato.
    • --ca mesh_ca Utilizza Mesh CA come autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di inattività. asmcliconfigura la rete mesh per utilizzare l'identità del carico di lavoro della flotta

Eseguire l'upgrade delle funzionalità predefinite con il servizio CA

Questa sezione mostra come eseguire asmcli per eseguire l'upgrade di Anthos Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e per attivare il Servizio autorità di certificazione.

GKE

Esegui il comando seguente per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e il Certificate Authority Service. Inserisci i valori nei segnaposto forniti.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca gcp_cas \
  --ca_pool projects/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
  • --project_id, --cluster_name e --cluster_location Specifica l'ID progetto in cui si trova il cluster, il nome del cluster e la zona o l'area geografica del cluster.
  • --fleet_id: l'ID progetto del progetto host del parco risorse. Se non includi questa opzione, asmcli utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.
  • --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 file 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.
  • --enable_all Consente allo script di:
    • Concedi le autorizzazioni IAM richieste.
    • Abilita le API di Google richieste.
    • Imposta un'etichetta sul cluster che identifichi 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 un tempo di inattività. asmcliconfigura il servizio dell'autorità di certificazione per l'utilizzo dell'identità del carico di lavoro di parco risorse
  • --ca_pool: identificatore completo per il Pool di CA del servizio dell'autorità di certificazione.

Risorse e subnet

Esegui i seguenti comandi sui cluster Anthos su VMware o Anthos su Bare Metal per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Certificate Authority Service. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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/PROJECT_NAME/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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 un tempo di inattività. asmcliconfigura il servizio dell'autorità di certificazione per l'utilizzo dell'identità del carico di lavoro di parco risorse
    • --ca_pool: l'identificatore completo del pool di CA del servizio dell'autorità di certificazione.

Esegui l'upgrade delle funzionalità predefinite con Istio CA

Questa sezione mostra come eseguire asmcli per eseguire l'upgrade di Anthos Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e per abilitare Istio CA.

GKE

Esegui il comando seguente per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e Istio CA. Inserisci i valori nei segnaposto forniti.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca citadel
  • --project_id, --cluster_name e --cluster_location Specifica l'ID progetto in cui si trova il cluster, il nome del cluster e la zona o l'area geografica del cluster.
  • --fleet_id: l'ID progetto del progetto host del parco risorse. Se non includi questa opzione, asmcli utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.
  • --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 file 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.
  • --enable_all Consente allo script di:
    • Concedi le autorizzazioni IAM richieste.
    • Abilita le API di Google richieste.
    • Imposta un'etichetta sul cluster che identifichi il mesh.
    • Registra il cluster nel parco risorse se non è già registrato.
  • -ca citadel Utilizza Istio CA. La modifica delle autorità di certificazione durante un upgrade causa un tempo di inattività.

Risorse e subnet

Esegui i seguenti comandi sui cluster Anthos su VMware o Anthos su Bare Metal per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Istio CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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
    
    • --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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 per il certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati

AWS

Esegui i comandi seguenti sui cluster Anthos su AWS per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Istio CA. Inserisci i valori nei segnaposto forniti. Puoi scegliere di attivare Ingress per la subnet pubblica o la subnet privata.

Pubblica

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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
    
    • --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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 per il certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati

Privata

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Salva il seguente YAML in un file chiamato 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. Esecuzione 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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 per il certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati

Amazon EKS

Esegui i comandi seguenti su Amazon EKS per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Istio CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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
    
    • --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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 per il certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati

Microsoft AKS

Esegui i comandi seguenti su Amazon EKS per eseguire l'upgrade del piano di controllo con funzionalità predefinite e Istio CA. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Esecuzione 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 FILE_PATH \
      --ca_key FILE_PATH \
      --root_cert FILE_PATH \
      --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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi 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 per il certificato intermedio
    • --root_cert Il certificato radice
    • --cert_chain La catena di certificati

Esegui l'upgrade con funzionalità facoltative

Un file overlay è un file YAML contenente una risorsa personalizzata IstioOperator (CR) che trasmetti a asmcli per configurare il piano di controllo. Puoi sostituire la configurazione predefinita del piano di controllo e attivare una funzionalità facoltativa passando il file YAML a asmcli. Puoi sovrapporre più overlay e ogni file di overlay sostituisce la configurazione dei livelli precedenti.

GKE

Esegui il comando seguente per installare il piano di controllo 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 Inserisci i valori nei segnaposto forniti.

./asmcli install \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --fleet_id FLEET_PROJECT_ID \
  --output_dir DIR_PATH \
  --enable_all \
  --ca mesh_ca \
  --custom_overlay OVERLAY_FILE
  • --project_id, --cluster_name e --cluster_location Specifica l'ID progetto in cui si trova il cluster, il nome del cluster e la zona o l'area geografica del cluster.
  • --fleet_id: l'ID progetto del progetto host del parco risorse. Se non includi questa opzione, asmcli utilizza il progetto in cui è stato creato il cluster durante la registrazione del cluster.
  • --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 file 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.
  • --enable_all Consente allo script di:
    • Concedi le autorizzazioni IAM richieste.
    • Abilita le API di Google richieste.
    • Imposta un'etichetta sul cluster che identifichi il mesh.
    • Registra il cluster nel parco risorse se non è già registrato.
  • --ca mesh_ca Utilizza Mesh CA come autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di inattività. asmcliconfigura Cloud CA per utilizzare l'identità del carico di lavoro di una flotta
  • --custom_overlay Specifica il nome del file overlay.

Al di fuori di Google Cloud

Esegui i seguenti comandi sui cluster Anthos su VMware, Anthos su Bare Metal, cluster Anthos su AWS, Amazon EKS o Microsoft AKS. Inserisci i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul tuo cluster utente:

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

    ./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.
    • --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 file 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 on-premise è la piattaforma.
    • --enable_all Consente allo script di:
      • Concedi le autorizzazioni IAM richieste.
      • Abilita le API di Google richieste.
      • Imposta un'etichetta sul cluster che identifichi il mesh.
      • Registra il cluster nel parco risorse se non è già registrato.
    • --ca mesh_ca Utilizza Mesh CA come autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di inattività. asmcliconfigura Cloud CA per utilizzare l'identità del carico di lavoro di una flotta
    • --custom_overlay Specifica il nome del file overlay.

Upgrade dei gateway

Se hai eseguito il deployment dei gateway, dovrai eseguire anche l'upgrade di questi ultimi. Per un semplice upgrade, segui la sezione Upgrade in loco nella guida Installare ed eseguire l'upgrade dei gateway.

Passa al nuovo piano di controllo

  1. Ottieni l'etichetta di revisione che si trova in istiod.

    kubectl get pod -n istio-system -L istio.io/rev
    

    L'output del comando è simile all'output seguente.

    NAME                                                 READY   STATUS    RESTARTS   AGE   REV
    istiod-asm-1134-4-67998f4b55-lrzpz           1/1     Running   0          68m   asm-1127-2
    istiod-asm-1134-4-67998f4b55-r76kr           1/1     Running   0          68m   asm-1127-2
    istiod-1127-2-1-5cd96f88f6-n7tj9    1/1     Running   0          27s   asm-1134-4
    istiod-1127-2-1-5cd96f88f6-wm68b    1/1     Running   0          27s   asm-1134-4
    1. Nell'output, nella colonna REV, indica il valore dell'etichetta di revisione per la nuova versione. In questo esempio, il valore è asm-1134-4.

    2. Prendi nota anche del valore nell'etichetta della revisione per la versione precedente di istiod. È necessario per eliminare la vecchia versione di istiod al termine del trasferimento dei carichi di lavoro alla nuova versione. Nell'output di esempio, il valore dell'etichetta di revisione della versione precedente è asm-1127-2.

  2. Aggiungi l'etichetta di revisione a uno spazio dei nomi dell'applicazione e rimuovi l'etichetta istio-injection (se presente). Nel comando seguente, sostituisci REVISION con il valore corrispondente alla nuova revisione di istiod.

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

    Se nell'output è visualizzato "istio-injection not found", puoi ignorarlo. Ciò significa che lo spazio dei nomi in precedenza non aveva l'etichetta istio-injection. Poiché l'inserimento automatico non riesce se uno spazio dei nomi contiene sia l'etichetta istio-injection sia l'etichetta di revisione, tutti i comandi kubectl label nella documentazione di Anthos Service Mesh includono la rimozione dell'etichetta istio-injection.

  3. Riavvia i pod per attivare la nuova inserimento.

    kubectl rollout restart deployment -n NAMESPACE
  4. Testa l'applicazione per verificare che i carichi di lavoro funzionino correttamente.

  5. Se hai carichi di lavoro in altri spazi dei nomi, ripeti i passaggi per etichettare lo spazio dei nomi e riavviare i pod.

  6. Se ritieni che la tua applicazione funzioni come previsto, continua con i passaggi per passare alla nuova versione di istiod. Se si verifica un problema con la tua applicazione, segui i passaggi per eseguire il rollback.

    Completa la transizione

    Se ritieni che l'applicazione funzioni come previsto, rimuovi il vecchio piano di controllo per completare la transizione alla nuova versione.

    1. Passa alla directory in cui si trovano i file del repository anthos-service-mesh di GitHub.

    2. Configura il webhook di convalida per utilizzare il nuovo piano di controllo:

      kubectl apply -f asm/istio/istiod-service.yaml
      
    3. Spostare il tag predefinito:

      <OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME>
      
    4. Elimina la versione precedente di istiod. Il comando da utilizzare dipende dal fatto che tu stia eseguendo la migrazione da Istio o l'upgrade da una versione precedente di Anthos Service Mesh.

      Migrazione

      Se hai eseguito la migrazione da Istio, la versione precedente di istio-ingressgateway non ha un'etichetta di revisione:

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
      

      Upgrade

      Se hai eseguito l'upgrade da una versione precedente di Anthos Service Mesh, nel comando seguente, assicurati che OLD_REVISION corrisponda all'etichetta di revisione della versione precedente di istiod:

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
      
    5. Rimuovi la versione precedente della configurazione di IstioOperator:

      kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system
      

      L'output previsto è simile al seguente:

      istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted

    Rollback

    Se hai riscontrato un problema durante il test della tua applicazione con la nuova versione di istiod, segui questi passaggi per eseguire il rollback alla versione precedente:

    1. Rietichetta il tuo spazio dei nomi per abilitare l'inserimento automatico con la versione precedente di istiod. Il comando da utilizzare dipende dal fatto che tu abbia utilizzato un'etichetta di revisione o istio-injection=enabled con la versione precedente.

      • Se hai utilizzato un'etichetta di revisione per l'inserimento automatico:

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Se utilizzavi istio-injection=enabled:

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

      Output previsto:

      namespace/NAMESPACE labeled
    2. Conferma che l'etichetta di revisione dello spazio dei nomi corrisponda all'etichetta di revisione della versione precedente di istiod:

      kubectl get ns NAMESPACE --show-labels
      
    3. Riavvia i pod per attivare la nuova inserimento in modo che i proxy dispongano della versione precedente:

      kubectl rollout restart deployment -n NAMESPACE
      
    4. Rimuovi la nuova versione di istiod. Assicurati che il valore REVISION nel seguente comando sia corretto.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
      
    5. Rimuovi la nuova versione della configurazione IstioOperator.

      kubectl delete IstioOperator installed-state-REVISION -n istio-system
      

      L'output previsto è simile al seguente:

      istiooperator.install.istio.io "installed-state-REVISION" deleted
    6. Se non hai incluso il flag --disable_canonical_service, asmcli ha abilitato il controller del servizio di canonicalizzazione. Ti consigliamo di lasciarlo abilitato, ma se devi disabilitarlo, consulta la sezione Abilitare e disabilitare il controller del servizio di canonicalizzazione.

    7. Se hai eseguito il deployment dei gateway, assicurati di cambiare l'etichetta di revisione nello spazio dei nomi o nel deployment in modo che corrisponda alla versione precedente di istiod. Segui la stessa procedura descritta nella sezione Upgrages in loco della guida Installazione ed upgrade dei gateway.

Deployment e nuovo deployment dei carichi di lavoro

La tua installazione (o upgrade) non è completa finché non attivi l'inserimento automatico del proxy sidecar (inserimento automatico). Le migrazioni da OSS Istio e upgrade seguono la procedura di upgrade basata su revisioni (denominata "canary upgrade" nella documentazione di Istio). Con un upgrade basato su revisione, la nuova versione del piano di controllo viene installata insieme al piano di controllo esistente. Successivamente, sposti alcuni dei tuoi carichi di lavoro nella nuova versione, in modo da monitorare l'effetto dell'upgrade con una piccola percentuale dei carichi di lavoro prima di eseguire la migrazione di tutto il traffico alla nuova versione.

Lo script imposta un'etichetta di revisione nel formato istio.io/rev=asm-1134-4 su istiod. Per abilitare l'inserimento automatico, aggiungi un'etichetta di revisione corrispondente agli spazi dei nomi. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore sidecar per associare le sidecar iniettate a una revisione istiod specifica. Dopo aver aggiunto l'etichetta, riavvia i pod nello spazio dei nomi per consentire l'inserimento di file collaterali.

  1. Ottieni l'etichetta di revisione su istiod e istio-ingressgateway.

    kubectl get pod -n istio-system -L istio.io/rev
    

    L'output del comando è simile all'output seguente.

    NAME                                                READY   STATUS    RESTARTS   AGE   REV
    istio-ingressgateway-65d884685d-6hrdk               1/1     Running   0          67m
    istio-ingressgateway-65d884685d-94wgz               1/1     Running   0          67m
    istio-ingressgateway-asm-182-2-8b5fc8767-gk6hb      1/1     Running   0          5s    asm-1134-4
    istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2      1/1     Running   0          20s   asm-1134-4
    istiod-asm-1134-4-67998f4b55-lrzpz          1/1     Running   0          68m   asm-1127-2
    istiod-asm-1134-4-67998f4b55-r76kr          1/1     Running   0          68m   asm-1127-2
    istiod-asm-1127-2-5cd96f88f6-n7tj9 1/1     Running   0          27s   asm-1134-4
    istiod-asm-1127-2-5cd96f88f6-wm68b 1/1     Running   0          27s   asm-1134-4
    1. Nell'output, nella colonna REV, indica il valore dell'etichetta di revisione per la nuova versione. In questo esempio, il valore è asm-1134-4.

    2. Prendi nota anche del valore nell'etichetta della revisione per la versione precedente di istiod. È necessario per eliminare la vecchia versione di istiod al termine del trasferimento dei carichi di lavoro alla nuova versione. Nell'output di esempio, il valore dell'etichetta di revisione della versione precedente è asm-1127-2.

  2. Passa alla nuova revisione di istio-ingressgateway. Nel comando seguente, sostituisci REVISION con il valore che corrisponde all'etichetta di revisione della nuova versione.

    kubectl patch service -n istio-system istio-ingressgateway --type='json' -p='[{"op": "replace", "path": "/spec/selector/service.istio.io~1canonical-revision", "value": "REVISION"}]'

    Output previsto: service/istio-ingressgateway patched

  3. Aggiungi l'etichetta di revisione a uno spazio dei nomi e rimuovi l'etichetta istio-injection (se presente). Nel comando seguente, sostituisci REVISION con il valore corrispondente alla nuova revisione di istiod.

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

    Se nell'output è visualizzato "istio-injection not found", puoi ignorarlo. Ciò significa che lo spazio dei nomi in precedenza non aveva l'etichetta istio-injection. Poiché l'inserimento automatico non riesce se uno spazio dei nomi contiene sia l'etichetta istio-injection sia l'etichetta di revisione, tutti i comandi kubectl label nella documentazione di Anthos Service Mesh includono la rimozione dell'etichetta istio-injection.

  4. Riavvia i pod per attivare la nuova inserimento.

    kubectl rollout restart deployment -n NAMESPACE
  5. Testa l'applicazione per verificare che i carichi di lavoro funzionino correttamente.

  6. Se hai carichi di lavoro in altri spazi dei nomi, ripeti i passaggi per etichettare lo spazio dei nomi e riavviare i pod.

  7. Se ritieni che la tua applicazione funzioni come previsto, continua con i passaggi per passare alla nuova versione di istiod. Se si verifica un problema con la tua applicazione, segui i passaggi per eseguire il rollback.

    Completa la transizione

    Se ritieni che l'applicazione funzioni come previsto, rimuovi il vecchio piano di controllo per completare la transizione alla nuova versione.

    1. Passa alla directory in cui si trovano i file del repository anthos-service-mesh di GitHub.

    2. Configura il webhook di convalida per utilizzare il nuovo piano di controllo.

      kubectl apply -f asm/istio/istiod-service.yaml
      
    3. Sposta il tag predefinito.

      <OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME>
      
    4. Elimina il vecchio istio-ingressgatewaydeployment. Il comando da eseguire dipende dal fatto che tu stia eseguendo la migrazione da Istio o dall'upgrade da una versione precedente di Anthos Service Mesh:

      Migrazione

      Se hai eseguito la migrazione da Istio, la versione precedente di istio-ingressgateway non ha un'etichetta di revisione.

      kubectl delete deploy/istio-ingressgateway -n istio-system
      

      Upgrade

      Se hai eseguito l'upgrade da una versione precedente di Anthos Service Mesh, nel comando seguente, sostituisci OLD_REVISION con l'etichetta di revisione della versione precedente di istio-ingressgateway.

      kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=OLD_REVISION -n istio-system --ignore-not-found=true
      
    5. Elimina la versione precedente di istiod. Il comando da utilizzare dipende dal fatto che tu stia eseguendo la migrazione da Istio o l'upgrade da una versione precedente di Anthos Service Mesh.

      Migrazione

      Se hai eseguito la migrazione da Istio, la versione precedente di istio-ingressgateway non ha un'etichetta di revisione.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
      

      Upgrade

      Se hai eseguito l'upgrade da una versione precedente di Anthos Service Mesh, nel comando seguente, assicurati che OLD_REVISION corrisponda all'etichetta di revisione della versione precedente di istiod.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
      
    6. Rimuovi la versione precedente della configurazione di IstioOperator.

      kubectl delete IstioOperator installed-state-OLD_REVISION -n istio-system
      

      L'output previsto è simile al seguente:

      istiooperator.install.istio.io "installed-state-OLD_REVISION" deleted

    Rollback

    Se hai riscontrato un problema durante il test della tua applicazione con la nuova versione di istiod, segui questi passaggi per eseguire il rollback alla versione precedente:

    1. Torna alla versione precedente di istio-ingressgateway. Nel seguente comando, sostituisci OLD_REVISION con la revisione precedente.

      kubectl patch service -n istio-system istio-ingressgateway --type='json' -p='[{"op": "replace", "path": "/spec/selector/service.istio.io~1canonical-revision", "value": "OLD_REVISION"}]'
      
    2. Rietichetta il tuo spazio dei nomi per abilitare l'inserimento automatico con la versione precedente di istiod. Il comando da utilizzare dipende dal fatto che tu abbia utilizzato un'etichetta di revisione o istio-injection=enabled con la versione precedente.

      • Se hai utilizzato un'etichetta di revisione per l'inserimento automatico:

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Se utilizzavi istio-injection=enabled:

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

      Output previsto:

      namespace/NAMESPACE labeled
    3. Conferma che l'etichetta di revisione dello spazio dei nomi corrisponda all'etichetta di revisione della versione precedente di istiod:

      kubectl get ns NAMESPACE --show-labels
      
    4. Riavvia i pod per attivare la nuova inserimento in modo che i proxy dispongano della versione precedente:

      kubectl rollout restart deployment -n NAMESPACE
      
    5. Rimuovi il nuovo deployment istio-ingressgateway. Assicurati che il valore REVISION nel seguente comando sia corretto.

      kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=true
      
    6. Rimuovi la nuova versione di istiod. Assicurati che il valore REVISION nel seguente comando sia corretto.

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
      
    7. Rimuovi la nuova versione della configurazione IstioOperator.

      kubectl delete IstioOperator installed-state-REVISION -n istio-system
      

      L'output previsto è simile al seguente:

      istiooperator.install.istio.io "installed-state-REVISION" deleted
    8. Se non includi il flag --disable_canonical_service, lo script ha abilitato il controller del servizio di canonicalizzazione. Ti consigliamo di lasciarlo abilitato, ma se devi disabilitarlo, consulta la sezione Abilitare e disabilitare il controller del servizio di canonicalizzazione.