Condividi tramite


Risoluzione dei problemi del componente aggiuntivo MeshConfig istio service mesh

Questo articolo illustra come risolvere i problemi che si verificano quando si usa MeshConfig per configurare il componente aggiuntivo Mesh del servizio Istio per Microsoft servizio Azure Kubernetes (AKS).

Configurazione di ConfigMap condiviso

Il componente aggiuntivo Istio MeshConfig consente di configurare determinate impostazioni a livello di mesh. A tale scopo, creare un ConfigMap locale nello spazio dei aks-istio-system nomi . Quindi, il piano di controllo Istio unisce questo ConfigMap con l'oggetto ConfigMap predefinito. Se esiste un conflitto tra le impostazioni, le impostazioni predefinite hanno la precedenza. Questo approccio è denominato configurazione configmap condivisa.

Creare un oggetto ConfigMap denominato istio-shared-configmap-<asm-revision> nello spazio dei aks-istio-system nomi . Ad esempio, se si usa la revisione asm-1-18, è necessario denominare ConfigMap, istio-shared-configmap-asm-1-18. Specificare quindi la configurazione mesh all'interno del mesh campo della data sezione, come illustrato nel file YAML ConfigMap seguente:

apiVersion: v1
kind: ConfigMap
metadata:
  name: istio-shared-configmap-asm-1-18
  namespace: aks-istio-system
data:
  mesh: |-
    accessLogFile: /dev/stdout
    defaultConfig:
      holdApplicationUntilProxyStarts: true

I valori all'interno del defaultConfig campo sono le impostazioni a livello di mesh per il sidecar Envoy.

Aggiornamenti Canary

Prima di avviare un aggiornamento canary, seguire la configurazione della mesh e il materiale sussidiario per l'aggiornamento per creare un secondo ConfigMap condiviso per la nuova revisione del piano di controllo nello spazio dei aks-istio-system nomi.

Se non è stato creato un nuovo ConfigMap prima di avviare l'aggiornamento, tutte le funzionalità configurate da ConfigMap condiviso non saranno accessibili. Per risolvere questo problema, creare l'oggetto ConfigMap mancante per la revisione corrispondente e copiare i campi pertinenti dall'oggetto ConfigMap condiviso precedente.

Per altre informazioni, vedere Upgrade Istio-based service mesh add-on add-on for servizio Azure Kubernetes and Istio service mesh add-on minor revision upgrade troubleshooting .For more information, see Upgrade Istio-based service mesh add-on add-on for servizio Azure Kubernetes and Istio service mesh add-on minor revision upgrade troubleshooting.

Valori consentiti, supportati e non consentiti

Il componente aggiuntivo Istio definisce i campi MeshConfig come consentiti e supported, consentiti ma unsupported, e disallowed. Per informazioni sui campi MeshConfig consentiti e supportati per il componente aggiuntivo e vedere una panoramica dei diversi livelli di supporto, vedere Configurare il componente aggiuntivo mesh di servizi basato su Istio per servizio Azure Kubernetes. Se i campi menzionati nella documentazione di Istio upstream non vengono visualizzati nell'elenco elementi consentiti per il componente aggiuntivo, questi campi non sono consentiti.

Elenco di controllo per la risoluzione dei problemi

Passaggio 1: Assicurarsi di modificare l'oggetto ConfigMap corretto

  • Assicurarsi di configurare configmap condiviso (ad esempio, istio-shared-configmap-asm-1-17) e di non modificare l'oggetto ConfigMap predefinito, ad esempio istio-asm-1-17.
  • Assicurarsi che l'oggetto ConfigMap condiviso punti alla revisione corretta nel titolo.

Passaggio 2: Rimuovere i rientri di tabulazione dalla definizione MeshConfig all'interno di ConfigMap condiviso

Nella definizione MeshConfig all'interno di ConfigMap condiviso (in data.mesh), assicurarsi di usare gli spazi anziché le schede. Rimuovere tutti i caratteri di tabulazioni presenti.

Passaggio 3: Assicurarsi che i campi MeshConfig siano validi

Se i campi non sono riconosciuti o non sono inclusi nell'elenco consenti MeshConfig, gli aggiornamenti a MeshConfig vengono rifiutati. Controllare se i campi MeshConfig desiderati sono consentiti e assicurarsi che i campi siano digitati correttamente.

Passaggio 4: Evitare l'overload CoreDNS

I problemi relativi all'overload CoreDNS potrebbero richiedere di modificare determinate impostazioni DNS Istio, ad esempio il dnsRefreshRate campo nella definizione Istio MeshConfig.

Passaggio 5: Risolvere i problemi di utilizzo della memoria

Se si verifica un utilizzo elevato della memoria in Envoy, controllare le impostazioni di Envoy per la raccolta dei dati delle statistiche. Se si personalizzano le metriche Istio tramite MeshConfig, tenere presente che alcune metriche possono avere cardinalità elevata e, di conseguenza, causare un footprint di memoria maggiore.

È consigliabile usare il campo nella definizione MeshConfig per ridurre il discoverySelectors consumo di memoria per Istiod e Envoy. Per altre informazioni, vedere Risoluzione dei problemi generali del componente aggiuntivo service mesh Istio.

Passaggio 6: Core CPU gratuiti

Se tutti i core CPU sono in uso, il concurrency campo nella definizione MeshConfig potrebbe non essere configurato correttamente. Se questo campo è impostato su zero, Envoy usa tutti i core CPU. In questo caso, rimuovere concurrency dalla definizione MeshConfig. Se il concurrency campo non è configurato, le richieste e i limiti della CPU determinano invece il numero di core CPU usati.

Passaggio 7: Correggere le condizioni di corsa pod e sidecar

Se il pod dell'applicazione viene avviato prima dell'avvio del sidecar Envoy, l'applicazione potrebbe non rispondere o potrebbe essere riavviata. Per istruzioni su come evitare questo problema, vedere Pod o contenitori iniziare con problemi di rete se istio-proxy non è pronto. In particolare, è possibile impostare il holdApplicationUntilProxyStarts campo MeshConfig in defaultConfig per true evitare queste condizioni di gara.

Riferimenti

Dichiarazione di non responsabilità sulle informazioni di terze parti

I prodotti di terzi citati in questo articolo sono prodotti da società indipendenti da Microsoft. Microsoft non rilascia alcuna garanzia implicita o esplicita relativa alle prestazioni o all'affidabilità di tali prodotti

Dichiarazione di non responsabilità di contatti di terze parti

Microsoft fornisce informazioni di contatto di terze parti per aiutarti a trovare ulteriori informazioni su questo argomento. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza delle informazioni di contatto di terze parti.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.