Eseguire l'upgrade di Cloud Service Mesh
Questa pagina spiega come:
Esegui
asmcli
per eseguire l'upgrade da Cloud Service Mesh a Cloud Service Mesh 1.19.10.(Facoltativo) Esegui il deployment di un gateway in entrata.
Esegui un upgrade canary per eseguire la migrazione dei carichi di lavoro al nuovo control plane.
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.19.10-asm.9 su Google Kubernetes Engine dalle seguenti versioni:
1.17+
On-premise
Puoi eseguire l'upgrade direttamente a Cloud Service Mesh 1.19.10-asm.9 su Google Distributed Cloud e Google Distributed Cloud dalle seguenti versioni:
1.17+
GKE su AWS
Puoi eseguire l'upgrade direttamente a Cloud Service Mesh 1.19.10-asm.9 su GKE su AWS dal seguente versioni:
1.17+
GKE su Azure
GKE su Azure supporta solo Cloud Service Mesh 1.16. Gli upgrade da versioni precedenti di Cloud Service Mesh non sono supportati.
Amazon EKS
Se hai installato Cloud Service Mesh 1.7 su EKS, dovrai installa Cloud Service Mesh 1.19 su un nuovo cluster. Upgrade da Cloud Service Mesh 1.7 a Cloud Service Mesh 1.19 non sono supportate.
Microsoft AKS
Se hai installato Cloud Service Mesh 1.7 su AKS, dovrai installare Cloud Service Mesh 1.19 su un nuovo cluster. Upgrade da Cloud Service Mesh 1.7 a Cloud Service Mesh 1.19 non sono supportate.
Prima di iniziare
Prima di iniziare, assicurati di:
- Esamina i prerequisiti.
- Rivedi le informazioni in Pianifica l'upgrade.
- Installa gli strumenti necessari.
- Scarica
asmcli
. - Concedi le autorizzazioni di amministratore del cluster.
- Convalida progetto e cluster.
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. Specifica il file di overlay utilizzando l'opzione --custom_overlay
con il nome file quando esegui 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 un tempo di riposo. 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:
Se stai eseguendo l'upgrade di un mesh multicluster su GKE che utilizza l'autorità di certificazione Cloud Service Mesh, esegui
asmcli create-mesh
per configurare il mesh multicluster in modo che attenda l'identità del carico di lavoro del parco risorse per il bilanciamento del carico tra i cluster senza tempi di riposo durante l'upgrade.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'argomentooutput_dir
in modo che puoi individuare facilmente gateway e strumenti di esempio comeistioctl
. Consulta: nella barra di navigazione a destra per un elenco di esempi.Facoltativamente, installa o esegui l'upgrade di un gateway in entrata. Di Per impostazione predefinita,
asmcli
non installaistio-ingressgateway
. I nostri suggerimenti di eseguire il deployment e di gestire il piano di controllo e i gateway separatamente. Se è necessaria l'installazione diistio-ingressgateway
predefinita con la risorsa nel cluster il piano di controllo, includi--option legacy-default-ingressgateway
.Per completare la configurazione di Cloud Service Mesh, devi attivare l'iniezione automatica dei sidecar e eseguire il deployment o il redeployment dei carichi di lavoro.
Configura il mesh multi-cluster in modo che attenda l'identità del carico di lavoro del parco risorse
Se stai eseguendo l'upgrade di un mesh multi-cluster su GKE che utilizza l'autorità di certificazione Cloud Service Mesh come autorità di certificazione, devi eseguire asmcli create-mesh
prima di eseguire l'upgrade di ciascun cluster. Questo comando configura la CA di Cloud Service Mesh in modo da utilizzare il pool di Workload Identity 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 in modo che attenda l'identità del carico di lavoro del parco risorse.
- Crea secret remoti.
Puoi specificare l'URI per 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 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
Eseguire l'upgrade con le funzionalità predefinite e Mesh CA
Questa sezione mostra come eseguire asmcli
per eseguire l'upgrade di Cloud Service Mesh con le funzionalità supportate predefinite per la tua piattaforma e attivare la CA di Cloud Service Mesh come autorità di certificazione.
GKE
Esegui il seguente comando per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e l'autorità di certificazione Cloud Service Mesh. 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 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 in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. 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 l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di riposo.asmcli
configura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità workload del parco
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. Inserisci i valori nei segnaposto forniti.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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 host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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 autorità di certificazione. La modifica delle autorità di certificazione durante un l'upgrade causa tempi di inattività.asmcli
configura Autorità di certificazione Cloud Service Mesh da utilizzare flotta Workload Identity
Eseguire l'upgrade delle funzionalità predefinite con il servizio 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 Certificate Authority Service.
GKE
Esegui il seguente comando per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e il servizio Certificate Authority. 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 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 in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. Altrimentiasmcli
scarica i file in una directorytmp
. 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 autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di riposo.asmcli
configura Certificate Authority Service per utilizzare l'identità workload del parco--ca_pool
L'identificatore completo del Certificate Authority Service CA Pool.
On-premise
Esegui i seguenti comandi su Google Distributed Cloud o su Google Distributed Cloud per eseguire l'upgrade del control plane con le funzionalità predefinite e Certificate Authority Service. Inserisci i valori nel campo segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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/PROJECT_NAME/locations/ca_region/caPools/CA_POOL
--fleet_id
L'ID del progetto host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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 autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di riposo.asmcli
configura Certificate Authority Service per utilizzare l'identità workload del parco--ca_pool
L'identificatore completo del Pool di CA di Certificate Authority Service.
Eseguire l'upgrade delle funzionalità predefinite con la CA Istio
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 il comando seguente per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e la CA Istio. 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 la regione del cluster.--fleet_id
L'ID 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 doveasmcli
scaricaanthos-service-mesh
pacchetto ed estrae il file di installazione, contieneistioctl
, esempi e manifest. Altrimentiasmcli
scarica i file in una directorytmp
. 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. Modifica del certificato delle autorità durante un upgrade causa tempi di inattività.
On-premise
Esegui i comandi seguenti su Google Distributed Cloud o su Google Distributed Cloud per eseguire l'upgrade del piano di controllo con le funzionalità predefinite e la CA Istio. Inserisci i valori nel campo segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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
--fleet_id
L'ID del progetto progetto host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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 la CA Istio 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 seguenti comandi su GKE su AWS per eseguire l'upgrade del control plane con le funzionalità predefinite e la CA Istio. Inserisci i valori nel campo segnaposto forniti. Puoi scegliere di abilitare Ingress per il pubblico una subnet o la subnet privata.
Pubblico
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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 host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni relative dei filekubeconfig
che utilizzano "~" non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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
Imposta il contesto corrente sul cluster di utenti:
kubectl config use-context CLUSTER_NAME
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
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 del filekubeconfig
. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni relative dei filekubeconfig
che utilizzano "~" non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$PWD
non funziona qui.--platform multicloud
Specifica che la piattaforma è diversa 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 la CA Istio 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 con le funzionalità predefinite e la CA Istio. Inserisci i valori nel campo segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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 completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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 la CA Istio 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 segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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 FILE_PATH \ --ca_key FILE_PATH \ --root_cert FILE_PATH \ --cert_chain FILE_PATH
--fleet_id
L'ID del progetto host del parco risorse.--kubeconfig
Il percorso completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$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
(CR) che viene passata 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 applicare altri overlay e ogni file di overlay sostituisce la configurazione dei livelli precedenti.
GKE
Esegui il seguente comando per installare il piano di controllo con un'opzione facoltativa. 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 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 cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. 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 l'autorità di certificazione Cloud Service Mesh come dell'autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di riposo.asmcli
configura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità workload del parco--custom_overlay
Specifica il nome del file di overlay.
Al di fuori di Google Cloud
Esegui i seguenti comandi su Google Distributed Cloud, GKE su AWS, Amazon EKS o Microsoft AKS. Inserisci i valori negli appositi segnaposto.
Imposta il contesto attuale sul cluster utente:
kubectl config use-context CLUSTER_NAME
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 completokubeconfig
file. La variabile di ambiente$PWD
non funziona qui. Inoltre, le posizioni dei filekubeconfig
relative che utilizzano un carattere `~` non funzioneranno.--output_dir
Includi questa opzione per specificare una directory in cuiasmcli
scarica il pacchettoanthos-service-mesh
ed estrae il file di installazione, che contieneistioctl
, i sample e i manifest. In caso contrario,asmcli
scarica i file in una directorytmp
. Puoi specificare un percorso relativo o un percorso completo. La variabile di ambiente$PWD
non funziona qui.--platform multicloud
Specifica che la piattaforma è diversa 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 autorità di certificazione. La modifica delle autorità di certificazione durante un upgrade causa un tempo di riposo.asmcli
configura l'autorità di certificazione Cloud Service Mesh per utilizzare l'identità workload del parco--custom_overlay
Specifica il nome del file dell'overlay.
Esegui l'upgrade dei gateway
Se hai implementato 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.
Passare al nuovo piano di controllo
Recupera l'etichetta di revisione che si trova su
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-11910-9-67998f4b55-lrzpz 1/1 Running 0 68m asm-11910-9 istiod-asm-11910-9-67998f4b55-r76kr 1/1 Running 0 68m asm-11910-9 istiod-1187-26-1-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-11910-9 istiod-1187-26-1-5cd96f88f6-wm68b 1/1 Running 0 27s asm-11910-9
Nell'output, nella colonna
REV
, prendi nota del valore dell'etichetta della revisione per la nuova versione. In questo esempio, il valore èasm-11910-9
.Prendi nota anche del valore nell'etichetta della revisione per la vecchia versione
istiod
. Ti serve per eliminare la vecchia versione diistiod
al termine del trasferimento dei carichi di lavoro alla nuova versione. Nell'output di esempio, il valore l'etichetta di revisione della versione precedente èasm-11910-9
.
Aggiungi l'etichetta di revisione a uno spazio dei nomi dell'applicazione e rimuovi l'etichetta
istio-injection
(se esistente). Nel comando seguente, sostituisciREVISION
con il valore corrispondente alla nuova revisione diistiod
.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
Se nell'output viene visualizzato
"istio-injection not found"
, puoi ignorarlo. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichettaistio-injection
. Poiché il comportamento di inserimento automatico è undefined quando uno spazio dei nomi ha sia l'etichettaistio-injection
sia l'etichetta revision, tutti i comandikubectl label
nella documentazione di Cloud Service Mesh garantiscono esplicitamente che ne sia impostato solo uno.Riavvia i pod per attivare la re-iniezione.
kubectl rollout restart deployment -n NAMESPACE
Testa l'applicazione per verificare che i carichi di lavoro funzionino correttamente.
Se hai carichi di lavoro in altri spazi dei nomi, ripeti i passaggi per etichettare lo spazio dei nomi e riavviare i pod.
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 l'applicazione, segui i passaggi per eseguire il rollback.Completare la transizione
Se ritieni che la tua applicazione funzioni come previsto, rimuovi il vecchio piano di controllo per completare la transizione alla nuova versione.
Vai alla directory in cui si trovano i file del
anthos-service-mesh
repository GitHub.Configura il webhook di convalida in modo che utilizzi il nuovo piano di controllo:
kubectl apply -f asm/istio/istiod-service.yaml
Sposta il tag predefinito:
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME>
Elimina la vecchia versione 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, il vecchio
istio-ingressgateway
non ha 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 diistiod
:kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
Elimina la risorsa
validatingwebhookconfiguration
per la vecchia revisione:kubectl delete validatingwebhookconfiguration istio-validator-OLD_REVISION-istio-system -n istio-system --ignore-not-found
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:Rietichetta lo spazio dei nomi per abilitare l'inserimento automatico con la precedente versione di
istiod
. Il comando che utilizzi dipende dal fatto che tu abbia utilizzato un'etichetta di revisione oistio-injection=enabled
con la versione precedente.Se hai utilizzato un'etichetta di revisione per l'iniezione automatica:
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
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
Riavvia i pod per attivare la reiniezione in modo che i proxy abbiano versione:
kubectl rollout restart deployment -n NAMESPACE
Rimuovi la nuova versione di
istiod
. Assicurati che il valoreREVISION
nel seguente comando è corretto.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
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
Se non hai incluso il flag
--disable_canonical_service
,asmcli
ha attivato il controller del servizio di canonicalizzazione. Ti consigliamo di lasciarlo abilitato, ma se devi disattivarlo, consulta Abilitazione e disattivazione del controller del servizio di canonicalizzazione.Se hai implementato gateway, assicurati di modificare 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 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 (inserimento automatico). 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 sposti alcuni carichi di lavoro nella nuova versione, il che ti consente di monitorare l'effetto dell'upgrade con una piccola percentuale di 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-11910-9
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 far sì che i sidecar vengano iniettati.
Recupera l'etichetta di revisione su
istiod
eistio-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-11910-9 istio-ingressgateway-asm-182-2-8b5fc8767-hn4w2 1/1 Running 0 20s asm-11910-9 istiod-asm-11910-9-67998f4b55-lrzpz 1/1 Running 0 68m asm-11910-9 istiod-asm-11910-9-67998f4b55-r76kr 1/1 Running 0 68m asm-11910-9 istiod-asm-1187-26-5cd96f88f6-n7tj9 1/1 Running 0 27s asm-11910-9 istiod-asm-1187-26-5cd96f88f6-wm68b 1/1 Running 0 27s asm-11910-9
Nell'output, nella colonna
REV
, prendi nota del valore dell'etichetta della revisione per la nuova versione. In questo esempio, il valore èasm-11910-9
.Prendi nota anche del valore nell'etichetta della revisione per la vecchia versione
istiod
. Ti serve per eliminare la vecchia versione diistiod
al termine del trasferimento dei carichi di lavoro alla nuova versione. Nell'output di esempio, il valore dell'etichetta della revisione per la versione precedente èasm-11910-9
.
Passa alla nuova revisione di
istio-ingressgateway
. Nel seguente comando, sostituisciREVISION
con il valore corrispondente all'etichetta della 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"}]'
Risultato previsto:
service/istio-ingressgateway patched
Aggiungi l'etichetta di revisione a uno spazio dei nomi e rimuovi l'etichetta
istio-injection
(se esistente). Nel comando seguente, modificaREVISION
al valore che corrisponde alla nuova revisione diistiod
.kubectl label namespace NAMESPACE istio.io/rev=REVISION istio-injection- --overwrite
Se nell'output viene visualizzato
"istio-injection not found"
, puoi ignorarlo. Ciò significa che in precedenza lo spazio dei nomi non aveva Etichettaistio-injection
. Poiché il comportamento di inserimento automatico è undefined quando uno spazio dei nomi ha sia l'etichettaistio-injection
sia l'etichetta revision, tutti i comandikubectl label
nella documentazione di Cloud Service Mesh garantiscono esplicitamente che ne sia impostato solo uno.Riavvia i pod per attivare la re-iniezione.
kubectl rollout restart deployment -n NAMESPACE
Testa l'applicazione per verificare che i carichi di lavoro funzionino correttamente.
Se hai carichi di lavoro in altri spazi dei nomi, ripeti i passaggi per etichettare lo spazio dei nomi e riavviare i pod.
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 l'applicazione, segui i passaggi per eseguire il rollback.Completare la transizione
Se ritieni che la tua applicazione funzioni come previsto, rimuovi il vecchio piano di controllo per completare la transizione alla nuova versione.
Passa alla directory in cui si trovano i file dall'
anthos-service-mesh
Si trova il repository GitHub.Configura il webhook di convalida per utilizzare il nuovo piano di controllo.
kubectl apply -f asm/istio/istiod-service.yaml
Sposta il tag predefinito.
<OUTPUT_DIR>/istioctl tag set default --revision <NEW REVISION NAME> --overwrite
Elimina il deployment
istio-ingressgateway
precedente. 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 precedenteistio-ingressgateway
.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=OLD_REVISION -n istio-system --ignore-not-found=true
Elimina la vecchia versione di
istiod
. Il comando che utilizzi dipende se esegui la migrazione da Istio o 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 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 diistiod
.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-OLD_REVISION -n istio-system --ignore-not-found=true
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:Rietichetta lo spazio dei nomi per abilitare l'inserimento automatico con la precedente versione di
istiod
. Il comando che utilizzi dipende dal fatto che tu abbia utilizzato un'etichetta di revisione oistio-injection=enabled
con la versione precedente.Se hai utilizzato un'etichetta di revisione per l'iniezione automatica:
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
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
Riavvia i pod per attivare la re-iniezione in modo che i proxy abbiano la versione precedente:
kubectl rollout restart deployment -n NAMESPACE
Rimuovi il nuovo deployment
istio-ingressgateway
. Assicurati che il valore diREVISION
nel seguente comando sia corretto.kubectl delete deploy -l app=istio-ingressgateway,istio.io/rev=REVISION -n istio-system --ignore-not-found=true
Rimuovi la nuova versione di
istiod
. Assicurati che il valoreREVISION
nel seguente comando è corretto.kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod-REVISION -n istio-system --ignore-not-found=true
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
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.