Attivazione di funzionalità facoltative

Quando installi Anthos Service Mesh, a seconda dell'ambiente puoi specificare un profilo di configurazione o un file overlay che imposta il profilo automaticamente. I profili di configurazione sono file YAML che utilizzano l'API IstioOperator. I profili definiscono e configurano le funzionalità installate con Anthos Service Mesh. I profili Anthos Service Mesh sono overlay del profilo empty (che non significa nessuna impostazione) o del profilo Istio default. Con Anthos Service Mesh vengono forniti i seguenti profili:

  • asm-gcp: utilizza questo profilo se tutti i tuoi cluster GKE si trovano nello stesso progetto. Quando installi Anthos Service Mesh con questo profilo, vengono abilitate le seguenti funzionalità:

  • 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 profilo asm-gcp-multiproject:

    • Le dashboard di Anthos Service Mesh nella console Google Cloud attualmente 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 profilo asm-multicloud.yaml, vengono attivate le funzionalità predefinite supportate elencate nella pagina Funzionalità supportate per il profilo di configurazione asm-multicloud.

I profili si trovano nella sottodirectory manifests/profiles all'interno della directory principale dell'installazione di Anthos Service Mesh.

File di overlay

Un file di overlay è un file YAML contenente una risorsa (RP) personalizzata IstioOperator che puoi utilizzare per configurare il piano di controllo. Puoi eseguire l'override della configurazione predefinita e attivare le funzionalità facoltative supportate in un file di overlay. Puoi sovrapporre più overlay e ogni file di overlay sostituisce la configurazione dei livelli precedenti.

Quando installi o esegui l'upgrade di Anthos Service Mesh utilizzando il comando istioctl install, puoi specificare uno o più file overlay sulla riga di comando con l'opzione della riga di comando -f.

Non includere più RP in un unico file YAML crea file YAML separati per ogni RP
più RP in un unico YAML file YAML separati per ogni RP

Anche se puoi modificare la configurazione specificando i parametri di configurazione nella riga di comando utilizzando l'opzione --set per istioctl install, ti consigliamo di usare un file di overlay in modo da poter archiviare il file nel tuo sistema di controllo della versione insieme agli altri file di definizione delle risorse. Devi conservare questi file per l'upgrade di Anthos Service Mesh in modo che il mesh di servizi abbia la stessa configurazione dopo l'upgrade.

I file degli overlay in questa pagina si trovano all'interno del pacchetto asm in GitHub. Questi file contengono personalizzazioni comuni ai profili. Puoi utilizzare questi file così come sono o apportare ulteriori modifiche, se necessario. Puoi anche creare file di overlay, come descritto in Personalizzazione della configurazione.

Quando installi Anthos Service Mesh utilizzando lo script install_asm fornito da Google, puoi specificare uno o più file overlay con le opzioni --option o --custom_overlay. Se non devi apportare modifiche ai file, puoi utilizzare --option e lo script recupera il file da GitHub per te. In caso contrario, puoi apportare modifiche al file dell'overlay e poi utilizzare l'opzione --custom_overlay per passarlo allo script install_asm. Per esempi di utilizzare entrambe le opzioni, vedi esempi di install_asm.

Per scaricare il pacchetto asm:

I passaggi seguenti utilizzano kpt per scaricare il pacchetto asm dal repository GitHub. Se preferisci, puoi utilizzare git clone.

  1. Se non l'hai ancora fatto, installa kpt:

    gcloud components install kpt
    
  2. Scarica il pacchetto che contiene i file:

    kpt pkg get \
    https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.7-asm asm
    

Esempi

Per attivare una funzionalità durante l'installazione o l'upgrade di Anthos Service Mesh, devi includere sia il file del profilo che il file dell'overlay che imposta il profilo e il file per la funzionalità che vuoi attivare. Il comando esatto varia leggermente a seconda dell'ambiente e dell'utilizzo dello script install_asm o del comando istioctl install.

Tutti i comandi seguenti impostano un'etichetta di revisione su istiod. L'etichetta di revisione ha il formato istio.io/rev=asm-178-10. L'etichetta della revisione viene utilizzata dal webhook automatico dell'iniettore collaterale per associare i file collaterali inseriti a una determinata revisione istiod. Per abilitare l'inserimento automatico collaterale per uno spazio dei nomi, devi etichettarlo con una revisione corrispondente all'etichetta di revisione su istiod.

Abilita un gateway in uscita su GKE On-Prem

Questo esempio presuppone che tu abbia seguito i passaggi nella guida sull'installazione di Anthos Service Mesh on-premise fino al punto in cui installerai Anthos Service Mesh e che il pacchetto asm si trovi nella directory di lavoro attuale. Il file egressgateways.yaml contiene la configurazione per abilitare un gateway in uscita.

  1. Installa Anthos Service Mesh su GKE su VMware:

    istioctl install \
      --set profile=asm-multicloud \
      -f asm/istio/options/egressgateways.yaml \
      --set revision=asm-178-10
    
  2. Assicurati di tornare alla guida all'installazione di GKE su VMware per configurare il webhook di convalida, necessario per le nuove installazioni.

Abilita un gateway in uscita su GKE su Google Cloud

Ti consigliamo di utilizzare lo script install_asm per configurare cluster autonomi o più cluster nello stesso progetto. Lo script utilizza il profilo asm-gcp e imposta un'etichetta di revisione su istiod. Questo esempio presuppone che tu abbia seguito la guida sull'installazione di Anthos Service Mesh su GKE per scaricare la versione dello script install_asm nel ramo release-1.7-asm che installa Anthos Service Mesh1.7.8.

Per utilizzare lo script install_asm per installare un gateway in uscita:

./install_asm \
  --project_id PROJECT_ID \
  --cluster_name CLUSTER_NAME \
  --cluster_location CLUSTER_LOCATION \
  --mode install \
  --enable_apis \
  --option egressgateways

Questo comando esegue lo script per una nuova installazione, imposta il profilo asm-gcp, configura il cluster con le opzioni richieste da Anthos Service Mesh, abilita Mesh CA (l'autorità di certificazione predefinita per le nuove installazioni), consente allo script di abilitare le API di Google richieste e recupera egressgateways.yaml da GitHub.

Abilita un gateway in uscita su cluster GKE in progetti diversi

Attualmente, lo script install_asm non supporta l'installazione di Anthos Service Mesh con il profilo asm-gcp-multiproject, che è il profilo richiesto quando vuoi configurare più cluster in progetti diversi per Anthos Service Mesh.

La riga di comando seguente presuppone che tu abbia seguito tutti i passaggi descritti nell'installazione e migrazione di più progetti fino al punto in cui installi Anthos Service Mesh e che il pacchetto asm si trovi nella directory di lavoro attuale.

  1. Installa Anthos Service Mesh:

    istioctl install \
     -f asm/istio/istio-operator.yaml \
     -f asm/istio/options/multiproject.yaml \
     -f asm/istio/options/multicluster.yaml\
     -f asm/istio/options/egressgateways.yaml \
     --set revision=asm-178-10
    

    I seguenti file si sovrappongono alle impostazioni nel file istio-operator.yaml:

    • Il file multiproject.yaml imposta il profilo asm-gcp-multiproject. Poiché questo file imposta il profilo, devi specificarlo prima degli altri file di overlay.

    • Il file multicluster.yaml configura le impostazioni necessarie ad Anthos Service Mesh per una configurazione multi-cluster.

    • Il file egressgateways.yaml configura il gateway in uscita.

  2. Assicurati di tornare alla guida all'installazione per più progetti per configurare il webhook di convalida, necessario per le nuove installazioni.

YAML per funzionalità facoltative

Le seguenti sezioni forniscono il codice YAML per abilitare le funzionalità facoltative e supportate.

Modalità mTLS STRICT

La configurazione di global.mtls.enabled è stata rimossa per evitare problemi con gli upgrade e per offrire un'installazione più flessibile. Per attivare la tecnologia mTLS di STRICT, configura invece un criterio di autenticazione peer.

Indirizza 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 dei 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 tracing.sampling. 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% (che useresti solo a scopo dimostrativo o per la risoluzione dei problemi).

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  meshConfig:
    enableTracing: true
    defaultConfig:
      tracing:
        sampling: 100
  values:
    global:
      proxy:
        tracer: stackdriver

Trace la propagazione del contesto

Sebbene i proxy collaterali possano 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.

A questo scopo, un'applicazione deve raccogliere e propagare le seguenti intestazioni dalla richiesta in entrata a qualsiasi richiesta in uscita:

  • x-request-id
  • traccia x-b3
  • x-b3-spanid
  • x-b3-parentspanid
  • campionato x-b3
  • flag x-b3
  • x-ot-span-context
  • x-cloud-trace-context
  • Traceparent
  • grpc-trace-bin

Per esempi di propagazione delle intestazioni, consulta Tracciare la propagazione del contesto.

Crea una traccia dal client con un ID personalizzato

Per creare una traccia da un client con un ID personalizzato, usa il comando curl per creare una richiesta con un client esterno e forzare la visualizzazione di una traccia. Ad esempio:

curl $URL --header "x-client-trace-id: 105445aa7843bc8bf206b12000100000"

Per ulteriori informazioni su x-client-trace-id, consulta la documentazione di Envoy.

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 Gateway in uscita.

Interfaccia di rete del container Istio

L'abilitazione dell'interfaccia CINI (Container Network Interface) per Istio dipende dall'ambiente in cui è installato Anthos Service Mesh. Devi anche 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

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.

apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
spec:
  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
            targetPort: 8080
          - name: https
            port: 443
            targetPort: 8443

Gestione dei certificati esterni sul gateway in entrata

Per informazioni su come abilitare la gestione dei certificati esterni sul gateway in entrata utilizzando Envoy SDS, consulta Gateway sicuri.