Questa guida spiega come installare l'applicazione di esempio Online Boutique per dimostrare Anthos Service Mesh. Se non hai installato Anthos Service Mesh, consulta la sezione Guide all'installazione per scegliere la guida più adatta a te.
Attivazione dell'inserimento automatico collaterale
Per abilitare l'inserimento automatico di sidecar (inserimento automatico) per l'applicazione di esempio, devi aggiungere un'etichetta di revisione allo spazio dei nomi dell'esempio. L'etichetta che aggiungi dipende se hai eseguito il deployment del piano di controllo gestito da Google di Anthos Service Mesh o se hai installato il piano di controllo nel cluster. L'etichetta di revisione viene utilizzata dal webhook dell'iniettore sidecar per associare i file collaterali inseriti a una determinata revisione del piano di controllo.
Nel cluster
Crea uno spazio dei nomi per l'applicazione:
kubectl create namespace demo
Utilizza il seguente comando per individuare l'etichetta su
istiod
:kubectl -n istio-system get pods -l app=istiod --show-labels
L'output è simile al seguente:
NAME READY STATUS RESTARTS AGE LABELS istiod-asm-198-6-5788d57586-bljj4 1/1 Running 0 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586 istiod-asm-198-6-5788d57586-vsklm 1/1 Running 1 23h app=istiod,istio.io/rev=asm-198-6,istio=istiod,pod-template-hash=5788d57586
Nell'output, sotto la colonna
LABELS
, prendi nota del valore dell'etichetta di revisioneistiod
, che segue il prefissoistio.io/rev=
. In questo esempio, il valore èasm-198-6
.Applica l'etichetta di revisione allo spazio dei nomi
demo
. Nel comando seguente, REVISION è il valore dell'etichetta di revisioneistiod
che hai annotato nel passaggio precedente.kubectl label namespace demo istio-injection- istio.io/rev=REVISION --overwrite
Puoi ignorare il messaggio
"istio-injection not found"
nell'output. Ciò significa che lo spazio dei nomi non aveva in precedenza l'etichettaistio-injection
, cosa che dovresti aspettarti nelle nuove installazioni di Anthos Service Mesh o nei nuovi deployment. Poiché l'inserimento automatica non riesce se uno spazio dei nomi contiene sia l'etichettaistio-injection
sia l'etichetta di revisione, tutti i comandikubectl label
nella documentazione di Anthos Service Mesh comprendono la rimozione dell'etichettaistio-injection
.
Gestita da Google
Crea uno spazio dei nomi per l'applicazione:
kubectl create namespace demo
Applica l'etichetta di revisione
asm-managed
allo spazio dei nomidemo
:kubectl label namespace demo istio-injection- istio.io/rev=asm-managed --overwrite
Puoi ignorare il messaggio
"istio-injection not found"
nell'output. Ciò significa che lo spazio dei nomi non aveva in precedenza l'etichettaistio-injection
, cosa che dovresti aspettarti nelle nuove installazioni di Anthos Service Mesh o nei nuovi deployment. Poiché l'inserimento automatica non riesce se uno spazio dei nomi contiene sia l'etichettaistio-injection
sia l'etichetta di revisione, tutti i comandikubectl label
nella documentazione di Anthos Service Mesh comprendono la rimozione dell'etichettaistio-injection
.
Download e deployment dell'esempio
Ora che l'inserimento automatica è abilitata nello spazio dei nomi demo
, quando esegui il deployment dei servizi dell'applicazione BookInfo, i proxy sidecar vengono inseriti insieme a ciascun servizio.
Installa
kpt
se non lo hai già fatto:gcloud components install kpt
Scarica l'anteprima utilizzando
kpt
:kpt pkg get \ https://github.com/GoogleCloudPlatform/microservices-demo.git/release \ online-boutique
Esegui il deployment dell'esempio nel cluster:
kubectl apply -n demo -f online-boutique
Trova l'indirizzo IP esterno del servizio
frontend-external
:kubectl get service frontend-external -n demo
Visita l'applicazione sul tuo browser per confermare l'installazione:
http://EXTERNAL_IP/
Per GKE, puoi esplorare le funzionalità di osservabilità di Anthos Service Mesh nella console Google Cloud. Tieni presente che possono essere necessari fino a 10 minuti prima che il grafico della topologia mostri i servizi nel tuo mesh.
Al termine dell'esplorazione, rimuovi l'esempio di Boutique online:
kubectl delete namespaces demo