Freigeben über


Problembehandlung beim Istio-Dienst-Gitter-Add-On MeshConfig

In diesem Artikel wird erläutert, wie Sie Probleme behandeln, die auftreten, wenn Sie MeshConfig verwenden, um das Istio-Dienstgitter-Add-On für Microsoft Azure Kubernetes Service (AKS) zu konfigurieren.

Konfiguration für shared 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-Steuerelementebene diese ConfigMap mit dem Standard 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 benennen. istio-shared-configmap-asm-1-18 Anschließend stellen Sie die Gitterkonfiguration im mesh Feld des data Abschnitts bereit, 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 innerhalb des defaultConfig Felds sind die Gitterweiteneinstellungen für das Envoy-Sidecar.

Canary-Upgrades

Bevor Sie ein Canary-Upgrade starten, folgen Sie der Gitterkonfiguration und dem Upgradeleitfaden , um eine zweite freigegebene ConfigMap für die neue Überarbeitung der Steuerelementebene im aks-istio-system Namespace zu erstellen.

Wenn eine neue ConfigMap nicht erstellt wurde, bevor Sie das Upgrade starten, können auf alle Features zugegriffen werden, die von der freigegebenen ConfigMap konfiguriert wurden. Um dieses Problem zu beheben, erstellen Sie die fehlende ConfigMap für die entsprechende Revision, und kopieren Sie die relevanten Felder aus der vorherigen freigegebenen ConfigMap.

Weitere Informationen finden Sie unter Upgrade istio-based service mesh add-on for Azure Kubernetes Service and Istio service mesh add-on minor revision upgrade troubleshooting.

Zulässige, unterstützte und unzulässige Werte

Das Istio-Add-On bezeichnet MeshConfig-Felder als zulässig und supported, zulässig, 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 Configure Istio-based service mesh add-on for Azure Kubernetes Service. Wenn Felder, die in der Upstream-Istio-Dokumentation erwähnt werden, nicht in der Zulassungsliste für das Add-On angezeigt werden, sind diese Felder unzulä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 Standardkonfiguration (z. B istio-asm-1-17. ConfigMap) bearbeiten.
  • Stellen Sie sicher, dass die freigegebene ConfigMap auf die richtige Überarbeitung im Titel verweist.

Schritt 2: Entfernen von Registerkarteneinzügen aus der MeshConfig-Definition innerhalb der freigegebenen ConfigMap

Stellen Sie in der MeshConfig-Definition in der freigegebenen ConfigMap (unter data.mesh) sicher, dass Sie Leerzeichen anstelle von Registerkarten verwenden. Entfernen Sie alle gefundenen Tabstoppzeichen.

Schritt 3: Stellen Sie sicher, dass MeshConfig-Felder gültig sind

Wenn Felder nicht erkannt oder nicht in der MeshConfig-Zulassungsliste enthalten sind, werden Aktualisierungen der 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 von CoreDNS-Überladungen

Probleme, die sich auf coreDNS-Überladung beziehen, erfordern möglicherweise, dass Sie bestimmte Istio-DNS-Einstellungen ändern, z. B. das dnsRefreshRate Feld in der Istio MeshConfig-Definition.

Schritt 5: Beheben von Problemen mit der Arbeitsspeichernutzung

Wenn sie in Envoy eine hohe Speicherauslastung erleben, überprüfen Sie Ihre Envoy-Einstellungen auf die Statistikdatensammlung. Wenn Sie Istio-Metriken über die MeshConfig anpassen, denken Sie daran, dass bestimmte Metriken eine hohe Kardinalität aufweisen können und daher einen höheren Speicherbedarf verursachen.

Es wird empfohlen, das Feld in der MeshConfig-Definition zu verwenden, um den discoverySelectors Speicherverbrauch für Istiod und Envoy zu reduzieren. Weitere Informationen finden Sie in der Problembehandlung für das Allgemeine Istio-Dienstgitter-Add-On.

Schritt 6: Kostenlose CPU-Kerne

Wenn alle CPU-Kerne verwendet werden, ist das concurrency Feld in der MeshConfig-Definition möglicherweise falsch konfiguriert. Wenn dieses Feld auf 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 stattdessen die Anzahl der verwendeten CPU-Kerne.

Schritt 7: Fixieren von Poden- und Sidecar-Rennbedingungen

Wenn Ihr Anwendungs-Pod vor dem Start des Envoy-Sidecars gestartet wird, reagiert die Anwendung möglicherweise nicht mehr, oder sie wird neu gestartet. Anweisungen zum Vermeiden dieses Problems finden Sie unter Pod oder Container, die mit Netzwerkproblemen beginnen, wenn istio-proxy nicht bereit ist. Insbesondere können Sie das holdApplicationUntilProxyStarts MeshConfig-Feld defaultConfig unter festlegen, um diese Rennbedingungen zu true verhindern.

References

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.