Citrix ADC CPX in Kubernetes mit Diamanti- und Nirmata-validierten Referenzentwurf

Zu testende Merkmale und Funktionen

Testfälle: CPX als Ingress-Controller und Gerät für Nord-Süd und Hairpin Ost-West:

Setup für alle Testfälle außer VPX als Nord-Süd:

  • Zwei CPXs in einem Cluster (CPX-1, CPX-2)
  • ADM als Lizenzserver
  • Prometheus-Exporter-Behälter in einem Cluster
  • Prometheus-Server und Grafana (entweder als Pods in Kubernetes oder extern zum Kubernetes-Server)
  • Verschiedene Frontend-Apps
  • Mehrere Backend-Apps

I. VPX als Nord-Süd

  1. VPX auf einer SDX-Front-End-Diamanti-Plattform

    • Testen Sie SSL Offload und verschlüsseln Sie es erneut mit Einfügung von X-Forward für jede SSL-Verbindung
    • Einfügen von X-Forward bei SSL-Sitzungen

II. CPX als Nord-Süd-Gerät

  1. CPX-1. Richten Sie den HTTPS-Eingang mit Unterstützung für zwei oder drei HTTPS-Apps mit einer angegebenen Ingress-Klasse ein:

    • Demonstrieren Sie die Erstellung mehrerer Content Switching-Richtlinien: eine pro Frontend-App.
    • Demonstrieren Sie mehrere Wildcard-Zertifikate pro CPX: ein Wildcard-Zertifikat pro App.
    • Demonstrieren Sie, wie CPX den Datenverkehr an die Front-End-Apps auslagert und erneut verschlüsselt
    • Demonstrieren Sie verschiedene Lastenausgleich
    • Demonstrieren Sie die Beständigkeit eines Pods.
  2. CPX-1. Richten Sie einen separaten TCP-Eingang mit der angegebenen Ingress-Klasse ein:

    • TCP-App wie MongoDB einfügen.
    • Zeige die TCP-VIP-Erstellung an.
    • Zeigt den TCP-Client-Verkehr an, der beim MongoDB-Pod eingeht.
    • Standardmäßige TCP-App-Integritätsprüfung anzeigen.
  3. CPX-1. Richten Sie einen separaten TCP-SSL-Eingang mit der angegebenen Ingress-Klasse ein:

    • Demonstrieren Sie SSL-Offload und erneute Verschlüsselung für TCP-SSL VIP.
    • Testfall 2 wiederholen.
  4. CPX pro App. Verwendung einer separaten Ingress-Klasse:

    • Wiederholen Sie die Testfälle 1—3 mit CPX-2, das nur eine App unterstützt.
  5. CPX pro Team. Verwendung der Ingress-Klasse:

    • Weisen Sie verschiedene Ingress-Klassen für 2 Teams zu.
    • Demonstrieren Sie Testfall 1 als Beweis dafür, dass CPX Eingangsregeln für einzelne Teams konfigurieren kann.
  6. Autoscale der Frontend-Pods:

    • Erhöhen Sie den Verkehr zu den Front-End-Pods und stellen Sie sicher, dass die Pods
    • Zeigen Sie, dass CPX-1 neue Pods zur Servicegruppe hinzufügt.
    • Demonstrieren für HTTPS-Ingress VIP
  7. 4—7 vCPU-Unterstützung:

    • Konfigurieren Sie CPX-1 mit 4 oder 7 vCPUs.
    • Zeigen Sie den Leistungstest von HTTPS TPS, durchgehend verschlüsseltem BW.

III. CPX als Hairpin Ost-West-Gerät

  1. CPX-1. Erstellen Sie den HTTPS-Eingang für Nord-Süd-Verkehr wie in Abschnitt I.1 beschrieben:

    • Stellen Sie die Back-End-App der Frontend-App zur Verfügung.
    • Zeigt den Verkehr zwischen beiden Apps an.
    • Stellen Sie die Back-End-App einer anderen Back-End-App zur Verfügung.
    • Zeigt den Verkehr zwischen den Apps an.
  2. CPX-1. Folgen Sie den Anweisungen aus Schritt 1. Zeigen Sie außerdem die Ende-zu-Ende-Verschlüsselung an:

    • Back-End-App zu Back-End-App, die mit CPX-1 verschlüsselt wurde und Offload und Neuverschlüsselung durchführt.
  3. Autoscale-Back-End-Pods:

    • Demonstrieren Sie, wie CPX-1 automatisch skalierte Backend-Pods zur Servicegruppe hinzufügt.

IV. CPX-Integration mit Prometheus und Grafana

  1. Fügen Sie den Prometheus-Container in den Kubernetes-Cluster ein:

    • Konfigurieren Sie den Container mit den empfohlenen Leistungsindikatoren für den Export für jede App.
    • Demonstrieren Sie den Exporter-Container, der Leistungsindikatordaten an den
    • Zeigen Sie das Grafana-Dashboard an, das Daten vom Prometheus-Server illustriert, die von CPXs kommen.
    • Ziel ist es zu zeigen, dass Entwickler Cloud-native Tools verwenden können, die für DevOps beliebt sind.
  2. Demonstrieren Sie die rollende Bereitstellung von Kubernetes

    • Fügen Sie eine neue Version der App in Nirmata ein.
    • Zeigen Sie, wie Kubernetes eine neue App-Version im Cluster bereitstellt.
    • Demonstrieren Sie, wie CPX auf rollende Bereitstellungsbefehle von Kubernetes reagiert, um 100% des Datenverkehrs von der alten Version der App auf die neue Version der App zu übertragen.

Citrix-Lösung für die Citrix ADC CPX-Bereitstellung

  1. Benutzerdefinierte Protokolle: Standardmäßig automatisiert Citrix Ingress Controller die Konfiguration mit den Standardprotokollen (HTTP/SSL). Citrix Ingress Controller unterstützt die Konfiguration benutzerdefinierter Protokolle (TCP/SSL-TCP/UDP) mithilfe von Anmerkungen.

    Anmerkungen:

    ingress.citrix.com/insecure-service-type: "tcp" [Anmerkung zum Auswahl-LB-Protokoll]

    ingress.citrix.com/insecure-port: "53" [Anmerkung zur Unterstützung des benutzerdefinierten Port]

  2. Feinabstimmung von CS/LB/Servicegroup-Parametern: Standardmäßig konfiguriert Citrix Ingress Controller ADC mit Standardparametern. Die Parameter können mit Hilfe von NetScaler ADC Entity-Parameter-Annotationen (lb/servicegroup) verfeinert werden.

    Anmerkungen:

    LB-Methode: ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}'

    Beharrlichkeit: ingress.citrix.com/lbvserver: '{"app-1":{"persistencetype":"sourceip"}}'

    NITRO API

  3. SSL-Verschlüsselung pro App: Citrix Ingress Controller kann mithilfe von Smart Annotations selektiv die SSL-Verschlüsselung für Apps aktivieren.

    Anmerkungen:

    ingress.citrix.com/secure_backend: '{"web-backend": "True"} [Anmerkung zur selektiven Aktivierung der Verschlüsselung pro Anwendung]

  4. Standardzertifikat für den Ingress: Citrix Ingress Controller kann das Standardzertifikat als Argument annehmen. Wenn die Eingangsdefinition das Geheimnis nicht enthält, wird das Standardzertifikat verwendet. Das Geheimnis muss einmal im Namespace erstellt werden, und dann können alle Eingangs, die sich im Namespace befinden, es verwenden.

  5. Unterstützung für mehrere Ingress-Klassen von Citrix: Standardmäßig überwacht Citrix Ingress Controller alle eingehenden Objekte im k8s-Cluster. Wir können die Konfiguration von ADC (Tier-1 MPX/VPX & Tier-2 CPX) mit Hilfe von Ingress-Klassenannotationen steuern. Dies hilft jedem Team, die Konfigurationen für seinen ADC unabhängig zu verwalten. Die Ingress-Klasse kann bei der Bereitstellung von Lösungen zur Konfiguration von ADC für einen bestimmten Namespace sowie für eine Gruppe von Namensräumen hilfreich sein. Der Support ist allgemeiner als bei anderen Anbietern.

    Anmerkungen:

    kubernetes.io/ingress.class: "citrix" [Citrix Ingress Controller benachrichtigen, nur den Eingang zu konfigurieren, der zu einer bestimmten Klasse gehört]

  6. Sichtbarkeit: Die Citrix k8s-Lösung ist mit cncf-Sichtbarkeitstools wie Prometheous/Grafana für die Metrikerfassung integriert, um ein besseres Debugging und Analysen zu unterstützen. Citrix prometheus-Exporter kann Prometheus Metriken zur Sichtbarkeit mit Grafana als Zeitreihendiagramme zur Verfügung stellen.

Weitere Informationen zur Verwendung der Microservices-Architektur finden Sie in der Datei README.md in GitHub. Sie finden die .yaml-Dateien im Ordner Config.

POC-Storyline

Es gibt drei Teams, die ihre Apps auf einem Kubernetes-Cluster ausführen. Die Konfiguration jedes Teams wird unabhängig auf verschiedenen CPXs mit Hilfe der Citrix Ingress-Klasse verwaltet.

Die Apps für jedes Team laufen in separaten Namespaces (Team-Hotdrink, Team-Colddrink und Team-Redis) und alle CPXs laufen im CPX-Namespace.

team-hotdrink: SSL/HTTP-Eingang, Persistenz, libmethod, Verschlüsselung/Beschreibung pro Anwendung, Standardzertifikat.

team-colddrink: SSL-TCP-Eingang

team-redis: TCP-Eingang

POC-Setup

image-cpx-deployment-01

Ablauf der Anwendung

HTTP/SSL/SSL-TCP-Anwendungsfall:

image-cpx-deployment-02

TCP-Anwendungsfall:

image-cpx-deployment-03

Abrufen der Docker-Images

Die bereitgestellten YAML-Befehle rufen die Images aus dem Quay-Repository ab.

Die Images können auch abgerufen und im lokalen Repository gespeichert werden. Sie können sie verwenden, indem Sie den Image-Parameter in YAML bearbeiten.


Schrittweise Anwendungs- und CPX-Bereitstellung mit N

  1. Laden Sie die Clusterrollen und Cluster-Rollenbindungen in YAML hoch und wenden Sie sie mit Nirmata (rbac.yaml) im Cluster an.

    1. Gehen Sie zur Registerkarte Cluster .
    2. Wählen Sie den Cluster aus.
    3. Wenden Sie in den Einstellungen YAML über die Option YAMLs anwenden an.
  2. Erstellen Sie die Umgebung für die Ausführung von CPX und den Apps.

    1. Gehen Sie zur Registerkarte Umgebung .
    2. Klicken Sie auf die Registerkarte Umgebung hinzufügen .
      • Wählen Sie den Cluster aus und erstellen Sie eine Umgebung im freigegebenen Namespace.

      image-cpx-deployment-04

    3. Erstellen Sie die folgenden Umgebungen für die Ausführung von Prometheus, CPX und Apps für verschiedene Teams.
      • Umgebung erstellen: cpx
      • Umgebung schaffen: team-hotdrink
      • Umgebung schaffen: team-colddrink
      • Umgebung erstellen: team-redis
  3. Laden Sie die .yaml-Anwendung mit Nirmata hoch.

    1. Gehen Sie zur Registerkarte Katalog .
    2. Klicken Sie auf Anwendung hinzufügen.
    3. Klicken Sie auf Hinzufügen, um die Anwendungen hinzuzufügen.

      Anwendung hinzufügen: team-hotdrink (team_hotdrink.yaml). Name der Anwendung: team-hotdrink.

      Anwendung hinzufügen: team-colddrink (team_coldrink.yaml). Name der Anwendung: team-colddrink.

      Anwendung hinzufügen: team-redis (team_redis.yaml). Name der Anwendung: team-redis.

      Anwendung hinzufügen: cpx-svcacct (cpx_svcacct.yaml). Anwendungsname: cpx-svcacct.

      Hinweis:

      CPX mit integriertem Citrix Ingress Controller erfordert ein Dienstkonto in dem Namespace, in dem es ausgeführt wird. Für die aktuelle Version in Nirmata erstellen Sie dies mit cpx_svcacct.yaml in der cpx-Umgebung.

      Anwendung hinzufügen: cpx (cpx_wo_sa.yaml). Name der Anwendung: cpx.

  4. Führen Sie die CPX mit Nirmata aus.

    1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die richtige Umgebung aus.
    2. Klicken Sie auf Anwendung ausführen, um die Anwendung auszuführen.
    3. Führen Sie die Anwendung cpx-svcacct in der cpx-Umgebung aus. Wählen Sie cpx-svcacct mit dem Runnamen cpx-svcacct aus der Kataloganwendung aus.
    4. Führen Sie in der cpx-Umgebung die cpx-Anwendung aus. Wählen Sie in der Kataloganwendungcpx aus.

    image-cpx-deployment-05

    Hinweis:

    Für die CPX-Bereitstellung sind einige kleine Workarounds erforderlich, da das Setup eine frühere Version von Nirmata verwendet.

    1. Legen Sie beim Erstellen der CPX-Bereitstellungen nicht die fest serviceAccountName. serviceAccountName kann später hinzugefügt werden. Stellen Sie als Workaround die Pods automatisch erneut bereit.
    2. Importieren Sie das TLS-Geheimnis für den Eingang direkt in die Umgebung. Dadurch wird sichergestellt, dass das Typfeld erhalten bleibt.
    1. Gehen Sie nach dem Ausführen der Anwendung zur CPX-Anwendung .
    2. Klicken Sie auf der Registerkarte Bereitstellungen > StatefulSets & DaemonSets auf die Bereitstellung cpx-ingress-colddrinks.
    3. Bearbeiten Sie auf der nächsten Seite die Pod-Vorlage. Geben Sie CPX in das Dienstkonto ein.
    4. Kehren Sie zur CPX-Anwendung zurück.
    5. Wiederholen Sie das gleiche Verfahren für die cpx-ingress-hotdrinks- und cpx-ingress-redis-Bereitstellung.

    Durch Anwenden des Dienstkontos werden die Pods erneut bereitgestellt. Warten Sie, bis die Pods angezeigt werden, und bestätigen Sie, ob das Dienstkonto angewendet wurde.

    Dasselbe kann mit den folgenden Befehlen im Diamanti-Cluster überprüft werden.

    
    [diamanti@diamanti-250 ~]$ kubectl get deployment -n cpx -o yaml | grep -i account
            serviceAccount: cpx
            serviceAccountName: cpx
            serviceAccount: cpx
    <!--NeedCopy-->
    

    Hinweis: Wenn serviceAccount nicht angewendet wird, brechen Sie die CPX-Pods ab. Die Bereitstellung, mit der es neu erstellt wird, wird erstellt serviceAccount.

    image-cpx-deployment-06

  5. Führen Sie die Anwendungen mit Nirmata aus.

    Team-Hotdrink-Anwendung:

    1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die richtige Umgebung aus: team-hotdrink.
    2. Führen Sie in der Umgebung team-hotdrink die Anwendung team-hotddrink mit dem Runnamen team-hotdrink aus. Wählen Sie team-hotdrink aus der Kataloganwendung aus.
    3. Gehen Sie zur Anwendung team-hotdrink. Klicken Sie in der oberen rechten Ecke des Bildschirms auf Einstellungen und wählen Sie In Anwendung importierenaus. Hochladen hotdrink-secret.yaml.

    image-cpx-deployment-07

    Team-Colddrink-Anwendung:

    1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die richtige Umgebung aus: team-colddrink.
    2. Führen Sie in der Umgebung team-colddrink die Anwendung team-coldddrink mit dem Runnamen team-colddrink aus. Wählen Sie team-hotdrink aus der Kataloganwendung aus.
    3. Gehen Sie zur Anwendung team-colddrink. Klicken Sie in der oberen rechten Ecke des Bildschirms auf Einstellungen und wählen Sie In Anwendung importierenaus. Hochladen colddrink-secret.yaml.

    team-redis-Anwendung:

    1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die richtige Umgebung aus: team-redis.
    2. Führen Sie in der Umgebung team-colddrink eine Anwendung mit dem Runnamen team-redis aus. Wählen Sie team-redis aus der Kataloganwendung aus.
      • Führen Sie in der Umgebung team-redis eine Anwendung mit dem Runnamen team-redis aus.

Befehle auf VPX, um Tier-2-CPX verfügbar zu machen

Tier-1 VPX sollte SSL-Verschlüsselung/Beschreibung durchführen und X-Forward-Header einfügen, während es an Tier-2-CPX sendet. Die Tier-1-Konfiguration sollte manuell durchgeführt werden. Der X-Forward-Header kann mit -cip ENABLED in servicegroup eingefügt werden. Öffnen Sie config.txt.

Erstellen Sie einen CSVERVER:

Laden Sie certkey in Citrix ADC hoch: wild.com-key.pem, wild.com-cert.pem

add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->

Stellen Sie www.hotdrinks.com, www.colddrinks.com, www.guestbook.com auf Tier-1 VPX bereit:

add serviceGroup team_hotdrink_cpx SSL -cip ENABLED
add serviceGroup team_colddrink_cpx SSL -cip ENABLED
add serviceGroup team_redis_cpx HTTP
add ssl certKey cert -cert "wild-hotdrink.com-cert.pem" -key "wild-hotdrink.com-key.pem"
add lb vserver team_hotdrink_cpx HTTP 0.0.0.0 0
add lb vserver team_colddrink_cpx HTTP 0.0.0.0 0
add lb vserver team_redis_cpx HTTP 0.0.0.0 0
add cs vserver frontent SSL 10.106.73.218 443
add cs action team_hotdrink_cpx -targetLBVserver team_hotdrink_cpx
add cs action team_colddrink_cpx -targetLBVserver team_colddrink_cpx
add cs action team_redis_cpx -targetLBVserver team_redis_cpx
add cs policy team_hotdrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.hotdrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_hotdrink_cpx
add cs policy team_colddrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.colddrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_colddrink_cpx
add cs policy team_redis_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.guestbook.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_redis_cpx
bind lb vserver team_hotdrink_cpx team_hotdrink_cpx
bind lb vserver team_colddrink_cpx team_colddrink_cpx
bind lb vserver team_redis_cpx team_redis_cpx
bind cs vserver frontent -policyName team_hotdrink_cpx -priority 10
bind cs vserver frontent -policyName team_colddrink_cpx -priority 20
bind cs vserver frontent -policyName team_redis_cpx -priority 30
bind serviceGroup team_hotdrink_cpx 10.1.3.8 443
bind serviceGroup team_colddrink_cpx 10.1.2.52 443
bind serviceGroup team_redis_cpx 10.1.2.53 80
bind ssl vserver frontent -certkeyName cert
<!--NeedCopy-->

Aktualisieren Sie die IP-Adresse auf die CPX-Pod-IPs für Servicegroup:

root@ubuntu-211:~/demo-nimata/final/final-v1# kubectl get pods -n cpx -o wide
NAME                                      READY     STATUS    RESTARTS   AGE       IP             NODE
cpx-ingress-colddrinks-5bd94bff8b-7prdl   1/1       Running   0          2h        10.1.3.8   ubuntu-221
cpx-ingress-hotdrinks-7c99b59f88-5kclv    1/1       Running   0          2h        10.1.2.52  ubuntu-213
cpx-ingress-redis-7bd6789d7f-szbv7        1/1       Running   0          2h        10.1.2.53  ubuntu-213
<!--NeedCopy-->

image-cpx-deployment-08

  • Um auf www.hotdrinks.com, www.colddrinks.com, www.guestbook.comzuzugreifen, sollten die hosts-Datei (des Computers, von dem aus auf die Seiten zugegriffen werden soll) mit den folgenden Werten angehängt werden:

     <CS_VSERVER_IP>      www.hotdrinks.com
    
     <CS_VSERVER_IP>      www.colddrinks.com
    
     <CS_VSERVER_IP>      www.guestbook.com
    

    Danach können Sie auf die Apps zugreifen: www.hotdrinks.com, www.colddrinks.com, www.guestbook.com

Validierung der Tier-2-CPX-Konfiguration

Um die CPX-Konfiguration zu validieren, gehen Sie zur CPX-Umgebung. Wählen Sie die ausgeführte CPX-Anwendung aus.

Wählen Sie die Bereitstellung cpx-ingress-hotdrinks aus und klicken Sie dann auf den Pod cpx-ingress-hotdrinks-xxxx-xxxx.

Gehen Sie auf der nächsten Seite zum laufenden Container und starten Sie das Terminal für cpx-ingress-hotdrinks, indem Sie den Befehl “bash” eingeben.

image-cpx-deployment-09

image-cpx-deployment-10

Wenn das Terminal verbunden ist, überprüfen Sie die Konfiguration mit dem regulären NetScaler-Befehl via cli_script.sh.

  • cli_script.sh “sh cs vs”
  • cli_script.sh “sh lb vs”
  • cli_script.sh “sh servicegroup”

Die Validierung kann für andere CPX-Bereitstellungen für team-colddrink und team-mongodb auf dieselbe Weise durchgeführt werden.

Scale-Up/Scale-Down durchführen

So führen Sie eine Skalierung nach oben oder unten durch:

  1. Gehen Sie in die team-hotdrink-Umgebung. Wählen Sie die laufende Anwendung team-hotdrinkaus.
  2. Klicken Sie auf die Bereitstellung frontend-hotdrinks.
  3. Klicken Sie auf der nächsten Seite auf Replikate aktualisieren. Erhöhen Sie es auf 10.

Siehe: Validierung der Tier-2-CPX-Konfiguration zur Überprüfung der Konfiguration in CPX (Bereitstellung: cpx-ingress-hotdrinks).

  1. Gehen Sie zur CPX-Umgebung. Wählen Sie eine laufende CPX-Anwendung aus.
  2. Klicken Sie auf die Bereitstellung cpx-ingress-hotdrinks.
  3. Klicken Sie auf den Pod cpx-ingress-hotdrinks-xxxx-xxxx.
  4. Gehen Sie auf der nächsten Seite zum laufenden Container und starten Sie das Terminal für cpx-ingress-hotdrinks, indem Sie den Befehl “bash” eingeben.
  5. cli_script.sh "sh servicegroup < servicegroup name >".

image-cpx-deployment-11

Rollendes Update durchführen

So führen Sie ein rollendes Update durch

  1. Gehen Sie in die team-hotdrink-Umgebung. Wählen Sie die laufende Anwendung team-hotdrinkaus.
  2. Stellen Sie frontend-hotdrinks bereit.
  3. Gehen Sie auf der nächsten Seite zur Pod-Vorlage.
  4. Aktualisieren Sie das Image auf: quay.io/citrix/hotdrinks-v2: latest.
  5. Lassen Sie das Update abschließen.
  6. Rufen Sie die Anwendung erneut auf. Die neue Seite sollte nach dem Rollen des Updates mit einem aktualisierten Image geliefert werden.

image-cpx-deployment-12

Prometheus bereitstellen

NetScaler Metrics Exporter, Prometheus und Grafana werden verwendet, um Metriken aus der eingehenden CPX automatisch zu erkennen und zu sammeln.

Schritte zur Bereitstellung von Prometheus:

Erstellen Sie die Umgebungen für die Ausführung von CPX und der Apps:

  1. Gehen Sie zur Registerkarte Umgebung .
  2. Klicken Sie auf Umgebung hinzufügen.
  3. Erstellen Sie die Umgebungen für die Ausführung von Exporter, Prometheus und Grafana.
    • Schaffen Sie die Umgebung: Überwachung.

Laden Sie die .yaml-Datei mit Nirmata hoch:

  1. Gehen Sie zur Registerkarte Katalog .
  2. Klicken Sie auf Anwendung hinzufügen.
  3. Klicken Sie auf Hinzufügen, um die Anwendungen hinzuzufügen.
    • Anwendung hinzufügen: monitoring (monitoring.yaml).

Ausführen der Prometheus-Anwendung:

  1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die richtige Umgebung aus: Überwachung.
  2. Klicken Sie auf Anwendung mit dem NamenMonitoringausführen.
  3. Dadurch werden die Exporter-, Prometheus- und Grafana-Pods bereitgestellt und mit der Erfassung von Metriken begonnen.
  4. Jetzt müssen Prometheus und Grafana durch die VPX entlarvt werden.

Befehle auf der VPX, um Prometheus und Grafana zu entlarven:

Erstellen Sie einen csvserver:

add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->

Prometheus entlarven:

add serviceGroup prometheus HTTP
add lb vserver prometheus HTTP 0.0.0.0 0
add cs action prometheus -targetLBVserver prometheus
add cs policy prometheus -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.prometheus.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action prometheus
bind lb vserver prometheus prometheus
bind cs vserver frontent_grafana -policyName prometheus -priority 20
bind serviceGroup prometheus <PROMETHEUS_POD_IP> 9090
<!--NeedCopy-->

Hinweis:

Holen Sie sich die prometheus-k8s-0 Pod-IP mit “kubectl get pods -n monitoring -o wide”

Grafana entlarven:

add serviceGroup grafana HTTP
add lb vserver grafana HTTP 0.0.0.0 0
add cs action grafana -targetLBVserver grafana
add cs policy grafana -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.grafana.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action grafana
bind lb vserver grafana grafana
bind cs vserver frontent_grafana -policyName grafana -priority 10
bind serviceGroup grafana <GRAFANA_POD_IP>  3000
<!--NeedCopy-->

Hinweis:

Holen Sie sich die grafana-xxxx-xxx Pod-IP mit kubectl get pods -n monitoring -o wide

  • Jetzt wurden die Prometheus- und Grafana-Seiten für den Zugriff über den cs vserver der VPX verfügbar gemacht.

  • Um auf Prometheus und Grafana zuzugreifen, sollten die hosts-Datei (der Maschine, von der aus auf die Seiten zugegriffen werden soll) mit den folgenden Werten angehängt werden:

     <CS_VSERVER_IP>       www.grafana.com
     <CS_VSERVER_IP>       www.prometheus.com
    
  • Wenn dies erledigt ist, greifen Sie auf Prometheus zu, indem Sie www.prometheus.combesuchen. Besuchen Sie Grafana unter www.grafana.com.

Visualisieren Sie die Metriken:

  • Um sicherzustellen, dass Prometheus den Exporteur erkannt hat, besuchen Sie www.prometheus.com/targets. Es sollte eine Liste aller Exporteure enthalten, die die CPX- und VPX-Geräte überwachen. Stellen Sie sicher, dass sich alle Exporteure im Status UP befinden. Beispiel:

image-cpx-deployment-13

  • Jetzt können Sie Grafana verwenden, um die gesammelten Werte darzustellen. Um das zu tun:

    1. Gehen Sie auf www.grafana.com. Stellen Sie sicher, dass der Host-Datei ein entsprechender Eintrag hinzugefügt wurde.
    2. Melden Sie sich mit dem Standardbenutzernamen admin und dem Kennwort adminan.
    3. Klicken Sie nach der Anmeldung im Start-Dashboard auf Datenquelle hinzufügen .
    4. Wählen Sie die Option Prometheus .
    5. Die folgenden Angaben bereitstellen/ändern:
      • Name: prometheus (alles in Kleinbuchstaben).
      • URL: http://prometheus:9090.
      • Belassen Sie die verbleibenden Einträge mit Standardwerten.
    6. Klicken Sie auf Speichern und testen. Warten Sie einige Sekunden, bis die Meldung Datenquelle funktioniert am unteren Bildschirmrand angezeigt wird.
    7. Importieren Sie eine vorgefertigte Grafana-Vorlage, indem Sie auf das +-Symbol im linken Bereich klicken. Wählen Sie Importieren.
    8. Klicken Sie auf die Schaltfläche JSON hochladen und wählen Sie die Datei sample_grafana_dashboard.json aus ( Name, Ordnerund eindeutige Kennung unverändert lassen).
    9. Wählen Sie Prometheus aus dem prometheus-Dropdown-Menü und klicken Sie auf Importieren.
    10. Dadurch wird ein Dashboard hochgeladen, das dem folgenden Bild ähnelt:

      image-cpx-deployment-14

Lizenzierung und Leistungstests

Ausführen von CPXs für Performance und Lizenzierung.

Die Anzahl der CPX-Kerne und Lizenzserverdetails sind in den folgenden Umgebungsvariablen angegeben.

Umgebungsvariable zur Auswahl der Anzahl der Kerne

  • Name: “CPX_CORES”
  • Wert: “3”

Umgebungsvariable zur Auswahl des Lizenzservers

  • Name: “LS_IP”
  • Wert: “X.X.X.X”

    Diamanti-Annotationen: diamanti.com/endpoint0: '{"network":"lab-network","perfTier":"high"}

    Zeigen Sie auf den richtigen Lizenzserver, indem Sie oben die richtige IP festlegen.

    1. Fügen Sie die oben genannten Umgebungsvariablen sowie Diamanti-spezifische Anmerkungen in die Datei cpx-perf.yaml ein.
    2. Gehen Sie zur Registerkarte Umgebung und erstellen Sie die Umgebung cpx-perf.

    Laden Sie die YAML-Anwendung mit Nirmata hoch.

    1. Gehen Sie zur Registerkarte Katalog .
    2. Klicken Sie auf Anwendung hinzufügen.
    3. Klicken Sie auf Hinzufügen, um eine Anwendung hinzuzufügen: cpx-perf.yaml. Name der Anwendung: cpx-perf.

    CPX ausführen:

    1. Gehen Sie zur Registerkarte Umgebung und wählen Sie die Umgebung cpx-perf aus.
    2. Führen Sie die Anwendung cpx-svcacct in der Umgebung cpx-perf aus.
    3. Führen Sie die Anwendung cpx-perf in der Umgebung cpx-perf aus.
    4. Gehen Sie nach dem Ausführen der Anwendung zur Anwendung cpx-perf.
    5. Klicken Sie unter Deployments > StatefulSets & DaemonSets auf die Bereitstellung cpx-ingress-perf. Bearbeiten Sie auf der nächsten Seite die Pod-Vorlage. Geben Sie CPX in das Dienstkonto ein.
    6. Überprüfen Sie, ob die Lizenz funktioniert und dass das Auschecken der Lizenz in Citrix ADM erfolgt.
      • Führen Sie die folgenden Schritte aus, um auf dem CPX zu validieren:
        • kubectl get pods -n cpx
        • kubectl exec -es -n cpx bash
        • cli_script.sh ‘sh licenseserver’
        • cli_script.sh ‘sh-Kapazität’
      • Sehen Sie sich eine ähnliche Ausgabe an:
      root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh licenseserver'
      exec: sh licenseserver
      1)  ServerName:  10.217.212.228Port:  27000            Status:  1              Grace:  0               Gptimeleft:  0
      Done
      root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh capacity'
      exec: sh capacity
          Actualbandwidth:  10000 VcpuCount:  3           Edition:  Platinum      Unit:  Mbps             Maxbandwidth:  10000    Minbandwidth:  20       Instancecount:  0
      Done
      <!--NeedCopy-->
      
      • Um auf dem ADM zu validieren, gehen Sie zum Lizenzserver und navigieren Sie zu Netzwerke > Lizenzen > Virtuelle CPU-Lizenzen.
      • Hier sollten Sie die lizenzierte CPX zusammen mit der Anzahl der Kerne sehen.

      image-cpx-deployment-15

Tabelle “Anmerkungen”

Annotation Möglicher Wert Beschreibung Standard (falls vorhanden)
kubernetes.io/ingress.class ingress-Klassenname Es ist eine Möglichkeit, eine bestimmte Eingangsressource einem Ingress-Controller zuzuordnen. Beispiel: kubernetes.io/ingress.class:"Citrix" Konfiguriert alle Ingress
ingress.citrix.com/secure_backend Listen Sie im .json-Format die Dienste für Secure-Backend auf Verwenden Sie True, wenn Citrix ADC Ihre Anwendung mit der sicheren HTTPS-Verbindung verbinden soll. Verwenden Sie False, wenn Citrix ADC Ihre Anwendung mit einer unsicheren HTTP-Verbindung verbinden soll. Beispiel: ingress.citrix.com/secure_backend: {‘app1’:"True", ‘app2’:"False", ‘app3’:"True"} “Falsch”
ingress.citrix.com/lbvserver Im JSON-Formular Einstellungen für lbvserver Es bietet intelligente Annotationsfunktionen. Auf diese Weise kann ein fortgeschrittener Benutzer (der über Kenntnisse der NetScaler LB Vserver- und Service-Gruppenoptionen verfügt) diese direkt anwenden. Werte müssen im JSON-Format vorliegen. Geben Sie für jede Back-End-App im Eingangsbereich ein Schlüsselwertpaar an. Der Schlüsselname sollte mit dem entsprechenden CLI-Namen übereinstimmen. Beispiel: ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}' Standardwerte