Attivazione di funzionalità facoltative

Quando installi Anthos Service Mesh, le funzionalità del piano di controllo attivate per impostazione predefinita variano a seconda della piattaforma. Puoi abilitare le funzionalità facoltative includendo un file di overlay durante l'installazione (o l'upgrade) di Anthos Service Mesh. Un file di overlay è un file YAML contenente una risorsa (RP) personalizzata di IstioOperator che utilizzi per configurare il piano di controllo. Puoi ignorare la configurazione predefinita e attivare una funzionalità facoltativa in un file di overlay. Puoi sovrapporre più overlay e ogni file di overlay sostituisce la configurazione dei livelli precedenti.

Informazioni sui file di overlay

I file degli overlay in questa pagina si trovano all'interno del pacchetto anthos-service-mesh in GitHub. Questi file contengono personalizzazioni comuni alla configurazione predefinita. Puoi utilizzare questi file così come sono o apportare ulteriori modifiche in base alle esigenze.

  • Quando installi Anthos Service Mesh utilizzando il comando istioctl install, puoi specificare uno o più file di overlay con l'opzione della riga di comando -f. 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 utilizzare un file di overlay in modo da poter archiviare il file nel tuo sistema di controllo della versione insieme agli altri file di risorse personalizzati. Devi conservare questi file per l'upgrade di Anthos Service Mesh, in modo che il piano di controllo abbia la stessa configurazione dopo l'upgrade.

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

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

Download del pacchetto anthos-service-mesh in corso...

Per scaricare il pacchetto anthos-service-mesh:

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.8-asm asm
    

    Gli esempi seguenti presuppongono che il pacchetto asm si trovi nella tua directory di lavoro attuale.

Esempi

Per attivare una funzionalità durante l'installazione di Anthos Service Mesh, il comando esatto varia leggermente a seconda della piattaforma e se stai utilizzando lo script install_asm o il comando istioctl install.

Tutti i comandi seguenti impostano un'etichetta di revisione su istiod. Il nome del deployment istiod verrà impostato su istiod-asm-186-8. L'etichetta di revisione è nel formato istio.io/rev=asm-186-8. 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 descritti nella guida Installazione di Anthos Service Mesh on-premise fino al punto in cui stai installando Anthos Service Mesh. La guida include i passaggi per impostare la variabile di ambiente CTX_CLUSTER1 e configurare cluster.yaml. Una delle impostazioni configurate in cluster.yaml è la revisione. Il file egressgateways.yaml contiene la configurazione per abilitare un gateway in uscita facoltativo.

  1. Installa Anthos Service Mesh su GKE su VMware:

    istioctl install --context="${CTX_CLUSTER1}" \
      -f cluster.yaml \
      -f asm/istio/options/egressgateways.yaml
    
  2. Assicurati di tornare alla guida all'installazione di GKE su VMware per configurare il webhook di convalida, necessario per le nuove installazioni.

L'ordine dei file nella riga di comando è importante. Assicurati di specificare prima cluster.yaml, che contiene la configurazione richiesta per le funzionalità predefinite, quindi i file degli overlay in seguito.

Abilita un gateway in uscita su GKE su Google Cloud

Ti consigliamo di utilizzare lo script install_asm per configurare uno o più cluster nello stesso progetto. Lo script imposta un'etichetta di revisione su istiod. Questo esempio presuppone che tu abbia seguito la guida Installazione di Anthos Service Mesh su GKE per scaricare la versione dello script install_asm sul ramo release-1.8-asm che installa Anthos Service Mesh 1.8.6.

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_all \
  --option egressgateways

Questo comando esegue lo script per una nuova installazione e abilita Mesh CA, che è la CA predefinita per le installazioni. Il flag --enable_all consente allo script di abilitare le API di Google richieste, impostare le autorizzazioni di Identity and Access Management e apportare gli aggiornamenti necessari al cluster, inclusa l'abilitazione di GKE Workload Identity. Lo script recupera il file egressgateways.yaml da GitHub, che viene utilizzato per configurare il piano di controllo.

Abilita un gateway in uscita su cluster GKE in progetti diversi

Attualmente, lo script install_asm non supporta l'installazione di Anthos Service Mesh su cluster in progetti diversi.

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 installerai Anthos Service Mesh.

  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-186-8
    

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

    • Il file multiproject.yaml viene utilizzato per specificare le funzionalità predefinite per un mesh multiprogetto. 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

Tieni presente che, attualmente la configurazione del tracer fa parte della configurazione del bootstrap del proxy, quindi è necessario riavviare il pod e reinserirlo per recuperare l'aggiornamento del tracer. Ad esempio, puoi utilizzare il comando seguente in cui i pod di riavvio appartengono a un deployment:

kubectl rollout restart deployment -n NAMESPACE DEPLOYMENT_NAME

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.