Risoluzione dei problemi relativi al componente aggiuntivo MeshConfig della mesh del servizio Istio

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

Configurazione di ConfigMap condivisa

Il componente aggiuntivo Istio MeshConfig consente di configurare determinate impostazioni a livello di mesh. A tale scopo, si crea una configmap locale nello spazio dei aks-istio-system nomi . Il piano di controllo Istio unisce quindi questa configmap con la configmap predefinita. 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 della 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 la sidecar Envoy.

Aggiornamenti canary

Prima di avviare un aggiornamento canary, seguire le indicazioni per la configurazione della mesh e l'aggiornamento per creare una seconda configmap condivisa per la nuova revisione del piano di controllo nello spazio dei aks-istio-system nomi.

Se non è stata creata una nuova configmap prima di avviare l'aggiornamento, le funzionalità configurate dalla configmap condivisa non saranno accessibili. Per risolvere questo problema, creare la configmap mancante per la revisione corrispondente e copiare i campi pertinenti dalla configmap condivisa precedente.

Per altre informazioni, vedere Upgrade Istio-based service mesh add-on for Azure Kubernetes Service and Istio service mesh add-on minor revision upgrade troubleshooting (Aggiorna componente aggiuntivo per la mesh di servizi Istio per il servizio Azure Kubernetes e la risoluzione dei problemi relativi all'aggiornamento delle revisioni secondarie).

Valori consentiti, supportati e non consentiti

Il componente aggiuntivo Istio definisce i campi MeshConfig come consentiti e supported, consentiti ma unsupportede 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 del servizio basato su Istio per il servizio Azure Kubernetes. Se i campi indicati nella documentazione di Istio upstream non vengono visualizzati nell'elenco consentiti per il componente aggiuntivo, questi campi non sono consentiti.

Elenco di controllo per la risoluzione dei problemi

Passaggio 1: Assicurarsi di modificare la configmap corretta

  • Assicurarsi di configurare la configmap condivisa , ad esempio , istio-shared-configmap-asm-1-17e di non modificare la configmap predefinita, istio-asm-1-17ad esempio .
  • Assicurarsi che la configmap condivisa punti alla revisione corretta nel titolo.

Passaggio 2: Rimuovere i rientri di tabulazione dalla definizione MeshConfig all'interno della configmap condivisa

Nella definizione MeshConfig all'interno della configmap condivisa (in data.mesh), assicurarsi di usare spazi anziché schede. Rimuovere tutti i caratteri di tabulato trovati.

Passaggio 3: Assicurarsi che i campi MeshConfig siano validi

Se i campi non sono riconosciuti o non sono inclusi nell'elenco degli elementi consentiti meshconfig, gli aggiornamenti di 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 correlati all'overload CoreDNS potrebbero richiedere la modifica di alcune impostazioni DNS istio, ad esempio il dnsRefreshRate campo nella definizione di Istio MeshConfig.

Passaggio 5: Risolvere i problemi di utilizzo della memoria

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

È consigliabile usare il discoverySelectors campo nella definizione MeshConfig per ridurre il consumo di memoria per Istiod e Envoy. Per altre informazioni, vedere Risoluzione dei problemi generali della mesh del servizio 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 il numero di core CPU usati.

Passaggio 7: Correggere le condizioni di corsa di pod e sidecar

Se il pod dell'applicazione viene avviato prima dell'avvio della sidecar Envoy, l'applicazione potrebbe non rispondere o riavviarla. Per istruzioni su come evitare questo problema, vedere Pod o contenitori che iniziano con problemi di rete se istio-proxy non è pronto. In particolare, è possibile impostare il holdApplicationUntilProxyStarts campo MeshConfig in defaultConfig su 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.