Quando installi Anthos Service Mesh, devi specificare un profilo di configurazione. I profili di configurazione sono file YAML che definiscono e configurano le funzionalità installate con Anthos Service Mesh. I seguenti profili sono forniti con Anthos Service Mesh:
asm-gcp
: utilizza questo profilo se tutti i cluster GKE si trovano nello stesso progetto. Quando installi Anthos Service Mesh con questo profilo, vengono abilitate le seguenti funzionalità:Telemetria mesh, che fornisce dati alle dashboard Anthos Service Mesh nella console Google Cloud.
Le altre funzionalità predefinite supportate elencate nella pagina Funzionalità supportate per il profilo di configurazione
asm-gcp
.
asm-gcp-multiproject
: utilizza questo profilo se il tuo cluster GKE si trova in un Virtual Private Cloud condiviso e vuoi aggiungere cluster di progetti diversi ad Anthos Service Mesh. Quando installi Anthos Service Mesh utilizzando il profiloasm-gcp-multiproject
:Le dashboard di Anthos Service Mesh nella console Google Cloud al momento non sono disponibili. Tuttavia, puoi comunque visualizzare i log in Cloud Logging e le metriche in Cloud Monitoring per ciascun progetto.
Le funzionalità predefinite supportate elencate nella pagina Funzionalità supportate per il profilo di configurazione
asm-gcp-multiproject
sono attive.
asm-multicloud
: utilizza questo profilo per i cluster in altri ambienti supportati: GKE su VMware, GKE su AWS, Amazon Elastic Kubernetes Service (Amazon EKS) e Microsoft Azure Kubernetes Service (Microsoft AKS). Quando installi Anthos Service Mesh utilizzando il profiloasm-multicloud.yaml
, vengono attivate le funzionalità predefinite supportate nella pagina Funzionalità supportate per il profilo di configurazioneasm-multicloud
.
I profili si trovano nella sottodirectory manifests/profiles
all'interno della directory principale dell'installazione di Anthos Service Mesh.
Puoi eseguire l'override del profilo di configurazione e attivare le funzionalità facoltative supportate utilizzando l'API IstioOperator
. Puoi specificare la IstioOperator
configurazione in un file YAML, ad esempio
feature.yaml
. Il nome del file YAML non è importante.
Anche se puoi modificare la configurazione apportando modifiche nel profilo o
specificando i parametri di configurazione nella riga di comando utilizzando l'opzione --set
, ti consigliamo di utilizzare un file YAML di configurazione IstioOperator
in modo da poter archiviare il file nel tuo sistema di controllo della versione insieme agli
altri file di configurazione delle risorse. Puoi specificare più file nella riga di comando
quando abiliti le funzionalità facoltative.
Esempi
Per attivare una funzionalità durante l'installazione o l'upgrade di Anthos Service Mesh, devi includere sia il profilo sia il file YAML per la funzionalità che vuoi attivare. Questi esempi presuppongono che tu abbia completato tutti i passaggi nella guida all'installazione o all'upgrade che segui fino al punto in cui installi Anthos Service Mesh.
Abilita un gateway in uscita
Questo esempio mostra come abilitare un gateway in uscita su GKE su VMware.
Copia il seguente file YAML in
feature.yaml
e salva il file:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: egressGateways: - name: istio-egressgateway enabled: true
Per installare Anthos Service Mesh su GKE su VMware, nella riga di comando seguente sostituisci
REVISION
con la versione di Anthos Service Mesh che stai installando, ad esempio:asm-1614-2
istioctl install \ --set profile=asm-multicloud \ --set revision=REVISION \ -f feature.yaml
Attiva tracciamento
Questo esempio mostra come abilitare Cloud Trace su GKE.
Per le installazioni e gli upgrade su GKE, devi
preparare istio-operator.yaml
,
che contiene informazioni sul progetto e sul cluster. Quando
configuri istio-operator.yaml
, devi impostare il profilo che vuoi utilizzare,
asm-gcp
o asm-gcp-multiproject
. Poiché il profilo è configurato in istio-operator.yaml
, in questo caso non è necessario specificarlo nella riga di comando, anche se è consigliabile specificarlo per maggiore chiarezza.
Copia il seguente file YAML in
feature.yaml
e salva il file:apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: global: proxy: tracer: stackdriver
Per installare Anthos Service Mesh su GKE, utilizza la seguente riga di comando:
- Sostituisci
PROFILE
con il profilo che stai utilizzando:asm-gcp
oasm-gcp-multiproject
- Sostituisci
REVISION
con la versione esatta di Anthos Service Mesh che stai installando, ad esempio:asm-1614-2
istioctl install \ -f asm/cluster/istio-operator.yaml \ --set profile=PROFILE \ --set revision=REVISION \ -f feature.yaml
- Sostituisci
YAML per le funzionalità facoltative
Le seguenti sezioni forniscono il codice YAML per abilitare funzionalità facoltative e supportate. Quando abiliti una funzionalità facoltativa, devi includere sia il profilo che il file YAML per la funzionalità che vuoi abilitare nella riga di comando. Per GKE, il profilo è configurato in istio-operator.yaml
.
Modalità mTLS STRICT
La configurazione global.mtls.enabled
è stata rimossa per evitare problemi con gli upgrade e per offrire un'installazione più flessibile. Per attivare mTLS di STRICT
,
configura invece un
criterio di autenticazione peer.
Indirizzare Envoy a stdout
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: accessLogFile: "/dev/stdout"
Per ulteriori informazioni, vedi Abilitare il logging degli accessi di Envoy.
Cloud Trace
Per le installazioni su GKE, puoi abilitare Cloud Trace. Per informazioni più dettagliate sui prezzi, consulta la pagina Prezzi di Cloud Trace.
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: global: proxy: tracer: stackdriver
La frequenza di campionamento predefinita è pari all'1%, ma puoi sostituire quella predefinita specificando un valore traceSampling
. Il valore deve essere compreso tra 0,0 e 100,0 con una precisione di 0,01. Ad esempio, per tracciare 5 richieste ogni 10.000,utilizza 0, 05.
L'esempio seguente mostra una frequenza di campionamento del 100% (opzione utilizzata solo a scopo dimostrativo o per la risoluzione dei problemi).
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: meshConfig: enableTracing: true values: pilot: traceSampling: 100 global: proxy: tracer: stackdriver
Propagazione del contesto di Trace
Anche se i proxy sidecar possono inviare automaticamente intervalli di traccia, hanno bisogno di alcuni suggerimenti per collegare l'intera traccia. Le applicazioni devono propagare le intestazioni HTTP appropriate in modo che, quando i proxy inviano informazioni sugli intervalli, gli intervalli possano essere correlati correttamente in un'unica traccia.
Per farlo, un'applicazione deve raccogliere e propagare le seguenti intestazioni dalla richiesta in entrata a tutte le richieste in uscita:
- x-request-id
- x-b3-traceid
- x-b3-spanid
- x-b3-parentspanid
- x-b3-sampled
- x-b3-flags
- x-ot-span-context
- x-cloud-trace-context
- Traceparent
- grpc-trace-bin
Per esempi di propagazione delle intestazioni, vedi Tracciare la propagazione del contesto.
In uscita tramite gateway in uscita
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: egressGateways: - name: istio-egressgateway enabled: true
Per ulteriori informazioni, consulta la sezione Gateway in uscita.
Interfaccia di rete del container Istio
La modalità di abilitazione di Istio Container Network Interface (CNI) dipende dall'ambiente in cui è installato Anthos Service Mesh. Devi inoltre abilitare un criterio di rete.
Abilita CNI su GKE
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: cni: enabled: true namespace: kube-system values: cni: cniBinDir: /home/kubernetes/bin excludeNamespaces: - istio-system - kube-system
Abilita CNI su GKE su VMware
Per GKE su VMware, aggiungi gke-system
a
excludeNamespaces
e values.cni.cniBinDir
.
è /opt/cni/bin
:
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: components: cni: enabled: true namespace: kube-system values: cni: cniBinDir: /opt/cni/bin excludeNamespaces: - istio-system - kube-system - gke-system
Abilita un bilanciatore del carico interno
Per le installazioni su GKE, puoi abilitare un bilanciatore del carico interno per il gateway in entrata Istio. Nel seguente codice YAML, sostituisci PROFILE
con il profilo che stai utilizzando, asm-gcp
o asm-gcp-multiproject
.
apiVersion: install.istio.io/v1alpha1 kind: IstioOperator spec: profile: PROFILE components: ingressGateways: - name: istio-ingressgateway enabled: true k8s: serviceAnnotations: cloud.google.com/load-balancer-type: "internal" service: ports: - name: status-port port: 15020 - name: http2 port: 80 - name: https port: 443
Gestione esterna dei certificati sul gateway in entrata
Per informazioni su come abilitare la gestione dei certificati esterni sul gateway in entrata utilizzando Envoy SDS, consulta Gateway sicuri.