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-18
verwenden, 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. Bistio-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
Konfigurieren des Istio-basierten Dienstgitter-Add-Ons für Azure Kubernetes Service
Problembehandlung beim Istio-Dienst-Gitter-Add-On-Eingangsgateway
Problembehandlung beim Problembehandlung beim Istio-Dienstgitter-Gitter-Add-On
Problembehandlung beim Istio-Dienstgitter-Add-In-Plug-In-Zertifizierungsstellenzertifikat
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.