Detaillierte Verfahren zur Einrichtung einer Service-Mesh-Topologie
Die Voraussetzungen für die Bereitstellung der Service-Mesh-Topologie finden Sie unter Einrichten eines Service-Graphen.
Statische Routen in NetScaler® ADM konfigurieren
Innerhalb des Kubernetes-Clusters verwenden alle containerisierten Pods ein Overlay-Netzwerk. Eine direkte Kommunikation über diese privaten IP-Adressen ist nicht möglich. Um die Kommunikation von NetScaler ADM zum Kubernetes-Cluster zu ermöglichen, müssen Sie statisches Routing in NetScaler ADM konfigurieren.
Hinweis
Wenn Sie einen lokalen Agenten verwenden, stellen Sie sicher, dass Sie statische Routen auf dem Agenten konfigurieren. Melden Sie sich mit einem SSH-Client beim NetScaler-Agenten an und konfigurieren Sie die statischen Routen.
Angenommen, Sie haben die folgenden IP-Adressen für Ihren Kubernetes-Cluster:
-
Kubernetes-Master – 101.xx.xx.112
-
Kubernetes-Worker 1 – 101.xx.xx.111
-
Kubernetes-Worker 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:

-
Melden Sie sich mit einem SSH-Client bei NetScaler ADM an.
-
Konfigurieren Sie das statische Routing mit dem Befehl
route add -net <public IP address range> <Kubernetes IP address>.Zum Beispiel:
route add -net 192.168.0.0/24 101.xx.xx.112route add -net 192.168.1.0/24 101.xx.xx.111route add -net 192.168.2.0/24 101.xx.xx.110 -
Überprüfen Sie die Konfiguration mit
netstat -rn.
-
Fügen Sie diese Routenbefehle in die Datei
/mpsconfig/svm.confein.-
Greifen Sie in NetScaler ADM 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.
Zum Beispiel:
route add -net 192.168.0.0/24 101.xx.xx.112.
-
Erforderliche Parameter konfigurieren
Im Kubernetes-Master:
-
Erstellen Sie ein Secret mit ADM-Agent-Anmeldeinformationen in jedem Namespace, in dem CPX als Ingress-Gateway / Sidecar bereitgestellt 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/ -
Stellen Sie den NetScaler CPX als Ingress-Gateway bereit.
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.30Die folgende Tabelle listet die konfigurierbaren Parameter im Helm-Chart und ihre Standardwerte auf:
Parameter Beschreibung Standardwert Optional/Obligatorisch (Helm) citrixCPX NetScaler CPX FALSE Obligatorisch für NetScaler CPX xDSAdaptor.image Image des Citrix xDS Adaptor-Containers quay.io/citrix/citrix-istio-adaptor:1.2.1 Obligatorisch ADMSettings.ADMIP NetScaler ADM IP-Adresse null Obligatorisch für NetScaler CPX ADMSettings.ADMFingerPrint Der NetScaler ADM Fingerprint. Navigieren Sie zu Einstellungen > Administration und klicken Sie unter Systemkonfigurationen auf Fingerprint anzeigen. null Optional ingressGateway.EULA Endbenutzer-Lizenzvereinbarung (EULA) Bedingungen. Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN Obligatorisch für NetScaler CPX ingressGateway.image Image des NetScaler CPX, der als Ingress-Gateway ausgeführt werden soll quay.io/citrix/citrix-k8s-cpx-ingress: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.30Die folgende Tabelle listet die konfigurierbaren Parameter im Helm-Chart und ihre Standardwerte auf:
Parameter Beschreibung Standardwert ADMSettings.ADMIP Die NetScaler ADM IP-Adresse NIL cpxProxy.image NetScaler CPX Image, das als Sidecar-Proxy verwendet wird quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 cpxProxy.imagePullPolicy Image-Pull-Richtlinie für NetScaler IfNotPresent cpxProxy.EULA Endbenutzer-Lizenzvereinbarung (EULA) Bedingungen. Wenn ja, stimmt der Benutzer den EULA-Bedingungen zu. NEIN cpxProxy.cpxSidecarMode Umgebungsvariable für NetScaler CPX. Sie gibt an, ob NetScaler CPX im Sidecar-Modus ausgeführt wird oder nicht. JA -
Legen Sie das Label für jeden Namespace fest, der eine CPX-Sidecar-Injektion benötigt.
kubectl label namespace <app-namespace> cpx-injection=enabledNach Durchführung von Schritt 3 und 5 sehen Sie, dass der NetScaler CPX in NetScaler ADM registriert ist.
Eine Beispielanwendung bereitstellen
Angenommen, Sie möchten die folgenden Anwendungen bereitstellen:

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-systemHinweis
Sie können einen Benutzernamen und ein Passwort Ihrer Wahl eingeben.
-
kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfoHinweis
Sie können einen Benutzernamen und ein Passwort Ihrer Wahl eingeben.
-
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.30Hinweis
Sie müssen Ihren ADM-Fingerprint und die IP-Adresse des ADM-Agenten oder ADM 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.30Hinweis
Sie müssen Ihren ADM-Fingerprint und die IP-Adresse des ADM-Agenten oder ADM angeben.
-
helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system
Kubernetes-Cluster in NetScaler ADM hinzufügen
So fügen Sie den Kubernetes-Cluster hinzu:
-
Melden Sie sich mit Administratoranmeldeinformationen bei NetScaler ADM an.
-
Navigieren Sie zu Orchestrierung > 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 Details der API-Server-URL vom Kubernetes-Master-Knoten abrufen.
-
Führen Sie auf dem Kubernetes-Master-Knoten den Befehl
kubectl cluster-infoaus.
-
Geben Sie die URL ein, die für „Kubernetes master is running at.“ angezeigt wird.
-
-
Authentifizierungstoken – Geben Sie das Authentifizierungstoken an. Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen dem Kubernetes-Cluster und NetScaler ADM zu validieren. So generieren Sie ein Authentifizierungstoken:
Auf dem Kubernetes-Master-Knoten:
-
Verwenden Sie das folgende YAML, um ein Service-Konto zu erstellen:
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy--> -
Führen Sie
kubectl create -f <yaml file>aus.Das Service-Konto wird erstellt.
-
Führen Sie
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>aus, um die Cluster-Rolle an das Service-Konto zu binden.Das Service-Konto hat nun clusterweiten Zugriff.
Ein Token wird automatisch generiert, wenn das Service-Konto erstellt wird.
-
Führen Sie
kubectl describe sa <name>aus, um das Token anzuzeigen. -
Um die Secret-Zeichenfolge zu erhalten, führen Sie
kubectl describe secret <token-name>aus.
-
-
Wählen Sie den Agenten aus der Liste aus.
Hinweis
Wenn Sie einen ADM-Agenten verwenden, stellen Sie sicher, dass Sie denselben Agenten auswählen, den Sie in der CPX-YAML hinzugefügt haben.
-
Klicken Sie auf Erstellen.

-
Automatische Auswahl virtueller Server für die Lizenzierung aktivieren
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 ADM hinzugefügt haben, müssen Sie sicherstellen, dass virtuelle Server für die Lizenzierung automatisch ausgewählt werden. Virtuelle Server müssen lizenziert sein, um Daten im Service-Graphen anzuzeigen. So wählen Sie virtuelle Server automatisch aus:
-
Navigieren Sie zu Einstellungen > Lizenzierungs- und Analysekonfiguration.
-
Aktivieren Sie unter Zusammenfassung der virtuellen Serverlizenzen die Optionen Virtuelle Server automatisch auswählen und Nicht adressierbare virtuelle Server automatisch auswählen.

Web-Transaktions- und TCP-Transaktionseinstellungen aktivieren
Nachdem Sie den Kubernetes-Cluster hinzugefügt und die automatische Auswahl virtueller Server aktiviert haben, ändern Sie die Web-Transaktionseinstellungen und TCP-Transaktionseinstellungen auf Alle.
-
Navigieren Sie zu Einstellungen > Analyseeinstellungen.
Die Seite Analyseeinstellungen wird angezeigt.
-
Klicken Sie auf Funktionen für Analysen aktivieren.
-
Wählen Sie unter Web-Transaktionseinstellungen die Option Alle aus.
-
Wählen Sie unter TCP-Transaktionseinstellungen die Option Alle aus.

-
Klicken Sie auf OK.
Traffic an Microservices senden
Als Nächstes müssen Sie Traffic an Microservices senden, damit der Service-Graph in NetScaler ADM gefüllt wird.
-
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
productpagemuss eine 200 OK-Antwort zurückgeben.curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpagecurl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage -
Besuchen Sie
https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpagein einem Browser.Die Seite Bookinfo 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 der Service-Graph innerhalb von etwa 10 Minuten gefüllt.

Mithilfe des Service-Graphen können Sie verschiedene Servicedetails wie Metriken, Fehler usw. analysieren. Weitere Informationen finden Sie unter Service-Graph.
In diesem Artikel
- Statische Routen in NetScaler® ADM konfigurieren
- Erforderliche Parameter konfigurieren
- Eine Beispielanwendung bereitstellen
- Kubernetes-Cluster in NetScaler ADM hinzufügen
- Automatische Auswahl virtueller Server für die Lizenzierung aktivieren
- Web-Transaktions- und TCP-Transaktionseinstellungen aktivieren
- Traffic an Microservices senden