Esegui l'upgrade di Cloud Service Mesh

In questa pagina viene spiegato come:

  • Esegui asmcli per eseguire l'upgrade da Cloud Service Mesh a Cloud Service Mesh 1.18.7.

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

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

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

GKE

Puoi eseguire l'upgrade direttamente a Cloud Service Mesh 1.18.7-asm.26 su Google Kubernetes Engine dal seguente versions:

1.16+

On-premise

Puoi eseguire l'upgrade direttamente a Cloud Service Mesh 1.18.7-asm.26 su Google Distributed Cloud e Google Distributed Cloud dalle seguenti versioni:

1.16+

GKE su AWS

Puoi eseguire l'upgrade direttamente a Cloud Service Mesh 1.18.7-asm.26 su GKE su AWS dal seguente versions:

1.16+

GKE su Azure

GKE su Azure supporta solo Cloud Service Mesh 1.16. Upgrade da le versioni precedenti di Cloud Service Mesh non sono supportate.

Amazon EKS

Se hai installato Cloud Service Mesh 1.7 su EKS, dovrai installa Cloud Service Mesh 1.18 su un nuovo cluster. Upgrade da Cloud Service Mesh 1.7 a Cloud Service Mesh 1.18 non sono supportate.

Microsoft AKS

Se hai installato Cloud Service Mesh 1.7 su AKS, dovrai: installa Cloud Service Mesh 1.18 su un nuovo cluster. Upgrade da Cloud Service Mesh 1.7 a Cloud Service Mesh 1.18 non sono supportate.

Prima di iniziare

Prima di iniziare, assicurati di:

Personalizzazioni del piano di controllo

Se hai personalizzato l'installazione precedente, hai bisogno delle stesse personalizzazioni quando esegui l'upgrade a una nuova versione di Cloud Service Mesh o esegui la migrazione da Istio. Se ha personalizzato l'installazione aggiungendo il flag --set values a istioctl install, devi aggiungere queste impostazioni a un file YAML IstioOperator, noto come file di overlay. Tu specifichi l'overlay utilizzando l'opzione --custom_overlay con il nome file quando esegui l'editor lo script. Lo script passa il file dell'overlay a istioctl install.

Autorità di certificazione

La modifica dell'autorità di certificazione (CA) durante un upgrade causa tempi di inattività. Durante l'upgrade, il traffico mTLS viene interrotto finché tutti i carichi di lavoro non vengono all'uso del nuovo piano di controllo con la nuova CA.

Upgrade di Anthos Service Mesh

Di seguito viene descritto come eseguire l'upgrade di Cloud Service Mesh:

  1. Se esegui l'upgrade di un mesh multi-cluster su GKE che utilizza dell'autorità di certificazione Cloud Service Mesh, esegui asmcli create-mesh per configurare mesh multi-cluster su cui considerare attendibile identità dei carichi di lavoro del parco risorse per evitare il bilanciamento del carico tra cluster durante i tempi di inattività durante l'upgrade.

  2. Esegui asmcli install per installare Cloud Service Mesh su un singolo cluster. Consulta le le sezioni seguenti per alcuni esempi di riga di comando. Gli esempi contengono sia gli argomenti obbligatori e quelli facoltativi che potrebbero esserti utili. Me consigliamo di specificare sempre l'argomento output_dir in modo che puoi individuare facilmente gateway e strumenti di esempio come istioctl. Consulta nella barra di navigazione a destra per un elenco di esempi.

  3. Facoltativamente, installa o esegui l'upgrade di un gateway in entrata. Di Per impostazione predefinita, asmcli non installa istio-ingressgateway. I nostri suggerimenti di eseguire il deployment e di gestire il piano di controllo e i gateway separatamente. Se è necessaria l'installazione di istio-ingressgateway predefinita con la risorsa nel cluster il piano di controllo, includi --option legacy-default-ingressgateway .

  4. Per completare la configurazione di Cloud Service Mesh, devi abilitare il file collaterale automatico iniezione di codice eseguire il deployment o rieseguire il deployment dei carichi di lavoro.

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

Se esegui l'upgrade di un mesh multi-cluster su GKE, utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione, devi eseguire asmcli create-mesh prima di eseguire l'upgrade di ogni cluster. Questo comando configura L'autorità di certificazione Cloud Service Mesh per utilizzare il pool di identità per i carichi di lavoro del parco risorse FLEET_PROJECT_ID.svc.id.goog, come dominio attendibile dopo di te upgrade. Il comando asmcli create-mesh:

  • Registra tutti i cluster nello stesso parco risorse.
  • Configura il mesh in modo che l'identità dei carichi di lavoro del parco risorse sia attendibile.
  • Crea secret remoti.

Puoi specificare l'URI per ciascun cluster o il percorso file kubeconfig.

URI cluster

Nel comando seguente, sostituisci FLEET_PROJECT_ID con l'ID progetto progetto host del parco risorse e l'URI del cluster con il nome del cluster, la zona o la regione e l'ID progetto per ogni 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 progetto host del parco risorse e PATH_TO_KUBECONFIG con il percorso 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 Cloud Service Mesh con funzionalità supportate predefinite per la tua piattaforma e abilita l'autorità di certificazione Cloud Service Mesh come autorità di certificazione.

GKE

Esegui questo comando per eseguire l'upgrade del piano di controllo con l'impostazione predefinita e l'autorità di certificazione Cloud Service Mesh. Inserisci i valori nel campo placeholders.

./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 che il cluster si trova il nome del cluster e la zona o la regione del cluster.
  • --fleet_id L'ID del progetto 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 dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $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 l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity

Altri cluster GKE Enterprise

Esegui i comandi seguenti su altri cluster GKE Enterprise per eseguire l'upgrade con funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. Invio i valori nei segnaposto forniti.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 un'etichetta sul cluster che identifichi il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity

Esegui l'upgrade delle funzionalità predefinite con CA Service

Questa sezione mostra come eseguire asmcli per eseguire l'upgrade di Cloud Service Mesh con funzionalità supportate predefinite per la tua piattaforma e abilita Certificate Authority Service.

GKE

Esegui questo comando per eseguire l'upgrade del piano di controllo con l'impostazione predefinita e Certificate Authority Service. Inserisci i valori nel campo placeholders.

./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 che il cluster si trova il nome del cluster e la zona o la regione del cluster.
  • --fleet_id L'ID del progetto 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 dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $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 dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Certificate Authority Service da utilizzare flotta Workload Identity
  • --ca_pool L'identificatore completo del Certificate Authority Service CA Pool.

On-premise

Esegui i comandi seguenti su Google Distributed Cloud oppure Google Distributed Cloud per eseguire l'upgrade del piano di controllo con e Certificate Authority Service. Inserisci i valori nel campo placeholders.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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 dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Certificate Authority Service da utilizzare flotta Workload Identity
    • --ca_pool L'identificatore completo del Pool di CA di Certificate Authority Service.

Esegui l'upgrade delle funzionalità predefinite con Istio CA

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

GKE

Esegui questo comando per eseguire l'upgrade del piano di controllo con l'impostazione predefinita e Istio CA. Inserisci i valori negli appositi segnaposto.

./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 che il cluster si trova il nome del cluster e la zona o la regione del cluster.
  • --fleet_id L'ID del progetto 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 dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $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. Modifica del certificato delle autorità durante un upgrade causa tempi di inattività.

On-premise

Esegui i comandi seguenti su Google Distributed Cloud oppure Google Distributed Cloud per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e Istio CA. Inserisci i valori nel campo placeholders.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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 su GKE su AWS per eseguire l'upgrade del controllo con le funzionalità predefinite e Istio CA. Inserisci i valori nel campo segnaposto forniti. Puoi scegliere di abilitare Ingress per il pubblico una subnet o la subnet privata.

Pubblico

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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

Privato

  1. Imposta il contesto attuale 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. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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 seguenti comandi su Amazon EKS per eseguire l'upgrade del piano di controllo le funzionalità predefinite e Istio CA. Inserisci i valori nel campo placeholders.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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 seguenti comandi su Amazon EKS per eseguire l'upgrade del piano di controllo le funzionalità predefinite e Istio CA. Inserisci i valori nel campo placeholders.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 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 (RP) che passi a asmcli per configurare il piano di controllo. Puoi la configurazione predefinita del piano di controllo abilitare una funzionalità facoltativa passando il file YAML a asmcli. Puoi sovrapporre altri overlay e ogni il file di overlay sostituisce la configurazione sui livelli precedenti.

GKE

Esegui questo comando per installare il piano di controllo con un'istanza funzionalità. Per aggiungere più file, specifica --custom_overlay e il relativo nome, ad esempio: --custom_overlayoverlay_file1.yaml --custom_overlay overlay_file2.yaml --custom_overlay overlay_file3.yaml Inserisci i valori negli appositi segnaposto.

./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 che il cluster si trova il nome del cluster e la zona o la regione del cluster.
  • --fleet_id L'ID del progetto 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 dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $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 l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity
  • --custom_overlay Specifica il nome del file dell'overlay.

Al di fuori di Google Cloud

Esegui questi comandi su Google Distributed Cloud, Google Distributed Cloud, GKE su AWS, Amazon EKS o Microsoft AKS. Inserisci i valori negli appositi segnaposto.

  1. Imposta il contesto attuale sul cluster utente:

    kubectl config use-context CLUSTER_NAME
    
  2. Corsa di 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 del progetto progetto host del parco risorse.
    • --kubeconfig Il percorso completo kubeconfig file. La variabile di ambiente $PWD non funziona qui. Inoltre, le posizioni relative dei file kubeconfig che utilizzano "~" non funzioneranno.
    • --output_dir Includi questa opzione per specificare una directory dove asmcli scarica anthos-service-mesh pacchetto ed estrae il file di installazione, contiene istioctl, esempi e manifest. Altrimenti asmcli scarica i file in una directory tmp. Puoi specificare un percorso relativo o un percorso completo. Ambiente la variabile $PWD non funziona qui.
    • --platform multicloud specifica che la piattaforma è qualcosa 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 un'etichetta sul cluster che identifichi il mesh.
      • Registra il cluster nel parco risorse, se non è già registrato.
    • --ca mesh_ca Utilizza l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività. asmcliconfigura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity
    • --custom_overlay Specifica il nome del file dell'overlay.

Esegui l'upgrade dei gateway

Se hai eseguito il deployment di gateway, dovrai eseguire l'upgrade anche di questi. Per un aggiornamento semplice, seguire la sezione Upgrade in loco Guida all'installazione e l'upgrade dei gateway.

Passa al nuovo piano di controllo

  1. Recupera l'etichetta di revisione in istiod.

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

    L'output del comando è simile al seguente.

    NAME                                                 READY   STATUS    RESTARTS   AGE   REV
    istiod-asm-1187-26-67998f4b55-lrzpz           1/1     Running   0          68m   asm-1178-20
    istiod-asm-1187-26-67998f4b55-r76kr           1/1     Running   0          68m   asm-1178-20
    istiod-1178-20-1-5cd96f88f6-n7tj9    1/1     Running   0          27s   asm-1187-26
    istiod-1178-20-1-5cd96f88f6-wm68b    1/1     Running   0          27s   asm-1187-26
    1. Nell'output, sotto la colonna REV, annota il valore della revisione l'etichetta per la nuova versione. In questo esempio, il valore è asm-1187-26.

    2. Prendi nota anche del valore nell'etichetta di revisione della vecchia versione di istiod. Ti servirà per eliminare la versione precedente di istiod al termine dell'operazione e trasferire i carichi di lavoro alla nuova versione. Nell'output di esempio, il valore l'etichetta di revisione della versione precedente è asm-1178-20.

  2. Aggiungi l'etichetta di revisione a uno spazio dei nomi dell'applicazione e rimuovi il Etichetta istio-injection (se esistente). Nel comando seguente, modifica REVISION al valore che corrisponde alla nuova revisione di istiod.

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

    Se vedi "istio-injection not found" nell'output, puoi ignoralo. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichetta istio-injection. Poiché il comportamento dell'inserimento automatico è non definito quando uno spazio dei nomi ha sia istio-injection sia etichetta di revisione, tutti i comandi kubectl label in Cloud Service Mesh di sicurezza assicurano esplicitamente che ne sia impostata una sola.

  3. Riavvia i pod per attivare la reiniezione.

    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 il dello spazio dei nomi e riavvia i pod.

  6. Se ritieni che la tua applicazione funzioni come previsto, continua con i passaggi per passare alla nuova versione di istiod. Se è presente 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 dall'anthos-service-mesh Si trova il repository 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 la versione precedente di istiod. Il comando che usi dipende indica se stai eseguendo la migrazione da Istio o da una versione di Cloud Service Mesh.

      Esegui migrazione

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

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

      Esegui l'upgrade

      1. Se hai eseguito l'upgrade da una versione precedente di Cloud Service Mesh, nel seguente, assicurati che OLD_REVISION corrisponde 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
        
      2. Elimina la risorsa validatingwebhookconfiguration per la revisione precedente:

        kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system -n istio-system --ignore-not-found
        
    5. Rimuovi la versione precedente della configurazione 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

    Esegui il rollback

    Se hai riscontrato un problema durante il test dell'applicazione con la nuova di istiod, segui questi passaggi per tornare alla precedente versione:

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

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

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Se hai utilizzato 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 nello spazio dei nomi corrisponda alla revisione etichetta nella versione precedente di istiod:

      kubectl get ns NAMESPACE --show-labels
      
    3. Riavvia i pod per attivare la reiniezione in modo che i proxy abbiano versione:

      kubectl rollout restart deployment -n NAMESPACE
      
    4. Rimuovi la nuova versione di istiod. Assicurati che il valore REVISION nel seguente comando è 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 canonico. È consigliabile lo lasci abilitato, ma se devi disabilitarlo, vedi Attivazione e disattivazione del controller del servizio canonico.

    7. Se hai eseguito il deployment di gateway, assicurati di modificare l'etichetta di revisione sullo spazio dei nomi o sul deployment affinché corrisponda alla versione precedente istiod. Segui la stessa procedura descritta nella sezione Miglioramenti in loco nel Installare ed eseguire l'upgrade dei gateway guida.

Deployment e nuovo deployment dei carichi di lavoro

L'installazione (o l'upgrade) non sarà completa finché non attivi il file collaterale automatico iniezione di proxy (auto-injection). Le migrazioni da Istio e gli upgrade dell'OSS seguono il processo di upgrade basato sulle revisioni (denominato "upgrade canary" nella documentazione di Istio). Con un upgrade basato sulle revisioni, la nuova versione sia installato insieme a quello esistente. Poi ti sposti carichi di lavoro alla nuova versione, che ti consente di monitorare l'effetto eseguire l'upgrade con una piccola percentuale dei carichi di lavoro prima di eseguire la migrazione di tutti il traffico verso la nuova versione.

Lo script imposta un'etichetta di revisione nel formato istio.io/rev=asm-1187-26 su istiod. Per attivare l'inserimento automatico, aggiungi un'etichetta di revisione corrispondente agli spazi dei nomi. L'etichetta di revisione è in uso dal webhook di iniettori collaterali per associare i file collaterali iniettati a un determinato istiod revisione. Dopo aver aggiunto l'etichetta, riavvia i pod nello spazio dei nomi per da inserire.

  1. Recupera l'etichetta di revisione che si trova in istiod e in istio-ingressgateway.

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

    L'output del comando è simile al 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-1187-26
    istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2      1/1     Running   0          20s   asm-1187-26
    istiod-asm-1187-26-67998f4b55-lrzpz          1/1     Running   0          68m   asm-1178-20
    istiod-asm-1187-26-67998f4b55-r76kr          1/1     Running   0          68m   asm-1178-20
    istiod-asm-1178-20-5cd96f88f6-n7tj9 1/1     Running   0          27s   asm-1187-26
    istiod-asm-1178-20-5cd96f88f6-wm68b 1/1     Running   0          27s   asm-1187-26
    1. Nell'output, sotto la colonna REV, annota il valore della revisione l'etichetta per la nuova versione. In questo esempio, il valore è asm-1187-26.

    2. Prendi nota anche del valore nell'etichetta di revisione della vecchia versione di istiod. Ti servirà per eliminare la versione precedente di istiod al termine dell'operazione e trasferire i carichi di lavoro alla nuova versione. Nell'output di esempio, il valore l'etichetta di revisione della versione precedente è asm-1178-20.

  2. Passa alla nuova revisione di istio-ingressgateway. Nel seguente , sostituisci REVISION con il valore che corrisponde dell'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 istio-injection dell'etichetta (se esistente). Nel comando seguente, modifica REVISION al valore che corrisponde alla nuova revisione di istiod.

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

    Se vedi "istio-injection not found" nell'output, puoi ignoralo. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichetta istio-injection. Poiché il comportamento dell'inserimento automatico è non definito quando uno spazio dei nomi ha sia istio-injection sia etichetta di revisione, tutti i comandi kubectl label in Cloud Service Mesh di sicurezza assicurano esplicitamente che ne sia impostata una sola.

  4. Riavvia i pod per attivare la reiniezione.

    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 il dello spazio dei nomi e riavvia i pod.

  7. Se ritieni che la tua applicazione funzioni come previsto, continua con i passaggi per passare alla nuova versione di istiod. Se è presente 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 dall'anthos-service-mesh Si trova il repository 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> --overwrite
      
    4. Elimina il precedente deployment istio-ingressgateway. Il comando dipende dal fatto che tu stia eseguendo la migrazione da Istio o eseguendo l'upgrade da una versione precedente di Cloud Service Mesh:

      Esegui migrazione

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

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

      Esegui l'upgrade

      Se hai eseguito l'upgrade da una versione precedente di Cloud Service Mesh, nel seguente comando, sostituisci OLD_REVISION con l'etichetta di revisione della versione precedente 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 che usi dipende indica se stai eseguendo la migrazione da Istio o da una versione di Cloud Service Mesh.

      Esegui migrazione

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

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

      Esegui l'upgrade

      Se hai eseguito l'upgrade da una versione precedente di Cloud Service Mesh, nel seguente, assicurati che OLD_REVISION corrisponde 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 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

    Esegui il rollback

    Se hai riscontrato un problema durante il test dell'applicazione con la nuova di istiod, segui questi passaggi per tornare alla precedente versione:

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

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

        kubectl label namespace NAMESPACE istio.io/rev=OLD_REVISION --overwrite
        
      • Se hai utilizzato 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 nello spazio dei nomi corrisponda alla revisione etichetta nella versione precedente di istiod:

      kubectl get ns NAMESPACE --show-labels
      
    3. Riavvia i pod per attivare la reiniezione in modo che i proxy abbiano versione:

      kubectl rollout restart deployment -n NAMESPACE
      
    4. Rimuovi il nuovo deployment istio-ingressgateway. Assicurati che il valore di REVISION nel seguente comando è risposta esatta.

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

      kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
      
    6. 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
    7. Se non hai incluso il flag --disable_canonical_service, lo script ha abilitato il controller del servizio canonico. È consigliabile lo lasci abilitato, ma se devi disabilitarlo, vedi Attivazione e disattivazione del controller del servizio canonico.