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-18
gebruikt, moet u de naam ConfigMap istio-shared-configmap-asm-1-18
noemen. 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 (bijvoorbeeldistio-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
Op Istio gebaseerde service-mesh-invoegtoepassing configureren voor Azure Kubernetes Service
Probleemoplossing voor algemene invoegtoepassingen voor Istio-service mesh
Problemen met de invoegtoepassing Voor inkomend verkeer van istio-service
Probleemoplossing voor kleine revisieupgrades voor istio-service-mesh-invoegtoepassing
Problemen met invoegtoepassings-CA-certificaten voor Istio-service mesh oplossen
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.