Detaillierte Verfahren zur Einrichtung einer Dual-Tier- oder Service-Mesh-Lite-Topologie

Softwareanforderungen

Kubernetes-Distribution Kubernetes-Version Container Network Interfaces (CNI) CPX-Version CIC-Version NetScaler Console-Version NetScaler Agent-Version
Open source v1.16.3 Flannel 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

Bevor Sie beginnen

Sie können den Service Graph in den folgenden Szenarien anzeigen:

  • NetScaler Console und Kubernetes-Cluster im selben Netzwerk (zum Beispiel NetScaler Console und Kubernetes-Cluster, die auf Citrix Hypervisor gehostet werden).

  • NetScaler Console und Kubernetes-Cluster in einem anderen Netzwerk. In diesem Szenario müssen Sie einen On-Prem-Agenten konfigurieren und den Agenten in dem Netzwerk registrieren, in dem der Kubernetes-Cluster gehostet wird.

Um den Service Graph in NetScaler Console zu verwenden, stellen Sie sicher, dass Sie Folgendes haben:

Softwareanforderungen

Kubernetes-Distribution Kubernetes-Version Container Network Interfaces (CNI) CPX-Version CIC-Version NetScaler Console-Version NetScaler Agent-Version
Open source v1.16.3 Flannel 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

Bevor Sie beginnen

Sie können den Service Graph in den folgenden Szenarien anzeigen:

  • NetScaler Console und Kubernetes-Cluster im selben Netzwerk (zum Beispiel NetScaler Console und Kubernetes-Cluster, die auf Citrix Hypervisor gehostet werden).

  • NetScaler Console und Kubernetes-Cluster in einem anderen Netzwerk. In diesem Szenario müssen Sie einen On-Prem-Agenten konfigurieren und den Agenten in dem Netzwerk registrieren, in dem der Kubernetes-Cluster gehostet wird.

Um den Service Graph in NetScaler Console zu verwenden, stellen Sie sicher, dass Sie Folgendes haben:

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 On-Prem-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:

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 <öffentlicher IP-Adressbereich> <Kubernetes-IP-Adresse>.

    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 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.

Beispiel-Bereitstellungsdateien von GitHub herunterladen

  1. Verwenden Sie den Befehl git clone https://github.com/citrix/citrix-k8s-ingress-controller.git, um das GitHub-Repository auf dem Master-Knoten zu klonen.

  2. Um auf die YAMLs zuzugreifen:

    cd citrix-k8s-ingress-controller/example/servicegraph-demo/

Parameter in der CPX-YAML-Datei hinzufügen

Hinweis

Wenn Sie CPX 58.x oder höher verwenden, müssen Sie bei der Registrierung beim Agenten das Nicht-nsroot-Passwort verwenden. Um die Sicherheit zu gewährleisten, erfordern NetScaler Agent 61.x oder höhere Versionen eine obligatorische Passwortänderung. Wenn Ihr NetScaler Agent auf Version 61.x oder die neueste Version aktualisiert wurde, müssen Sie sicherstellen, dass Sie einen Build von CPX 58.x oder höher verwenden.

Sie müssen die folgenden Parameter in die Datei cpx.yaml aufnehmen, um die CPX-Registrierung bei NetScaler Console sicherzustellen:

-  name: "NS_MGMT_SERVER"
  value: "xx.xx.xx.xx"
-  name: "NS_MGMT_FINGER_PRINT"
  value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
-  name: "NS_HTTP_PORT"
  value: "9080"
-  name: "NS_HTTPS_PORT"
  value: 9443"
-  name: "NS_MGMT_USER"
  value: "nsroot"
-  name: "NS_MGMT_PASS"
  value: <your password>
-  name: "LOGSTREAM_COLLECTOR_IP"
  value: "xx.xx.xx.xx"

<!--NeedCopy-->
  • NS_MGMT_SERVER – Gibt die IP-Adresse der NetScaler Console an.

    Hinweis

    Wenn ein Agent verwendet wird, gibt dies die IP-Adresse des Agenten an.

  • NS_MGMT_FINGER_PRINT – Gibt die Authentifizierung für CPX in NetScaler Console an. Um den Fingerabdruck zu erhalten:

    1. Navigieren Sie in NetScaler Console zu Einstellungen > Administration.

    2. Klicken Sie unter Systemkonfigurationen auf ADM-Fingerabdruck anzeigen.

      Fingerabdruck

      Hinweis:

      Wenn Sie einen On-Prem-Agenten konfiguriert haben, navigieren Sie zu Infrastruktur > Instanzen > Agenten, wählen Sie den Agenten aus und klicken Sie dann auf Fingerabdruck anzeigen.

      Agenten-Fingerabdruck

  • NS_HTTP_PORT – Gibt den HTTP-Port für die Kommunikation an.

  • NS_HTTPS_PORT – Gibt den HTTPS-Port für die Kommunikation an.

  • NS_MGMT_USER – Gibt den Benutzernamen an.

  • NS_MGMT_PASS – Gibt das Passwort an. Geben Sie ein Passwort Ihrer Wahl ein.

  • LOGSTREAM_COLLECTOR_IP – Gibt die IP-Adresse des NetScaler-Agenten an, auf dem das Logstream-Protokoll aktiviert sein muss, um Protokolldaten von CPX an NetScaler Console zu übertragen.

VPX- oder SDX- oder MPX- oder BLX-Instanz in NetScaler Console hinzufügen

Um die Tier-1-NetScaler-Instanzanalysen im Service Graph zu erhalten, müssen Sie die VPX/SDX/MPX/BLX-Instanz in NetScaler Console hinzufügen und Web Insight aktivieren.

  1. Navigieren Sie zu Infrastruktur > Instanzen > NetScaler.

  2. Klicken Sie auf die Option Hinzufügen, um die Instanz hinzuzufügen. Weitere Informationen finden Sie unter Instanzen in NetScaler Console hinzufügen.

  3. Nach dem Hinzufügen der Instanz wählen Sie den virtuellen Server aus und aktivieren Web Insight. Weitere Informationen finden Sie unter Lizenzierung verwalten und Analysen auf virtuellen Servern aktivieren.

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 Master-Knoten abrufen.

      1. Führen Sie auf dem Kubernetes Master-Knoten 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 NetScaler Console zu validieren. So generieren Sie ein Authentifizierungstoken:

      Auf dem Kubernetes Master-Knoten:

      1. Verwenden Sie die folgende YAML, um ein Service-Konto zu erstellen:

        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
        <!--NeedCopy-->
        
      2. Führen Sie kubectl create -f <yaml-Datei> aus.

        Das Service-Konto wird erstellt.

      3. 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, während das Service-Konto erstellt wird.

      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 On-Prem-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

Eine Beispiel-Microservice-Anwendung bereitstellen

Auf dem Master-Knoten:

  1. Führen Sie kubectl create -f namespace.yaml aus, um einen Namespace zu erstellen.

  2. Stellen Sie hotdrink-Microservices, Ingress und Secrets mit den folgenden Befehlen bereit:

    kubectl create -f team_hotdrink.yaml -n sg-demo

    kubectl create -f hotdrink-secret.yaml -n sg-demo

CPX bereitstellen und CPX in NetScaler Console registrieren

  1. Führen Sie kubectl create -f rbac.yaml aus, um Cluster-Rolle und Cluster-Bindung bereitzustellen.

  2. Führen Sie kubectl create -f cpx.yaml -n sg-demo aus, um CPX bereitzustellen.

Nach der Bereitstellung erfolgt die CPX-Registrierung automatisch.

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 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

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.

  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 Web-Transaktionseinstellungen die Option Alle aus.

  4. Wählen Sie unter TCP-Transaktionseinstellungen die Option Alle aus.

    TCP

  5. Klicken Sie auf OK.

Traffic an Microservices senden

Als Nächstes müssen Sie Traffic an Microservices senden, damit der Service Graph in NetScaler Console gefüllt wird.

  1. Führen Sie kubectl get svc -n sg-demo aus, um CPX über NodePort freizulegen.

    NodePort

  2. Bearbeiten Sie die Datei etc/host und erstellen Sie einen Domain-IP-Eintrag für hotdrink.beverages.com.

    Sie können nun auf den Microservice über https://hotdrink.beverages.com zugreifen.