Freigeben über


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-18verwenden, sollten Sie die ConfigMap istio-shared-configmap-asm-1-18nennen. 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 supportedfest, 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. B istio-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 defaultConfigtrue festlegen, um diese Racebedingungen zu verhindern.

Verweise

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.