Aktivieren Sie die Funktion zur Wiederholung von Anfragen mithilfe von AppQOE für NetScaler Ingress Controller
Wenn eine NetScaler Appliance eine HTTP-Anforderung empfängt und an einen Backend-Server weiterleitet, kann es manchmal zu Verbindungsfehlern mit dem Backend-Server kommen. Sie können die Request-Retry-Funktion auf NetScaler so konfigurieren, dass die Anforderung an den nächsten verfügbaren Server weitergeleitet wird, anstatt das Zurücksetzen an den Client zu senden. Daher spart der Client Roundtrip-Zeit, wenn NetScaler dieselbe Anforderung an den nächsten verfügbaren Dienst initiiert. Weitere Informationen zur Funktion zum erneuten Anfordern von Versuchen finden Sie in der NetScaler-Dokumentation
Jetzt können Sie die Wiederholung von Anfragen auf NetScaler mit dem NetScaler Ingress Controller konfigurieren. Benutzerdefinierte Ressourcendefinitionen (CRDs) sind die primäre Methode zur Konfiguration von Richtlinien in Cloud-nativen Bereitstellungen. Mithilfe der von NetScaler bereitgestellten AppQoE-CRD können Sie Richtlinien für Anforderungswiederholungen auf NetScaler mit dem NetScaler Ingress Controller konfigurieren. Die AppQoE CRD ermöglicht die Kommunikation zwischen dem NetScaler Ingress Controller und NetScaler zur Durchsetzung von AppQoE-Richtlinien.
AppQoE-CRD-Definition
Die AppQoE CRD ist im NetScaler Ingress Controller GitHub-Repo unter appqoe-crd.yaml verfügbar. Die AppQoE-CRD bietet Attribute für die verschiedenen Optionen, die zum Definieren der AppQoE-Richtlinie auf NetScaler erforderlich sind.
Die folgenden Attribute werden in der AppQoE-CRD bereitgestellt:
Attribut | Beschreibung |
---|---|
servicenames |
Gibt die Liste der Kubernetes-Dienste an, auf die Sie die AppQoE-Richtlinien anwenden möchten. |
on-reset |
Gibt an, ob Wiederholungsversuch bei Verbindung gesetzt werden soll (Zurücksetzen) |
on-timeout |
Gibt die Zeit für einen erneuten Versuch in Millisekunden an |
number-of-retries |
Gibt die Anzahl der Wiederholungen an |
appqoe-criteria |
Gibt den Ausdruck zur Auswertung des Datenverkehrs an. |
direction |
Gibt den Bindepunkt zum Binden der AppQoE-Richtlinie an. |
Stellen Sie die AppQoE-CRD bereit
Führen Sie die folgenden Schritte aus, um die AppQoE-CRD bereitzustellen:
-
Laden Sie die AppQoE-CRDherunter.
-
Stellen Sie die AppQoE-CRD mit dem folgenden Befehl bereit:
kubectl create -f appqoe-crd.yaml
So schreiben Sie eine AppQoE-Richtlinienkonfiguration
Nachdem Sie die von NetScaler bereitgestellte AppQoE-CRD im Kubernetes-Cluster bereitgestellt haben, können Sie die AppQoE-Richtlinienkonfiguration in einer .yaml
-Datei definieren. Verwenden Sie in der Datei .yaml
im Feld kind appqoepolicy
und fügen Sie im Abschnitt spec
die AppQoE-CRD-Attribute hinzu, die auf Ihren Anforderungen für die Richtlinienkonfiguration basieren.
Die folgende YAML-Datei wendet die AppQoE-Richtlinie auf die im Feld servicenames aufgeführten Dienste an. Sie müssen die AppQoE-Aktion so konfigurieren, dass sie es bei Timeout erneut versucht, und die Anzahl der Wiederholungsversuche definieren.
apiVersion: citrix.com/v1
kind: appqoepolicy
metadata:
name: targeturlappqoe
spec:
appqoe-policies:
- servicenames:
- apache
appqoe-policy:
operation-retry:
onReset: 'YES'
onTimeout: 33
number-of-retries: 2
appqoe-criteria: 'HTTP.REQ.HEADER("User-Agent").CONTAINS("Android")'
direction: REQUEST
Nachdem Sie die Richtlinienkonfiguration definiert haben, stellen Sie die Datei .yaml
mit den folgenden Befehlen bereit:
$ kubectl create -f appqoe-example.yaml