Detaillierte Verfahren zum Einrichten der Service-Mesh-Topologie
Die Voraussetzungen für die Bereitstellung der Service-Mesh-Topologie finden Sie unter Service Graph einrichten.
NetScaler Agent konfigurieren
Um die Kommunikation zwischen Kubernetes-Cluster und NetScaler Console zu ermöglichen, müssen Sie einen Agenten installieren und konfigurieren. Sie können einen Agent mit einem Hypervisor, öffentlichen Cloud-Services (wie Microsoft Azure, AWS) oder einem integrierten Agent konfigurieren, der auf NetScaler-Instanzen verfügbar ist (ideal für HA-Bereitstellungen).
Folgen Sie den Anweisungen, um einen Agent zu konfigurieren.
Hinweis
Sie können auch einen vorhandenen Agent verwenden.
Die Agents werden standardmäßig automatisch auf den neuesten Build von NetScaler Console aktualisiert. Sie können die Agentdetails auf der Seite Infrastruktur > Instanzen > Agents anzeigen. Sie können auch den Zeitpunkt angeben, zu dem die Agent-Upgrades durchgeführt werden sollen. Weitere Informationen finden Sie unter Konfigurieren der Agent-Upgrade-Einstellungen.
Konfigurieren Sie statische Routen im Agenten
Innerhalb des Kubernetes-Clusters verwenden alle containerisierten Pods ein Overlay-Netzwerk. Der direkte Aufbau der Kommunikation über diese privaten IP-Adressen ist nicht möglich. Um die Kommunikation von NetScaler Console zum Kubernetes-Cluster zu ermöglichen, müssen Sie statisches Routing im Agenten konfigurieren.
Beachten Sie, dass Sie die folgenden IP-Adressen für Ihren Kubernetes-Cluster haben:
-
Kubernetes-Meister — 101.xx.xx.112
-
Kubernetes Arbeiter 1 — 101.xx.xx.111
-
Kubernetes Arbeiter 2 — 101.xx.xx.110
Führen Sie auf dem Kubernetes-Master den folgenden Befehl aus, um das Pod-Netzwerk für das statische Routing zu identifizieren:
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
Das Folgende ist eine Beispielausgabe, nachdem Sie den Befehl ausgeführt haben:
Nach erfolgreicher Konfiguration eines Agenten:
-
Melden Sie sich mit einem SSH-Client beim Agenten an
-
Tippe
shell
und drücke die Eingabetaste, um zubash
-
Konfigurieren Sie das statische Routing mit dem Befehl
route add -net <public IP address range> <Kubernetes IP address>
Beispiel:
route add -net 192.168.0.0/24 101.xx.xx.112
route add -net 192.168.1.0/24 101.xx.xx.111
route add -net 192.168.2.0/24 101.xx.xx.110
-
Überprüfen Sie die Konfiguration mit
netstat -rn
-
Hängen Sie diese Route-Befehle an die Datei
/mpsconfig/svm.conf
an.-
Greifen Sie im Agenten mit dem folgenden Befehl auf die Datei svm.conf zu:
vim /mpsconfig/svm.conf
-
Fügen Sie die statischen Routen in die Datei svm.conf ein.
Beispiel:
route add -net 192.168.0.0/24 101.xx.xx.112
.
-
Konfigurieren Sie die erforderlichen Parameter
Im Kubernetes-Meister:
-
Erstellen Sie ein Geheimnis mit den Agentenanmeldeinformationen in jedem Namespace, in dem CPX als Ingress-Gateway/Sidecar eingesetzt wird.
kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n <namespace>
-
helm repo add citrix https://citrix.github.io/citrix-helm-charts/
-
Bereitstellen des NetScaler CPX als Ingress Gateway
helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace <namespace> --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=XX:00:X1:00:XX:0X:X0,ADMSettings.ADMIP=<xx.xx.xx.xx>, ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
In der folgenden Tabelle sind die konfigurierbaren Parameter im Helm-Diagramm und seine Standardwerte aufgeführt:
Parameter Beschreibung Standard Optional/Obligatorisch (Helm) citrixCPX NetScaler CPX FALSE Obligatorisch für NetScaler CPX xDSAdaptor.image Bild des Citrix xDS-Adaptercontainers quay.io/citrix/citrix-istio-Adapter:1.2.1 Erforderlich ADMSettings.ADMIP NetScaler Console-IP-Adresse Null Obligatorisch für NetScaler CPX ADMSettings.ADMFingerPrint Der NetScaler Console-Fingerabdruck. Navigieren Sie zu Infrastruktur > Instanzen > Agents, wählen Sie den Agent aus und klicken Sie auf Fingerabdruck anzeigen Null Optional ingressGateway.EULA Allgemeine Geschäftsbedingungen für die Endbenutzer-Lizenzvereinbarung (EULA). Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN Obligatorisch für NetScaler CPX ingressGateway.image NetScaler CPX-Image zum Ausführen als Ingress Gateway quay.io/citrix/citrix-k8s-cpx-Eingang: 13,0-58,30 Obligatorisch für NetScaler CPX -
Stellen Sie den Citrix SideCar-Injector bereit.
helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --version 1.2.1 --namespace <namespace> set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<xx.xx.xx.xx>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
In der folgenden Tabelle sind die konfigurierbaren Parameter im Helm-Diagramm und seine Standardwerte aufgeführt:
Parameter Beschreibung Standardwert ADMSettings.ADMIP Die NetScaler Console-IP-Adresse NIL cpxProxy.image NetScaler CPX-Image, das als Sidecar-Proxy verwendet wird quay.io/citrix/citrix-k8s-cpx-Eingang: 13,0-58,30 cpxProxy.imagePullPolicy Image-Pull-Richtlinie für NetScaler IfNotPresent cpxProxy.EULA Allgemeine Geschäftsbedingungen für die Endbenutzer-Lizenzvereinbarung (EULA). Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN cpxProxy.cpxSidecarMode Umgebungsvariable für NetScaler CPX. Es zeigt an, dass NetScaler CPX als Sidecar-Modus läuft oder nicht. JA -
Stellen Sie das Etikett für jeden Namespace ein, der CPX Sidecar Injection benötigt.
kubectl label namespace <app-namespace> cpx-injection=enabled
Nachdem Sie die Schritte 3 und 5 ausgeführt haben, können Sie sehen, dass NetScaler CPX in der NetScaler Console registriert ist.
Bereitstellen einer Beispielanwendung
Bedenken Sie, dass Sie die folgenden Anwendungen bereitstellen möchten:
Führen Sie das folgende Verfahren aus, um eine Beispielanwendung bereitzustellen:
-
kubectl create namespace citrix-system
-
kubectl create namespace bookinfo
-
kubectl label namespace bookinfo cpx-injection=enabled
-
kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-system
Hinweis
Sie können einen Benutzernamen und ein Kennwort Ihrer Wahl angeben.
-
kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfo
Hinweis
Sie können einen Benutzernamen und ein Kennwort Ihrer Wahl angeben.
-
helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace citrix-system --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
Hinweis
Sie müssen Ihren NetScaler Console-Fingerabdruck und die Agenten-IP-Adresse angeben.
-
helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace citrix-system --set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
Hinweis
Sie müssen Ihren NetScaler Console-Fingerabdruck und die Agenten-IP-Adresse angeben.
-
helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system
Kubernetes-Cluster in NetScaler Console hinzufügen
So fügen Sie den Kubernetes-Cluster hinzu:
-
Melden Sie sich mit Administratoranmeldeinformationen an der NetScaler Console an.
-
Navigieren Sie zu Infrastruktur > Orchestration> Kubernetes > Cluster. Die Seite “Cluster” wird angezeigt.
-
Klicken Sie auf Hinzufügen.
-
Geben Sie auf der Seite Cluster hinzufügen die folgenden Parameter an:
-
Name - Geben Sie einen Namen Ihrer Wahl an.
-
API-Server-URL — Sie können die API-Server-URL-Details vom Kubernetes-Master-Knoten abrufen.
-
Führen Sie auf dem Kubernetes-Masterknoten den Befehl aus
kubectl cluster-info
. -
Geben Sie die URL ein, die für Kubernetes Master läuft unter angezeigt wird.
-
-
Authentifizierungstoken — Geben Sie das Authentifizierung Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen Kubernetes-Cluster und NetScaler Console zu validieren. So generieren Sie ein Authentifizierungstoken:
Auf dem Kubernetes-Master-Knoten:
-
Verwenden Sie die folgende YAML, um ein Dienstkonto zu erstellen:
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy-->
-
Führen Sie
kubectl create -f <yaml file>
aus.Das Dienstkonto wird erstellt.
-
Wird ausgeführt
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>
, um die Clusterrolle an das Dienstkonto zu binden.Das Dienstkonto hat jetzt den clusterweiten Zugriff.
Beim Erstellen des Dienstkontos wird automatisch ein Token generiert.
-
Lauf
kubectl describe sa <name>
, um das Token anzuzeigen. -
Um die geheime Zeichenfolge zu erhalten, führen Sie aus
kubectl describe secret <token-name>
.
-
-
Wählen Sie den Agent aus der Liste aus.
Hinweis
Stellen Sie sicher, dass Sie denselben Agent auswählen, den Sie in der CPX-YAML hinzugefügt haben.
-
Klicken Sie auf Erstellen.
-
Aktivieren der automatischen Auswahl virtueller Server für die Lizenzierung
Hinweis
Stellen Sie sicher, dass Sie über ausreichende Lizenzen für virtuelle Server verfügen. Weitere Informationen finden Sie unter Lizenzierung
Nachdem Sie den Kubernetes-Cluster in NetScaler Console hinzugefügt haben, müssen Sie sicherstellen, dass virtuelle Server für die Lizenzierung automatisch ausgewählt werden. Virtuelle Server müssen für die Anzeige von Daten in Service Graph lizenziert sein. So wählen Sie virtuelle Server automatisch aus:
-
Navigieren Sie zu Einstellungen > NetScaler Console Licensing & Analytics Config.
-
Aktivieren Sie unter Virtual Server License Summarydie Option Automatische Auswahl virtueller Server und Automatische Auswahl nicht adressierbarer virtueller Server.
Web-Transaktion und TCP-Transaktionseinstellungen aktivieren
Nachdem Sie den Kubernetes-Cluster hinzugefügt und die automatische Auswahl virtueller Server aktiviert haben, ändern Sie die Einstellungen für Webtransaktionen und TCP-Transaktionen in Alle.
-
Navigieren Sie zu Einstellungen > Analytics-Einstellungen .
Die Seite “Einstellungen “ wird angezeigt.
-
Klicken Sie auf Features für Analytics aktivieren.
-
Wählen Sie unter Web-Transaktionseinstellungendie Option Alleaus.
-
Wählen Sie unter TCP-Transaktionseinstellungendie Option Alle.
-
Klicken Sie auf OK.
Traffic an Microservices senden
Als Nächstes müssen Sie Datenverkehr an Microservices senden, um das Service-Diagramm in der NetScaler Console auszufüllen.
-
Bestimmen Sie die Ingress-IP und den Port
export INGRESS_HOST=$(kubectl get pods -l app=citrix-ingressgateway -n citrix-system -o 'jsonpath={.items[0].status.hostIP}')
export INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
export SECURE_INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
-
Greifen Sie mit curl auf die BookInfo-Frontend-Anwendung zu Der Dienst
productpage
muss eine Antwort von 200 OK zurückgeben.curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage
-
Besuchen Sie
https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
von einem Browser aus.Die Bookinfo-Seite wird angezeigt.
-
Stellen Sie sicher, dass $INGRESS_HOST und $SECURE_INGRESS_PORT durch eine IP-Adresse und einen Portwert ersetzt werden.
Nachdem Sie Traffic an Microservices gesendet haben, wird das Servicediagramm ungefähr in einer Dauer von 10 Minuten ausgefüllt.
Mithilfe des Servicediagramms können Sie verschiedene Servicedetails wie Metriken, Fehler usw. analysieren. Weitere Informationen finden Sie unter Leistungsdiagramm.
In diesem Artikel
- NetScaler Agent konfigurieren
- Konfigurieren Sie statische Routen im Agenten
- Konfigurieren Sie die erforderlichen Parameter
- Bereitstellen einer Beispielanwendung
- Kubernetes-Cluster in NetScaler Console hinzufügen
- Aktivieren der automatischen Auswahl virtueller Server für die Lizenzierung
- Web-Transaktion und TCP-Transaktionseinstellungen aktivieren
- Traffic an Microservices senden