Panoramica
Anthos Service Mesh gestito con asmcli
è un piano di controllo gestito e
un piano dati gestito semplicemente da configurare. Google ne gestisce affidabilità,
upgrade, scalabilità e sicurezza al posto tuo in modo compatibile con le versioni precedenti. Questa guida spiega come configurare o migrare le applicazioni ad Anthos Service Mesh gestito in una configurazione a cluster singolo o multi-cluster con asmcli
.
Per conoscere le funzionalità supportate e le limitazioni di Anthos Service Mesh gestito, consulta la pagina relativa alle funzionalità supportate da Anthos Service Mesh gestito.
Prerequisiti
Per iniziare, questa guida presuppone che tu abbia:
- Un progetto Cloud
- Un account di fatturazione Cloud
- Ottenute le autorizzazioni richieste per il provisioning di Anthos Service Mesh gestito
- Lo strumento di installazione
asmcli
,kpt
e altri strumenti specificati in Installare gli strumenti richiesti
Per un provisioning più rapido, nei cluster deve essere abilitato Workload Identity. Se Workload Identity non è abilitato, il provisioning verrà abilitato automaticamente.
Requisiti
- Uno o più cluster con una versione supportata di GKE, in una delle regioni supportate.
- Assicurati che il cluster abbia una capacità sufficiente per i componenti richiesti che
gestisce Anthos Service Mesh installa nel cluster.
- Il deployment
mdp-controller
nello spazio dei nomikube-system
richiede CPU: 50 m, memoria: 128 Mi. - Il daemonset
istio-cni-node
nello spazio dei nomikube-system
richiede CPU: 100 m, memoria: 100 Mi su ciascun nodo.
- Il deployment
- Assicurati che la macchina client da cui esegui il provisioning di Anthos Service Mesh gestito disponga di connettività di rete al server API.
- I cluster devono essere registrati in un parco risorse.
Questo passaggio può essere eseguito separatamente prima del provisioning o nell'ambito del provisioning passando i flag
--enable-registration
e--fleet-id
. Nel progetto deve essere abilitata la funzionalità del parco risorse mesh di servizi. Puoi abilitarlo come parte della provisioning passando
--enable-gcp-components
o eseguendo il seguente comando:gcloud container fleet mesh enable --project=FLEET_PROJECT_ID
dove FLEET_PROJECT_ID è l'ID progetto del progetto host del parco risorse.
GKE Autopilot è supportato solo con GKE versione 1.21.3 e successive.
Istio CNI è obbligatorio e installato per impostazione predefinita durante il provisioning di Anthos Service Mesh gestito.
Anthos Service Mesh gestito può utilizzare più cluster GKE in un ambiente con rete singola a progetto singolo o in un ambiente con rete singola con più progetti.
- Se unisci cluster che non sono nello stesso progetto, devono essere registrati nello stesso progetto host del parco risorse e i cluster devono trovarsi insieme in una configurazione di VPC condivisi sulla stessa rete.
- Per un ambiente multi-cluster a progetto singolo, il progetto del parco risorse può essere uguale al progetto del cluster. Per ulteriori informazioni sui parchi risorse, consulta la Panoramica dei parchi risorse.
- Per un ambiente con più progetti, ti consigliamo di ospitare il parco risorse in un progetto separato da quello dei progetti del cluster. Se i criteri dell'organizzazione e la configurazione esistente lo consentono, ti consigliamo di utilizzare il progetto VPC condiviso come progetto host del parco risorse. Per maggiori informazioni, consulta Configurazione dei cluster con un VPC condiviso.
- Se la tua organizzazione utilizza Controlli di servizio VPC e stai eseguendo il provisioning di Anthos Service Mesh gestito su cluster GKE, devi anche seguire i passaggi descritti in Controlli di servizio VPC per Anthos Service Mesh.
Limitazioni
Ti consigliamo di rivedere l'elenco delle funzionalità e delle limitazioni supportate da Anthos Service Mesh gestito. In particolare, tieni presente quanto segue:
L'API
IstioOperator
non è supportata perché il suo scopo principale è controllare i componenti nel cluster.Le migrazioni da Anthos Service Mesh gestito con
asmcli
a Anthos Service Mesh con API del parco risorse non sono supportate. Allo stesso modo, la configurazione di Anthos Service Mesh gestito con l'API del parco risorse da--management manual
a--management automatic
non è supportata.Per i cluster GKE Autopilot, la configurazione tra progetti è supportata solo con GKE 1.23 o versioni successive.
Per i cluster GKE Autopilot, per adattarsi al limite di risorse di GKE Autopilot, i limiti e le richieste di risorse proxy predefiniti sono impostati su 500 milioni di CPU e 512 Mb di memoria. Puoi eseguire l'override dei valori predefiniti utilizzando l'inserimento personalizzato.
Le funzionalità effettive disponibili per Anthos Service Mesh gestito dipendono dal canale di rilascio. Per ulteriori informazioni, consulta l'elenco completo delle funzionalità e delle limitazioni supportate da Anthos Service Mesh gestito.
Durante il processo di provisioning per un piano di controllo gestito, viene eseguito il provisioning dei CRD Istio corrispondenti al canale selezionato nel cluster specificato. Se nel cluster sono presenti CRD Istio, verranno sovrascritti.
Istio CNI non è compatibile con GKE Sandbox. Anthos Service Mesh gestito su Autopilot, quindi, non funziona con GKE Sandbox perché è richiesto CNI di Istio gestito.
Lo strumento
asmcli
deve avere accesso all'endpoint Google Kubernetes Engine (GKE). Puoi configurare l'accesso tramite un server "jump", ad esempio una VM di Compute Engine all'interno del VPC (Virtual Private Cloud), che concede un accesso specifico.
Prima di iniziare
Configura gcloud
Svolgi i passaggi che seguono anche se utilizzi Cloud Shell.
Esegui l'autenticazione con Google Cloud CLI:
gcloud auth login --project PROJECT_ID
Aggiorna i componenti:
gcloud components update
Configura
kubectl
in modo che punti al cluster.gcloud container clusters get-credentials CLUSTER_NAME \ --zone CLUSTER_LOCATION \ --project PROJECT_ID
Scarica lo strumento di installazione
Scarica la versione più recente dello strumento nella directory di lavoro corrente:
curl https://storage.googleapis.com/csm-artifacts/asm/asmcli > asmcli
Rendi eseguibile lo strumento:
chmod +x asmcli
Configura ogni cluster
Utilizza i passaggi seguenti per configurare Anthos Service Mesh gestito per ogni cluster nel tuo mesh.
Applica il piano di controllo gestito
Prima di applicare il piano di controllo gestito, devi selezionare un canale di rilascio.
Esegui lo strumento di installazione per ogni cluster che utilizzerà Anthos Service Mesh gestito. Ti consigliamo di includere entrambe le seguenti opzioni:
--enable-registration --fleet_id FLEET_PROJECT_ID
Questi due flag registrano il cluster in un parco risorse, dove FLEET_ID è l'ID progetto del progetto host del parco risorse. Se utilizzi un singolo progetto, FLEET_PROJECT_ID corrisponde a PROJECT_ID, mentre il progetto host del parco risorse e il progetto cluster sono uguali. Per configurazioni più complesse come il multiprogetto, consigliamo di utilizzare un progetto host del parco risorse separato.--enable-all
. Questo flag abilita sia i componenti obbligatori sia la registrazione.
Lo strumento asmcli
configura direttamente il piano di controllo gestito utilizzando gli strumenti e la logica all'interno dello strumento dell'interfaccia a riga di comando. Segui le istruzioni riportate di seguito a seconda dell'autorità di certificazione preferita.
Autorità di certificazione
Seleziona un'autorità di certificazione da utilizzare per il mesh.
Mesh CA
Esegui questo comando per installare il piano di controllo con funzionalità predefinite
e Mesh CA. Inserisci i valori nei segnaposto forniti. Sostituisci
RELEASE_CHANNEL con il canale appropriato:
regular
, stable
o rapid
.
./asmcli install \
-p PROJECT_ID \
-l LOCATION \
-n CLUSTER_NAME \
--fleet_id FLEET_PROJECT_ID \
--managed \
--verbose \
--output_dir DIR_PATH \
--enable-all
Servizio CA
- Segui i passaggi descritti in Configurare Certificate Authority Service.
- Esegui questo comando per installare il piano di controllo con funzionalità predefinite e Certificate Authority Service.
Inserisci i valori nei segnaposto forniti. Sostituisci
RELEASE_CHANNEL con il canale appropriato:
regular
,stable
orapid
.
./asmcli install \
-p PROJECT_ID \
-l LOCATION \
-n CLUSTER_NAME \
--fleet_id FLEET_PROJECT_ID \
--managed \
--verbose \
--output_dir DIR_PATH \
--enable-all \
--ca gcp_cas \
--ca_pool pool_name
Lo strumento scarica tutti i file per la configurazione del piano di controllo gestito nel --output_dir
specificato, installando lo strumento istioctl
e le applicazioni di esempio. I passaggi di questa guida presuppongono che tu esegua istioctl
dalla
--output_dir
località specificata durante l'esecuzione di asmcli install
, con
istioctl
presente nella rispettiva sottodirectory <Istio release dir>/bin
.
Se esegui nuovamente asmcli
sullo stesso cluster, la configurazione del piano di controllo esistente verrà sovrascritta. Assicurati di specificare le stesse opzioni
e gli stessi flag se vuoi usare la stessa configurazione.
Verifica che sia stato eseguito il provisioning del piano di controllo
Dopo qualche minuto, verifica che lo stato del piano di controllo sia ACTIVE
:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
L'output è simile a questo:
membershipStates: projects/746296320118/locations/us-central1/memberships/demo-cluster-1: servicemesh: controlPlaneManagement: details: - code: REVISION_READY details: 'Ready: asm-managed' state: ACTIVE ... state: code: OK description: 'Revision(s) ready for use: asm-managed.'
Se lo stato non raggiunge ACTIVE
" entro qualche minuto, consulta la sezione Controllare lo stato del piano di controllo gestito per saperne di più sui possibili errori.
Upgrade zero-touch
Una volta installato il piano di controllo gestito, Google ne eseguirà automaticamente l'upgrade quando saranno disponibili nuove release o patch.
Piano dati gestito
Se utilizzi Anthos Service Mesh gestito, Google gestisce completamente gli upgrade dei proxy, a meno che non li disattivi a livello di spazio dei nomi, carico di lavoro o revisione.
Con il piano dati gestito, i proxy collaterali e i gateway inseriti vengono aggiornati automaticamente in combinazione con il piano di controllo gestito riavviando i carichi di lavoro per reinserire nuove versioni del proxy. In genere questa operazione viene completata 1-2 settimane dopo l'upgrade del piano di controllo gestito.
Se disabilitata, la gestione del proxy si basa sul ciclo di vita naturale dei pod nel cluster e deve essere attivata manualmente dall'utente per controllare la frequenza di aggiornamento.
Il piano dati gestito esegue l'upgrade dei proxy rimuovendo i pod in esecuzione nelle versioni precedenti del proxy. Le rimozioni vengono eseguite gradualmente, rispettando il budget di interruzione dei pod e controllando la frequenza di modifica.
Il piano dati gestito non gestisce quanto segue:
- Pod non inseriti
- Pod inseriti manualmente
- Job
- StatefulSets
- DaemonSets
Se hai eseguito il provisioning di Anthos Service Mesh gestito su un cluster meno recente, puoi abilitare la gestione del piano dati per l'intero cluster:
kubectl annotate --overwrite controlplanerevision -n istio-system \
REVISION_LABEL \
mesh.cloud.google.com/proxy='{"managed":"true"}'
In alternativa, puoi abilitare il piano dati gestito in modo selettivo per una revisione, uno spazio dei nomi o un pod specifici del piano di controllo annotandolo con la stessa annotazione. Se controlli i singoli componenti in modo selettivo, l'ordine di precedenza è la revisione del piano di controllo, quindi lo spazio dei nomi e infine il pod.
Potrebbero essere necessari fino a dieci minuti prima che il servizio sia pronto per gestire i proxy nel cluster. Esegui questo comando per verificare lo stato:
gcloud container fleet mesh describe --project FLEET_PROJECT_ID
Output previsto
membershipStates:
projects/PROJECT_NUMBER/locations/global/memberships/CLUSTER_NAME:
servicemesh:
dataPlaneManagement:
details:
- code: OK
details: Service is running.
state: ACTIVE
state:
code: OK
description: 'Revision(s) ready for use: asm-managed-rapid.'
Se il servizio non diventa pronto entro dieci minuti, consulta lo stato del piano dati gestito per i passaggi successivi.
(Facoltativo) Disattivare il piano dati gestito
Se esegui il provisioning di Anthos Service Mesh gestito su un nuovo cluster, puoi disabilitare completamente il piano dati gestito oppure per singoli spazi dei nomi o pod. Il piano dati gestito continuerà a essere disabilitato per i cluster esistenti in cui era disabilitato per impostazione predefinita o manualmente.
Per disabilitare il piano dati gestito a livello di cluster e tornare alla gestione autonoma dei proxy collaterali, modifica l'annotazione:
kubectl annotate --overwrite controlplanerevision -n istio-system \
REVISION_LABEL \
mesh.cloud.google.com/proxy='{"managed":"false"}'
Per disabilitare il piano dati gestito per uno spazio dei nomi:
kubectl annotate --overwrite namespace NAMESPACE \
mesh.cloud.google.com/proxy='{"managed":"false"}'
Per disabilitare il piano dati gestito per un pod:
kubectl annotate --overwrite pod POD_NAME \
mesh.cloud.google.com/proxy='{"managed":"false"}'
Attiva le notifiche di manutenzione
Puoi richiedere di ricevere una notifica relativa alla prossima manutenzione del piano dati gestito fino a una settimana prima della pianificazione della manutenzione. Le notifiche di manutenzione non vengono inviate per impostazione predefinita. Devi inoltre configurare un periodo di manutenzione di GKE prima di poter ricevere le notifiche. Se abilitato, le notifiche vengono inviate almeno due giorni prima dell'operazione di upgrade.
Per attivare le notifiche di manutenzione del piano dati gestito:
Vai alla pagina Comunicazione.
Nella riga Anthos Service Mesh Upgrade, nella colonna Email, seleziona il pulsante di opzione per attivare le notifiche di manutenzione.
Ogni utente che vuole ricevere le notifiche deve attivarli separatamente. Se vuoi impostare un filtro email per queste notifiche, la riga dell'oggetto è:
Upcoming upgrade for your Anthos Service Mesh cluster "CLUSTER_LOCATION/CLUSTER_NAME"
.
L'esempio seguente mostra una tipica notifica di manutenzione del piano dati gestito:
Oggetto: Upgrade imminente per il cluster ASM "
<location/cluster-name>
"Gentile utente di Anthos Service Mesh,
L'upgrade dei componenti Anthos Service Mesh nel tuo cluster ${instance_id} (https://console.cloud.google.com/kubernetes/clusters/details/${instance_id}/details?project=${project_id}) è pianificato per il giorno ${scheduled_date_human_read}.
Per informazioni sul nuovo aggiornamento, consulta le note di rilascio (https://cloud.google.com/service-mesh/docs/release-notes).
Se questo intervento di manutenzione verrà annullato, riceverai un'altra email.
Cordiali saluti,
Il team di Anthos Service Mesh
(c) 2022 Google LLC 1600 Amphitheatre Parkway, Mountain View, CA 94043, USA Ti abbiamo inviato questo annuncio per aggiornarti su importanti modifiche relative alla Google Cloud Platform o al tuo account. Puoi disattivare le notifiche relative al periodo di manutenzione modificando le preferenze utente: https://console.cloud.google.com/user-preferences/communication?project=${project_id}
Configurare il rilevamento degli endpoint (solo per le installazioni multi-cluster)
Prima di continuare, dovresti aver già configurato Anthos Service Mesh gestito su ciascun cluster, come descritto nei passaggi precedenti. Non è necessario indicare che un cluster è primario, questo è il comportamento predefinito.
Inoltre, assicurati di aver scaricato asmcli
(solo se vuoi verificare la configurazione con l'applicazione di esempio) e di impostare le variabili di progetto e cluster.
Cluster pubblici
Configura il rilevamento degli endpoint tra cluster pubblici
Se utilizzi cluster pubblici (cluster non privati), puoi configurare il rilevamento degli endpoint tra cluster pubblici o più semplicemente abilitare il rilevamento degli endpoint tra cluster pubblici.
Cluster privati
Configura il rilevamento degli endpoint tra cluster privati
Quando utilizzi i cluster privati GKE, devi configurare l'endpoint del piano di controllo del cluster in modo che sia l'endpoint pubblico anziché l'endpoint privato. Fai riferimento a Configurare il rilevamento degli endpoint tra cluster privati.
Per un'applicazione di esempio con due cluster, vedi Esempio di servizio HelloWorld.
Esegue il deployment delle applicazioni
Per eseguire il deployment delle applicazioni, utilizza l'etichetta corrispondente al canale configurato durante l'installazione oppure istio-injection=enabled
se utilizzi etichette di iniezione predefinite.
Etichetta iniezione predefinita
kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev- --overwrite
Etichetta revisione
Prima di eseguire il deployment delle applicazioni, rimuovi eventuali etichette istio-injection
precedenti dagli spazi dei nomi e imposta invece l'etichetta istio.io/rev=REVISION_LABEL
.
Per modificarla con un'etichetta di revisione specifica, fai clic su REVISION_LABEL
e sostituiscila con l'etichetta applicabile: asm-managed-rapid
per Rapida, asm-managed
per Normale o asm-managed-stable
per Stabile.
L'etichetta della revisione corrisponde a un canale di rilascio:
Etichetta revisione | Canale |
---|---|
asm-managed |
Normale |
asm-managed-rapid |
Rapida |
asm-managed-stable |
Stabile |
kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION_LABEL --overwrite
A questo punto, hai configurato correttamente Anthos Service Mesh gestito. Se disponi di carichi di lavoro esistenti in spazi dei nomi etichettati, riavviali in modo che vengano inseriti i proxy.
Ora puoi eseguire il deployment delle tue applicazioni oppure puoi eseguire il deployment dell'applicazione di esempio Bookinfo.
Se esegui il deployment di un'applicazione in una configurazione multi-cluster, replica la configurazione di Kubernetes e del piano di controllo in tutti i cluster, a meno che tu non preveda di limitare la configurazione specifica a un sottoinsieme di cluster. La configurazione applicata a un determinato cluster è la fonte attendibile per il cluster.
Personalizza l'inserimento (facoltativo)
È disponibile la configurazione per pod per eseguire l'override di queste opzioni sui singoli pod.
Per farlo, devi aggiungere un container istio-proxy
al tuo pod. L'inserimento collaterale tratterà qualsiasi configurazione qui definita come un override del modello di iniezione predefinito.
Ad esempio, la configurazione seguente personalizza varie impostazioni, tra cui la riduzione delle richieste di CPU, l'aggiunta di un montaggio del volume e l'aggiunta di un hook preStop
:
apiVersion: v1
kind: Pod
metadata:
name: example
spec:
containers:
- name: hello
image: alpine
- name: istio-proxy
image: auto
resources:
requests:
cpu: "200m"
memory: "256Mi"
limites:
cpu: "200m"
memory: "256Mi"
volumeMounts:
- mountPath: /etc/certs
name: certs
lifecycle:
preStop:
exec:
command: ["sleep", "10"]
volumes:
- name: certs
secret:
secretName: istio-certs
In generale, è possibile impostare qualsiasi campo in un pod. Tuttavia, occorre prestare attenzione a determinati campi:
- Kubernetes richiede che il campo
image
sia impostato prima dell'esecuzione dell'inserimento. Sebbene sia possibile impostare un'immagine specifica in modo da sostituire quella predefinita, è consigliabile impostareimage
suauto
, in modo che l'iniettore collaterale selezioni automaticamente l'immagine da utilizzare. - Alcuni campi in
containers
dipendono dalle impostazioni correlate. Ad esempio, la richiesta di CPU deve essere inferiore al limite di CPU. Se entrambi i campi non sono configurati correttamente, il pod potrebbe non avviarsi. - Kubernetes consente di impostare sia
requests
sialimits
per le risorse inPodSpec
. GKE Autopilot considera solorequests
. Per ulteriori informazioni, consulta Impostare i limiti delle risorse in Autopilot.
Inoltre, alcuni campi sono configurabili da annotazioni sul pod, anche se è consigliabile utilizzare l'approccio precedente per personalizzare le impostazioni. Presta particolare attenzione ad alcune annotazioni:
- Per GKE Standard, se
sidecar.istio.io/proxyCPU
è impostato, assicurati di impostare esplicitamentesidecar.istio.io/proxyCPULimit
. In caso contrario, il limite di CPU del componente collaterale verrà impostato su illimitato. - Per GKE Standard, se
sidecar.istio.io/proxyMemory
è impostato, assicurati di impostare esplicitamentesidecar.istio.io/proxyMemoryLimit
. In caso contrario, il limite di memoria del file collaterale verrà impostato come illimitato. - Per GKE Autopilot, la configurazione delle risorse
requests
elimits
mediante annotazioni potrebbe eseguire l'overprovisioning delle risorse. Per evitarlo, usa l'approccio con modello di immagine. Vedi Esempi di modifica delle risorse in Autopilot.
Ad esempio, consulta la seguente configurazione dell'annotazione delle risorse:
spec:
template:
metadata:
annotations:
sidecar.istio.io/proxyCPU: "200m"
sidecar.istio.io/proxyCPULimit: "200m"
sidecar.istio.io/proxyMemory: "256Mi"
sidecar.istio.io/proxyMemoryLimit: "256Mi"
Verifica le metriche del piano di controllo
Puoi visualizzare la versione del piano di controllo e del piano dati in Metrics Explorer.
Per verificare che la configurazione funzioni correttamente:
Nella console Google Cloud, visualizza le metriche del piano di controllo:
Scegli la tua area di lavoro e aggiungi una query personalizzata utilizzando i seguenti parametri:
- Tipo di risorsa: container Kubernetes
- Metrica: client proxy
- Filtro:
container_name="cr-REVISION_LABEL"
- Raggruppa per: etichetta
revision
ed etichettaproxy_version
- Aggregatore: somma
- Ciclo: 1 minuto
Quando esegui Anthos Service Mesh sia con un piano di controllo gestito da Google sia con un piano di controllo in-cluster, puoi distinguere le metriche in base al nome del container. Ad esempio, le metriche gestite hanno
container_name="cr-asm-managed"
, mentre le metriche non gestite hannocontainer_name="discovery"
. Per visualizzare le metriche di entrambi, rimuovi il filtro sucontainer_name="cr-asm-managed"
.Verifica la versione del piano di controllo e della versione del proxy ispezionando i seguenti campi in Metrics Explorer:
- Il campo revision indica la versione del piano di controllo.
- Il campo proxy_version indica
proxy_version
. - Il campo value indica il numero di proxy connessi.
Per la mappatura della versione di Anthos Service Mesh dal canale corrente, consulta Versioni di Anthos Service Mesh per canale.
Esegui la migrazione delle applicazioni ad Anthos Service Mesh gestito
Preparati per la migrazione
Per prepararti alla migrazione delle applicazioni da Anthos Service Mesh nel cluster alla soluzione gestita Anthos Service Mesh, esegui questi passaggi:
Esegui lo strumento come indicato nella sezione Applicare il piano di controllo gestito da Google.
(Facoltativo) Se vuoi utilizzare il piano dati gestito da Google, abilita la gestione del piano dati:
kubectl annotate --overwrite controlplanerevision REVISION_TAG \ mesh.cloud.google.com/proxy='{"managed":"true"}'
Esegui la migrazione delle applicazioni
Per eseguire la migrazione delle applicazioni da Anthos Service Mesh nel cluster ad Anthos Service Mesh gestito, esegui questi passaggi:
Sostituisci l'etichetta dello spazio dei nomi attuale. I passaggi richiesti variano a seconda che tu voglia utilizzare le etichette di inserimento predefinite (ad esempio,
istio-injection enabled
) o l'etichetta di revisione.Etichetta iniezione predefinita
Esegui questo comando per spostare il tag predefinito nella revisione gestita:
istioctl tag set default --revision REVISION_LABEL
Esegui questo comando per etichettare lo spazio dei nomi utilizzando
istio-injection=enabled
, se non lo era già:kubectl label namespace NAMESPACE istio-injection=enabled istio.io/rev- \ --overwrite
Etichetta revisione
Se hai utilizzato l'etichetta
istio.io/rev=REVISION_LABEL
, esegui questo comando:kubectl label namespace NAMESPACE istio-injection- istio.io/rev=REVISION_LABEL \ --overwrite
Esegui un upgrade in sequenza dei deployment nello spazio dei nomi:
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 precedenti per ogni spazio dei nomi.
Se hai eseguito il deployment dell'applicazione in una configurazione multi-cluster, replica la configurazione di Kubernetes e Istio in tutti i cluster, a meno che tu non voglia limitare questa configurazione solo a un sottoinsieme di cluster. La configurazione applicata a un particolare cluster è la fonte attendibile per il cluster.
Verifica che le metriche vengano visualizzate come previsto seguendo i passaggi descritti in Verificare le metriche del piano di controllo.
Se ritieni che la tua applicazione funzioni come previsto, puoi rimuovere istiod
nel cluster dopo aver spostato tutti gli spazi dei nomi sul piano di controllo gestito oppure mantenerli come backup: istiod
farà automaticamente fare lo scale down per utilizzare meno risorse. Per rimuoverlo, vai a
Elimina piano di controllo precedente.
In caso di problemi, puoi identificarli e risolverli utilizzando le informazioni riportate in Risolvere i problemi del piano di controllo gestito e, se necessario, eseguire il rollback alla versione precedente.
Elimina piano di controllo precedente
Dopo aver installato e confermato che tutti gli spazi dei nomi utilizzano il piano di controllo gestito da Google, puoi eliminare il piano di controllo precedente.
kubectl delete Service,Deployment,HorizontalPodAutoscaler,PodDisruptionBudget istiod -n istio-system --ignore-not-found=true
Se hai utilizzato istioctl kube-inject
anziché l'inserimento automatico o se hai installato gateway aggiuntivi, controlla le metriche per il piano di controllo e verifica che il numero di endpoint connessi sia zero.
Rollback
Segui questi passaggi se devi eseguire il rollback alla versione precedente del piano di controllo:
Aggiorna i carichi di lavoro da inserire con la versione precedente del piano di controllo. Nel comando seguente, il valore di revisione
asm-191-1
viene utilizzato solo come esempio. Sostituisci il valore di esempio con l'etichetta di revisione del piano di controllo precedente.kubectl label namespace NAMESPACE istio-injection- istio.io/rev=asm-191-1 --overwrite
Riavvia i pod per attivare la reiniezione in modo che i proxy abbiano la versione precedente:
kubectl rollout restart deployment -n NAMESPACE
Il piano di controllo gestito eseguirà automaticamente la scalabilità fino a zero e non utilizzerà alcuna risorsa quando non in uso. I webhook mutanti e il provisioning rimarranno invariati e non influiranno sul comportamento del cluster.
Ora il gateway è impostato sulla revisione asm-managed
. Per eseguire il rollback, esegui nuovamente il comando di installazione di Anthos Service Mesh, che eseguirà nuovamente il deployment del gateway puntando al piano di controllo nel cluster:
kubectl -n istio-system rollout undo deploy istio-ingressgateway
In caso di esito positivo, è previsto questo output:
deployment.apps/istio-ingressgateway rolled back
Disinstalla
Il piano di controllo gestito scala automaticamente fino a zero quando non è utilizzato da nessuno spazio dei nomi. Per la procedura dettagliata, consulta Disinstallare Anthos Service Mesh.
Risoluzione dei problemi
Per identificare e risolvere i problemi riscontrati durante l'utilizzo del piano di controllo gestito, vedi Risoluzione dei problemi del piano di controllo gestito.
Che cosa succede dopo?
- Scopri di più sui canali di rilascio.
- Esegui la migrazione da
IstioOperator
. - Esegui la migrazione di un gateway al piano di controllo gestito.
- Scopri come abilitare le funzionalità facoltative di Anthos Service Mesh gestite, ad esempio: