Delen via


Problemen met de invoegtoepassing Istio-service mesh-invoegtoepassing MeshConfig oplossen

In dit artikel wordt beschreven hoe u problemen oplost die optreden wanneer u MeshConfig gebruikt om de invoegtoepassing Istio service mesh te configureren voor Microsoft Azure Kubernetes Service (AKS).

Configuratie van gedeelde ConfigMap

Met de Istio-invoegtoepassing MeshConfig kunt u bepaalde mesh-brede instellingen configureren. Hiervoor maakt u een lokale ConfigMap in de aks-istio-system naamruimte. Vervolgens voegt het Istio-besturingsvlak deze ConfigMap samen met de standaardconfiguratiemap. (Als er een conflict bestaat tussen instellingen, hebben de standaardinstellingen voorrang.) Deze benadering wordt een gedeelde configuratie van ConfigMap genoemd.

Maak een ConfigMap met de naam istio-shared-configmap-<asm-revision> in de aks-istio-system naamruimte. Als u bijvoorbeeld revisie asm-1-18gebruikt, moet u de naam ConfigMap istio-shared-configmap-asm-1-18noemen. Vervolgens geeft u de mesh-configuratie op in het mesh veld van de data sectie, zoals wordt weergegeven in het volgende YAML-bestand van ConfigMap:

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

De waarden in het defaultConfig veld zijn de mesh-brede instellingen voor de Envoy-sidecar.

Canary-upgrades

Voordat u een canary-upgrade start, volgt u de mesh-configuratie en upgraderichtlijnen om een tweede gedeelde ConfigMap te maken voor de nieuwe revisie van het besturingsvlak in de aks-istio-system naamruimte.

Als er geen nieuwe ConfigMap is gemaakt voordat u de upgrade start, zijn alle functies die zijn geconfigureerd door de gedeelde ConfigMap niet toegankelijk. U kunt dit probleem oplossen door de ontbrekende ConfigMap voor de bijbehorende revisie te maken en de relevante velden uit de vorige gedeelde ConfigMap te kopiƫren.

Zie De invoegtoepassing Upgrade service mesh op basis van Istio voor Azure Kubernetes Service en de invoegtoepassing Voor kleine revisie-upgrades oplossen voor meer informatie.

Toegestane, ondersteunde en niet-toegestane waarden

De Istio-invoegtoepassing wijst MeshConfig-velden aan als toegestaan en supported, toegestaan maar unsupported, en disallowed. Zie Op Istio gebaseerde service mesh-invoegtoepassing configureren voor Azure Kubernetes Service voor meer informatie over toegestane en ondersteunde MeshConfig-velden voor de invoegtoepassing voor de invoegtoepassing en een overzicht van de verschillende ondersteuningslagen. Als velden die worden vermeld in de upstream Istio-documentatie niet worden weergegeven in de acceptatielijst voor de invoegtoepassing, zijn deze velden niet toegestaan.

Controlelijst voor probleemoplossing

Stap 1: Zorg ervoor dat u de juiste ConfigMap bewerkt

  • Zorg ervoor dat u de gedeelde ConfigMap configureert (bijvoorbeeld istio-shared-configmap-asm-1-17) en niet de standaardConfigMap bewerkt (bijvoorbeeld istio-asm-1-17).
  • Zorg ervoor dat de gedeelde ConfigMap verwijst naar de juiste revisie in de titel.

Stap 2: Tab-inspringingen verwijderen uit de MeshConfig-definitie in de gedeelde ConfigMap

Zorg ervoor dat u in de MeshConfig-definitie binnen de gedeelde ConfigMap (onder data.mesh) spaties gebruikt in plaats van tabbladen. Verwijder tabtekens die u vindt.

Stap 3: Zorg ervoor dat MeshConfig-velden geldig zijn

Als velden niet worden herkend of niet zijn opgenomen in de MeshConfig-acceptatielijst, worden updates voor de MeshConfig geweigerd. Controleer of de gewenste MeshConfig-velden zijn toegestaan en controleer of de velden juist zijn gespeld.

Stap 4: CoreDNS-overbelasting voorkomen

Voor problemen die betrekking hebben op De overbelasting van CoreDNS moet u mogelijk bepaalde Istio DNS-instellingen wijzigen, zoals het dnsRefreshRate veld in de Definitie van Istio MeshConfig.

Stap 5: Problemen met geheugenverbruik oplossen

Als u een hoog geheugenverbruik in Envoy ondervindt, controleert u uw Envoy-instellingen voor het verzamelen van statistiekengegevens. Als u istio-metrische gegevens via MeshConfig aan het aanpassen bent, moet u er rekening mee houden dat bepaalde metrische gegevens een hoge kardinaliteit kunnen hebben en daarom een hogere geheugenvoetafdruk kunnen veroorzaken.

U wordt aangeraden het discoverySelectors veld in de MeshConfig-definitie te gebruiken om het geheugenverbruik voor Istiod en Envoy te verminderen. Zie De invoegtoepassing General Istio-service mesh oplossen voor meer informatie.

Stap 6: Gratis CPU-kernen

Als alle CPU-kernen worden gebruikt, is het concurrency veld in de MeshConfig-definitie mogelijk onjuist geconfigureerd. Als dit veld is ingesteld op nul, gebruikt Envoy alle CPU-kernen. Verwijder in deze situatie de concurrency MeshConfig-definitie. Als het concurrency veld niet is geconfigureerd, bepalen CPU-aanvragen en -limieten het aantal CPU-kernen dat in plaats daarvan wordt gebruikt.

Stap 7: De omstandigheden van pod- en sidecar-race herstellen

Als uw toepassingspod wordt gestart voordat de Envoy-sidecar wordt gestart, reageert de toepassing mogelijk niet of wordt deze mogelijk opnieuw opgestart. Zie Pod of containers beginnen met netwerkproblemen als istio-proxy niet gereed is voor instructies over het voorkomen van dit probleem. U kunt met name het holdApplicationUntilProxyStarts veld defaultConfig MeshConfig instellen om true deze racevoorwaarden te helpen voorkomen.

Verwijzingen

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.

Disclaimerinformatie van derden

Microsoft biedt contactgegevens van derden om u te helpen aanvullende informatie over dit onderwerp te vinden. Deze contactinformatie kan zonder voorafgaande kennisgeving worden gewijzigd. Microsoft garandeert niet de nauwkeurigheid van contactgegevens van derden.

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.