Detaillierte Verfahren zum Einrichten der Service-Mesh-Topologie

Last published : Oct 02, 2026
Die Voraussetzungen zum Bereitstellen der Service-Mesh-Topologie finden Sie unter Einrichten des Service-Graphen.

Statische Routen in NetScaler Console 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 Console zum Kubernetes-Cluster zu ermöglichen, müssen Sie statisches Routing in NetScaler Console 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}"
Im Folgenden sehen Sie eine Beispielausgabe, nachdem Sie den Befehl ausgeführt haben:
Beispielbefehl
  1. Melden Sie sich mit einem SSH-Client bei NetScaler Console an
  2. 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.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
  3. Überprüfen Sie die Konfiguration mit netstat -rn
    statisches Routing
  4. Fügen Sie diese Routenbefehle in die Datei /mpsconfig/svm.conf ein.
    1. Greifen Sie in der NetScaler Console mit dem folgenden Befehl auf die Datei svm.conf zu:
      vim /mpsconfig/svm.conf
    2. 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:
  1. Erstellen Sie ein Secret mit 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>
  2. helm repo add citrix https://citrix.github.io/citrix-helm-charts/
  3. 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.30
    Die folgende Tabelle listet die konfigurierbaren Parameter im Helm-Chart und deren Standardwerte auf:
    Parameter Beschreibung Standard Optional/Obligatorisch (Helm)
    citrixCPX NetScaler CPX FALSE Obligatorisch für NetScaler CPX
    xDSAdaptor.image Image des Citrix xDS-Adapter-Containers quay.io/citrix/citrix-istio-adaptor:1.2.1 Obligatorisch
    ADMSettings.ADMIP NetScaler Console IP-Adresse Keine Obligatorisch für NetScaler CPX
    ADMSettings.ADMFingerPrint Der NetScaler Console Fingerprint. Navigieren Sie zu Einstellungen > Administration, und klicken Sie unter Systemkonfigurationen auf Fingerprint anzeigen. Keine Optional
    ingressGateway.EULA Bedingungen des Endbenutzer-Lizenzvertrags (EULA). 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
  4. 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
    Die folgende Tabelle listet die konfigurierbaren Parameter im Helm-Chart und deren Standardwerte auf:
    Parameter Beschreibung Standardwert
    ADMSettings.ADMIP Die IP-Adresse der NetScaler Console 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-Lizenzvertrag (EULA) – Geschäftsbedingungen. Wenn ja, stimmt der Benutzer den EULA-Geschäftsbedingungen zu. NEIN
    cpxProxy.cpxSidecarMode Umgebungsvariable für NetScaler CPX. Sie gibt an, ob NetScaler CPX im Sidecar-Modus ausgeführt wird oder nicht. JA
  5. Legen Sie das Label für jeden Namespace fest, der eine CPX-Sidecar-Injektion benötigt.
    kubectl label namespace <app-namespace> cpx-injection=enabled
    Nach Ausführung von Schritt 3 und 5 sehen Sie, dass der NetScaler CPX in der NetScaler Console registriert ist.

Eine Beispielanwendung bereitstellen

Angenommen, Sie möchten die folgenden Anwendungen bereitstellen:
Beispiel-Apps bereitstellen
Führen Sie das folgende Verfahren aus, um eine Beispielanwendung bereitzustellen:
  1. kubectl create namespace citrix-system
  2. kubectl create namespace bookinfo
  3. kubectl label namespace bookinfo cpx-injection=enabled
  4. kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-system
    Hinweis
    Sie können einen Benutzernamen und ein Passwort Ihrer Wahl eingeben.
  5. kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfo
    Hinweis
    Sie können einen Benutzernamen und ein Passwort Ihrer Wahl eingeben.
  6. 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=<agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
    Hinweis
    Sie müssen Ihren Konsolen-Fingerabdruck und die Agenten- oder Konsolen-IP-Adresse angeben
  7. 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 Konsolen-Fingerabdruck und die Agenten- oder Konsolen-IP-Adresse angeben.
  8. 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:
  1. Melden Sie sich mit Administratoranmeldeinformationen bei NetScaler Console an.
  2. Navigieren Sie zu Orchestrierung > Kubernetes > Cluster. Die Seite „Cluster“ wird angezeigt.
  3. Klicken Sie auf Hinzufügen.
  4. Geben Sie auf der Seite Cluster hinzufügen die folgenden Parameter an:
    1. Name – Geben Sie einen Namen Ihrer Wahl an.
    2. API-Server-URL – Sie können die Details der API-Server-URL vom Kubernetes-Masterknoten abrufen.
      1. Führen Sie auf dem Kubernetes-Masterknoten den Befehl kubectl cluster-info aus.
        API-Server-URL
      2. Geben Sie die URL ein, die für „Kubernetes master is running at.“ angezeigt wird.
    3. Authentifizierungstoken – Geben Sie das Authentifizierungstoken an. Das Authentifizierungstoken ist erforderlich, um den Zugriff für die Kommunikation zwischen dem Kubernetes-Cluster und der NetScaler Console zu validieren. So generieren Sie ein Authentifizierungstoken:
      Auf dem Kubernetes-Masterknoten:
      1. Verwenden Sie das folgende YAML, um ein Dienstkonto zu erstellen:
        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
      2. Führen Sie kubectl create -f <yaml file> aus.
        Das Dienstkonto wird erstellt.
      3. Führen Sie kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name> aus, um die Clusterrolle an das Dienstkonto zu binden.
        Das Dienstkonto hat nun clusterweiten Zugriff.
        Beim Erstellen des Dienstkontos wird automatisch ein Token generiert.
      4. Führen Sie kubectl describe sa <name> aus, um das Token anzuzeigen.
      5. Um die geheime Zeichenfolge zu erhalten, führen Sie kubectl describe secret <token-name> aus.
        Token generieren
    4. Wählen Sie den Agenten aus der Liste aus.
      Hinweis
      Wenn Sie einen Agenten verwenden, stellen Sie sicher, dass Sie denselben Agenten auswählen, den Sie in der CPX-YAML hinzugefügt haben.
    5. Klicken Sie auf Erstellen.
      Cluster hinzufügen

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 der NetScaler Console 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 Graph anzuzeigen. So wählen Sie virtuelle Server automatisch aus:
  1. Navigieren Sie zu Einstellungen > Lizenzierungs- und Analyseeinstellungen.
  2. Aktivieren Sie unter Zusammenfassung der virtuellen Serverlizenzen die Optionen Virtuelle Server automatisch auswählen und Nicht adressierbare virtuelle Server automatisch auswählen.
    Virtuellen Server automatisch auswählen

Webtransaktions- und TCP-Transaktionseinstellungen aktivieren

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

Datenverkehr an Microservices senden

Als Nächstes müssen Sie Datenverkehr an Microservices senden, damit der Service-Graph in der NetScaler Console gefüllt wird.
  1. Ingress-IP und -Port bestimmen
    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}')
  2. Greifen Sie mit cURL auf die Bookinfo-Frontend-Anwendung zu. Der productpage-Dienst muss eine 200 OK-Antwort zurückgeben.
    curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
    curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage
  3. Besuchen Sie https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage in einem Browser.
    Die Seite Bookinfo wird angezeigt.
  4. Stellen Sie sicher, dass $INGRESS_HOST und $SECURE_INGRESS_PORT durch eine IP-Adresse und einen Portwert ersetzt werden.
Nachdem Sie Datenverkehr an Microservices gesendet haben, wird der Service-Graph innerhalb von etwa 10 Minuten gefüllt.
Beispiel
Mithilfe des Service-Graphen können Sie verschiedene Servicedetails wie Metriken, Fehler usw. analysieren. Weitere Informationen finden Sie unter Service-Graph.