Attivazione di funzionalità facoltative

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à:

  • 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 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 profilo asm-multicloud.yaml, vengono attivate le funzionalità predefinite supportate 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.

Puoi eseguire l'override del profilo di configurazione e attivare le funzionalità facoltative supportate utilizzando l'API IstioOperator. Puoi specificare la IstioOperatorconfigurazione 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.

  1. 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
  2. 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.

  1. 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
  2. Per installare Anthos Service Mesh su GKE, utilizza la seguente riga di comando:

    • Sostituisci PROFILE con il profilo che stai utilizzando: asm-gcp o asm-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

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.