Istio Service Mesh-Add-On MeshConfig– Problembehandlung
In diesem Artikel wird erläutert, wie Sie Probleme beheben, die auftreten, wenn Sie MeshConfig verwenden, um das Istio Service Mesh-Add-On für Microsoft Azure Kubernetes Service (AKS) zu konfigurieren.
Konfiguration der freigegebenen ConfigMap
Mit dem Istio-Add-On MeshConfig können Sie bestimmte gitterweite Einstellungen konfigurieren. Dazu erstellen Sie eine lokale ConfigMap im aks-istio-system
-Namespace. Anschließend führt die Istio-Steuerungsebene diese ConfigMap mit der Standardmäßigen ConfigMap zusammen. (Wenn ein Konflikt zwischen den Einstellungen besteht, haben die Standardeinstellungen Vorrang.) Dieser Ansatz wird als freigegebene ConfigMap-Konfiguration bezeichnet.
Erstellen Sie eine ConfigMap, die aks-istio-system
im Namespace benannt istio-shared-configmap-<asm-revision>
ist. Wenn Sie beispielsweise revision asm-1-18
verwenden, sollten Sie die ConfigMap istio-shared-configmap-asm-1-18
nennen. Anschließend geben Sie die Gitterkonfiguration im mesh
Feld des Abschnitts data
an, wie in der folgenden ConfigMap-YAML-Datei gezeigt:
apiVersion: v1
kind: ConfigMap
metadata:
name: istio-shared-configmap-asm-1-18
namespace: aks-istio-system
data:
mesh: |-
accessLogFile: /dev/stdout
defaultConfig:
holdApplicationUntilProxyStarts: true
Die Werte im defaultConfig
Feld sind die gitterweiten Einstellungen für den Envoy-Sidecar.
Canary-Upgrades
Bevor Sie ein Canary-Upgrade starten, befolgen Sie die Anleitungen zur Meshkonfiguration und zum Upgrade , um eine zweite freigegebene ConfigMap für die neue Revision der aks-istio-system
Steuerungsebene im Namespace zu erstellen.
Wenn vor dem Starten des Upgrades keine neue ConfigMap erstellt wurde, kann nicht auf alle Features zugegriffen werden, die von der freigegebenen ConfigMap konfiguriert werden. Um dieses Problem zu beheben, erstellen Sie die fehlende ConfigMap für die entsprechende Revision, und kopieren Sie relevante Felder aus der vorherigen freigegebenen ConfigMap.
Weitere Informationen finden Sie unter Problembehandlung beim Upgrade eines Istio-basierten Dienstnetz-Add-Ons für Azure Kubernetes Service und Istio Service Mesh-Add-On für kleinere Revisionen.
Zulässige, unterstützte und unzulässige Werte
Das Istio-Add-On legt MeshConfig-Felder als zulässig und supported
fest, aber unsupported
, und disallowed
. Informationen zu zulässigen und unterstützten MeshConfig-Feldern für das Add-On und eine Übersicht über die verschiedenen Supportebenen finden Sie unter Konfigurieren des Istio-basierten Service Mesh-Add-Ons für Azure Kubernetes Service. Wenn Felder, die in der Upstreamdokumentation von Istio erwähnt werden, nicht in der Positivliste für das Add-On angezeigt werden, sind diese Felder nicht zulässig.
Checkliste zur Problembehandlung
Schritt 1: Stellen Sie sicher, dass Sie die richtige ConfigMap bearbeiten
- Stellen Sie sicher, dass Sie die freigegebene ConfigMap konfigurieren (z. B
istio-shared-configmap-asm-1-17
. ) und nicht die Standardkonfigurationszuordnung bearbeiten (z. Bistio-asm-1-17
. ). - Stellen Sie sicher, dass die freigegebene ConfigMap im Titel auf die richtige Revision verweist.
Schritt 2: Entfernen von Registerkarteneinzügen aus der MeshConfig-Definition in der freigegebenen ConfigMap
Stellen Sie in der Definition MeshConfig in der freigegebenen ConfigMap (unter data.mesh
) sicher, dass Sie Leerzeichen anstelle von Registerkarten verwenden. Entfernen Sie alle Registerkartenzeichen, die Sie finden.
Schritt 3: Sicherstellen, dass MeshConfig-Felder gültig sind
Wenn Felder nicht erkannt werden oder nicht in der MeshConfig-Positivliste enthalten sind, werden Updates für MeshConfig abgelehnt. Überprüfen Sie, ob die gewünschten MeshConfig-Felder zulässig sind, und stellen Sie sicher, dass die Felder richtig geschrieben sind.
Schritt 4: Vermeiden einer CoreDNS-Überladung
Probleme im Zusammenhang mit der CoreDNS-Überladung erfordern möglicherweise, dass Sie bestimmte Dns-Einstellungen von Istio ändern müssen, z. B. das dnsRefreshRate
Feld in der Istio MeshConfig-Definition.
Schritt 5: Beheben von Speicherverbrauchsproblemen
Wenn in Envoy eine hohe Arbeitsspeicherauslastung auftreten, überprüfen Sie ihre Envoy-Einstellungen für die Sammlung von Statistikdaten. Wenn Sie Istio-Metriken über die MeshConfig anpassen, denken Sie daran, dass bestimmte Metriken eine hohe Kardinalität aufweisen und daher einen höheren Speicherbedarf verursachen können.
Es wird empfohlen, das discoverySelectors
Feld in der MeshConfig-Definition zu verwenden, um den Arbeitsspeicherverbrauch für Istiod und Envoy zu reduzieren. Weitere Informationen finden Sie unter Allgemeine Problembehandlung für das Istio Service Mesh-Add-On.
Schritt 6: Freie CPU-Kerne
Wenn alle CPU-Kerne verwendet werden, ist das concurrency
Feld in der MeshConfig-Definition möglicherweise falsch konfiguriert. Wenn dieses Feld auf 0 (null) festgelegt ist, verwendet Envoy alle CPU-Kerne. Entfernen Sie concurrency
in diesem Fall aus der MeshConfig-Definition. Wenn das concurrency
Feld nicht konfiguriert ist, bestimmen CPU-Anforderungen und -Grenzwerte die Anzahl der cpu-Kerne, die stattdessen verwendet werden.
Schritt 7: Beheben von Pod- und Sidecar-Racebedingungen
Wenn Ihr Anwendungspod gestartet wird, bevor der Envoy-Sidecar gestartet wird, reagiert die Anwendung möglicherweise nicht mehr oder sie wird neu gestartet. Anweisungen zum Vermeiden dieses Problems finden Sie unter Pods oder Container beginnen mit Netzwerkproblemen, wenn istio-proxy nicht bereit ist. Insbesondere können Sie das holdApplicationUntilProxyStarts
Feld MeshConfig unter auf defaultConfig
true
festlegen, um diese Racebedingungen zu verhindern.
Verweise
Konfigurieren des Istio-basierten Service Mesh-Add-Ons für Azure Kubernetes Service
Allgemeine Problembehandlung für das Istio Service Mesh-Add-On
Problembehandlung beim Istio Service Mesh-Add-On für das Eingangsgateway
Problembehandlung für das Istio-Dienstnetz-Add-On für kleinere Revisionsupgrades
Problembehandlung für das Istio-Dienstnetz-Add-On-Plug-In-ZS-Zertifikat
Informationen zum Haftungsausschluss von Drittanbietern
Die in diesem Artikel genannten Drittanbieterprodukte stammen von Herstellern, die von Microsoft unabhängig sind. Microsoft gewährt keine implizite oder sonstige Garantie in Bezug auf die Leistung oder Zuverlässigkeit dieser Produkte.
Haftungsausschluss für Kontaktinformationen von Drittanbietern
Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, zusätzliche Informationen zu diesem Thema zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Sie werden von Microsoft ohne jede Gewähr weitergegeben.
Kontaktieren Sie uns für Hilfe
Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für