Erweiterte Konzepte

Citrix ADC CPX, Citrix Ingress Controller und Application Delivery Management in Google Cloud

Citrix Produktübersicht für Architektur und Komponenten von GCP K8

Die fünf wichtigsten Citrix Komponenten von GCP

  1. Citrix ADC VPX als Tier 1-ADC für eingriffsbasierten Internet-Client-Datenverkehr.

    Mit einer VPX-Instanz in GCP können Sie die GCP-Computing-Funktionen nutzen und Citrix Load Balancing und Traffic Management-Funktionen für Ihre geschäftlichen Anforderungen nutzen. Sie können VPX in GCP als eigenständige Instanz bereitstellen. Es werden sowohl Konfigurationen mit einer als auch mit mehreren Netzwerkkarten (NIC) unterstützt.

  2. Der Kubernetes-Cluster, der Google Kubernetes Engine (GKE) verwendet, um die Containerplattform zu bilden.

    Kubernetes Engine ist eine verwaltete, produktionsfähige Umgebung für die Bereitstellung containerisierter Anwendungen. Sie ermöglicht eine schnelle Bereitstellung und Verwaltung Ihrer Anwendungen und Services.

  3. Stellen Sie eine Citrix Beispiel-Webanwendung mithilfe der YAML-Dateibibliothek bereit.

    Citrix hat eine Beispielwebanwendung für Microservice bereitgestellt, um die zweistufige Anwendungstopologie auf GCP zu testen. Für den Proof of Concept haben wir auch folgende Komponenten in die Beispieldateien aufgenommen:

    • Beispiel-Hotdrink-Webdienst in Kubernetes YAML-Datei
    • Beispiel Colddrink Web Service in Kubernetes YAML-Datei
    • Beispiel-Guestbook Web Service in Kubernetes YAML Datei
    • Beispiel Grafana Charting Service in Kubernetes YAML-Datei
    • Beispiel Prometheus Logging Service in Kubernetes YAML Datei

    GCP

  4. Stellen Sie den Citrix Ingress-Controller für die Citrix ADC-Automatisierung der Stufe 1 im GKE-Cluster bereit.

    Der Citrix Ingress-Controller, der um Kubernetes herum erstellt wurde, konfiguriert automatisch einen oder mehrere Citrix ADC basierend auf der Konfiguration der Ingress Resource. Ein Ingress-Controller ist ein Controller, der den Kubernetes-API-Server auf Aktualisierungen der Ingress-Ressource überwacht und den Ingress Load Balancer entsprechend neu konfiguriert. Der Citrix Ingress Controller kann entweder direkt über YAML-Dateien oder über Helm Charts bereitgestellt werden.

    GCP

    Citrix hat Beispiel für YAML-Dateien für die Citrix Ingress Controller-Automatisierung der Tier 1 VPX-Instanz bereitgestellt. Die Dateien automatisieren mehrere Konfigurationen auf dem Tier 1 VPX, einschließlich:

    • Richtlinien und Aktionen neu schreiben
    • Richtlinien und Aktionen für Responder
    • Inhalt URL-Regeln wechseln
    • CPX-Lastausgleichsdienste hinzufügen/entfernen

    Die YAML-Datei für den Citrix Ingress Controller für GCP befindet sich hier: https://github.com/citrix/example-cpx-vpx-for-kubernetes-2-tier-microservices/tree/master/gcp

Zweistufige Ingress-Bereitstellung auf GCP

Stellen Sie in einer zweistufigen Ingress-Bereitstellung Citrix ADC VPX/MPX außerhalb des Kubernetes-Clusters (Tier 1) und Citrix ADC CPXs innerhalb des Kubernetes-Clusters (Tier 2) bereit.

Das Tier 1 VPX/MPX würde den Lastausgleich des Tier 2 CPX innerhalb des Kubernetes-Clusters ausgleichen. Dabei handelt es sich um ein generisches Bereitstellungsmodell, das unabhängig von der Plattform, unabhängig davon, ob es sich um Google Cloud, Amazon Web Services, Azure oder eine lokale Bereitstellung handelt.

Automatisierung des Tier-1-VPX/MPX

Der Tier1-VPX/MPX-Lastausgleich gleicht automatisch die Last der Tier 2 CPXs aus. Der Citrix Ingress Controller schließt die Automatisierungskonfigurationen ab, indem er als Pod im Kubernetes-Cluster ausgeführt wird. Es konfiguriert eine separate Eingangsklasse für das Tier 1 VPX/MPX, sodass sich die Konfiguration nicht mit anderen Ingress-Ressourcen überlappt.

GCP


Citrix Bereitstellungsübersicht

Installieren und Konfigurieren des Tier-1-Citrix ADC auf GCP

Sie können Citrix ADC mit einer der folgenden Optionen bereitstellen:

Jetzt müssen Sie Citrix VPX (Tier-1-adc) mithilfe der 3-NIC-GDM-Vorlage bereitstellen.

Voraussetzungen (obligatorisch):

  1. Erstellen eines GCP-Kontos nurhttp://console.cloud.google.commit Ihrer Citrix Mail-ID

  2. Erstellen Sie cnn-selab-atl als Projektnamen auf der GCP-Konsole: GCP

  3. Installieren Sie dasgcloud Dienstprogramm auf Ihrem Gerät. Folgen Sie dem Link, um das Dienstprogramm zu finden:https://cloud.google.com/sdk/install.

  4. Authentifizieren Sie sich bei Ihrem Google-Konto mit gcloud API gcloud auth Login.

  5. Installieren Sie kubectl auf Ihrem Client:https://kubernetes.io/docs/tasks/tools/install-kubectl/

  6. Führen Sie den folgenden Befehl auf demgcloud Dienstprogramm aus, um ein Image zu erstellen.

    gcloud compute images create netscaler12-1 --source-uri=gs://tme-cpx-storage/NSVPX-GCP-12.1-50.28_nc.tar.gz --guest-os-features=MULTI_IP_SUBNET
    <!--NeedCopy-->
    

    Es kann einen Moment dauern, bis das Image erstellt wurde. Nachdem das Image erstellt wurde, wird es in der GCP-Konsole unter Compute > Compute Engine angezeigt.

Bereitstellen eines Citrix VPX (Tier-1-adc) auf GCP

  1. GCP-VPC-Instanzen: Um die Trennung von externen, internen und DMZ-Netzwerken aus Sicherheitsgründen zu adressieren. Wir müssen drei NICs erstellen, wie in der folgenden Tabelle gezeigt:

    Netzwerk Anmerkungen
    192.168.10.0/24 Verwaltungsnetzwerk (vpx-snet-mgmt)
    172.16.10.0/24 Client-Netzwerk (vpx-snet-vip)
    10.10.10.0/24 Servernetzwerk (vpx-snet-snip)

    Hinweis:

    Erstellen Sie die dreiarmigen Netzwerk-VPCs, bevor Sie VM-Instanzen bereitstellen.

    Eine VPC kann durch SDK mithilfe von gcloud APIs oder über die Google Cloud Platform Console VPC von gcloud APIerstellt werden

    Erstellen einer VPC für Verwaltungs- oder NSIP-Datenverkehr

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-mgmt --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-mgmt --network=vpx-snet-mgmt --region=us-east1 --range=192.168.10.0/24
     <!--NeedCopy-->
    

    Erstellen einer VPC für Client- oder VIP-Datenverkehr

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-vip --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-vip --network=vpx-snet-vip --region=us-east1 --range=172.16.10.0/24
     <!--NeedCopy-->
    

    Erstellen Sie eine VPC für Server- oder SNIP-Datenverkehr, wo Sie Ihren kubernetes-Cluster hosten

     gcloud compute --project=cnn-selab-atl networks create vpx-snet-snip --subnet-mode=custom
     gcloud compute --project=cnn-selab-atl networks subnets create vpx-snet-snip --network=vpx-snet-snip --region=us-east1 --range=10.10.10.0/24
     <!--NeedCopy-->
    

    VPC nach GCP-GUI-Konsole Wählen Sie in der Google-Konsole “ Netzwerk “>” VPC-Netzwerk “>” VPC-Netzwerk erstellen “und geben Sie die erforderlichen Felder ein, wie unten dargestellt. Klicken Sie dann auf Erstellen.

    GCP

    Erstellen Sie in ähnlicher Weise VPC-Netzwerke für Client- und serverseitige NICs, um drei Subnetze zu erstellen.

    Hinweis:

    Alle drei VPC-Netzwerke sollten sich in derselben Region befinden, die in diesem Szenario us-east1 ist.

    GCP

  2. Nachdem Sie drei Netzwerke und drei Subnetze unter VPC-Netzwerkerstellt haben, stellen Sie die Citrix ADC VPX-Instanz mithilfe der GDM-Vorlage bereit. Stellen Sie sicher, dass sich configuration.yml und template.py im selben Ordner oder Verzeichnis befinden. Verwenden Sie den folgenden Befehl von Google SDK, um die Instanz bereitzustellen.

     gcloud deployment-manager deployments create tier1-vpx --config configuration.yml
     <!--NeedCopy-->
    
  3. Gehen Sie nach einer erfolgreichen Bereitstellung zu Compute Engine , um den Abschnitt citrix-adc-tier1-vpx zu überprüfen und die internen IP-Adressen zu überprüfen.

GCP

Der Citrix Ingress Controller kann die statische Routenkonfiguration im Tier 1 VPX automatisieren. Konfigurieren Sie die Subnetz-IP (SNIP) -Adresse, die aus derselben Subnet/virtuellen privaten Cloud des Kubernetes-Clusters sein soll.

Hinweis:

Das bereitgestellte Tier 1 VPX/MPX wird den Lastausgleich der CPXs innerhalb des Kubernetes-Clusters durchführen. Konfigurieren Sie das SNIP im Tier 1-VPX.

Führen Sie in einer PuTTY-Sitzung auf der Ebene 1 VPX die folgenden Befehle aus, um SNIP hinzuzufügen und den Verwaltungszugriff auf SNIP zu aktivieren:

clear config -force full
add ns ip 10.10.10.20 255.255.255.0 -type snip -mgmt enabled
enable ns mode mbf
<!--NeedCopy-->

Bereitstellen eines Kubernetes-Clusters mit GKE

Man kann Kubernetes Cluster entweder über Google Cloud SDK oder über die Google Cloud Platform GUI-Konsolebereitstellen.

Gcloud API Befehl zum Erstellen von k8s Cluster

gcloud beta container --project "cnn-selab-atl" clusters create "k8s-cluster-with-cpx" --zone "us-east1-b" --username "admin" --cluster-version "1.11.7-gke.12" --machine-type "n1-standard-1" --image-type "COS" --disk-type "pd-standard" --disk-size "100" --scopes "https://www.googleapis.com/auth/devstorage.read_only","https://www.googleapis.com/auth/logging.write","https://www.googleapis.com/auth/monitoring","https://www.googleapis.com/auth/servicecontrol","https://www.googleapis.com/auth/service.management.readonly","https://www.googleapis.com/auth/trace.append" --num-nodes "3" --enable-cloud-logging --enable-cloud-monitoring --no-enable-ip-alias --network "projects/cnn-selab-atl/global/networks/vpx-snet-snip" --subnetwork "projects/cnn-selab-atl/regions/us-east1/subnetworks/vpx-snet-snip" --addons HorizontalPodAutoscaling,HttpLoadBalancing --enable-autoupgrade --enable-autorepair
<!--NeedCopy-->

Google Cloud Platform GUI-Konsolenschritte

  1. Suchen Sie in der GCP-Konsole nach einer Kubernetes Engine, und klicken Sie auf Cluster erstellen.

    GCP

  2. Erstellen Sie einen Cluster in demselben Subnetz, in dem sich Ihr VPX SNIP befindet (vpx-snet-snip). Dieser Cluster automatisiert den Konfigurations-Push in den Tier 1-ADC vom Citrix Ingress Controller im K8s-Cluster.

    GCP

    GCP

  3. Klicken Sie auf Erweiterte Optionen , um das Subnetz zu ändernvpx-snet-snip und die folgenden Felder auszuwählen.

    GCP

  4. Um über das Cloud-SDK auf diesen Cluster zuzugreifen, klicken Sie auf die Schaltfläche Kubernetes Mit dem Cluster verbinden , und fügen Sie den Befehl in das Cloud-SDK ein.

    GCP

  5. Überprüfen Sie die Bereitstellung des GKE Clusters, indem Sie den folgenden Befehl ausführen:

kubectl get nodes
<!--NeedCopy-->

GCP


Bereitstellen einer Beispielanwendung mithilfe der YAML-Beispieldateibibliothek

Citrix ADC bietet die zweistufige Architekturbereitstellungslösung für den Lastausgleich der Unternehmensanwendungen, die in Microservices bereitgestellt werden und über das Internet zugegriffen werden. Tier 1 verfügt über schwere Lastausgleichsdienste wie VPX/SDX/MPX, um den Nord-Süd-Verkehr auszugleichen. Tier 2 verfügt über eine CPX-Bereitstellung für die Verwaltung von Microservices und Lastausgleich von Ost-West-Verkehr.

  1. Wenn Sie Ihren Cluster in GKE ausführen, stellen Sie sicher, dass Sie Cluster-Rollenbindung verwendet haben, um einen Cluster-Administrator zu konfigurieren. Sie können dies mit dem folgenden Befehl tun.

     kubectl create clusterrolebinding citrix-cluster-admin --clusterrole=cluster-admin --user=<email-id of your google account>.
     <!--NeedCopy-->
    
  2. Greifen Sie auf das aktuelle Verzeichnis zu, in dem Sie die Deployment-YAML-Dateien haben. Führen Sie den folgenden Befehl aus, um den Knotenstatus abzurufen.

     kubectl get nodes
     <!--NeedCopy-->
    

    GCP

  3. Erstellen Sie die Namespaces:

     kubectl create -f namespace.yaml
     <!--NeedCopy-->
    

    Überprüfen Sie den Namespace-Befehl:

     kubectl get namespaces
     <!--NeedCopy-->
    

    GCP

  4. Stellen Sie rbac.yaml im Standardnamespace bereit.

     kubectl create -f rbac.yaml
     <!--NeedCopy-->
    
  5. Stellen Sie den CPX für Hotdrink-, Colddrink- und Guestbook-Mikroservices mit den folgenden Befehlen bereit.

     kubectl create -f cpx.yaml -n tier-2-adc
     kubectl create -f hotdrink-secret.yaml -n tier-2-adc
     <!--NeedCopy-->
    
  6. Stellen Sie die drei Hotdrink-Mikroservices bereit — den Microservice vom Typ SSL mit der Hair-Pin-Architektur.

     kubectl create -f team_hotdrink.yaml -n team-hotdrink
     kubectl create -f hotdrink-secret.yaml -n team-hotdrink
     <!--NeedCopy-->
    
  7. Stellen Sie den Microservice für Colddrink bereit — den Microservice vom Typ SSL_TCP.

     kubectl create -f team_colddrink.yaml -n team-colddrink
     kubectl create -f colddrink-secret.yaml -n team-colddrink
     <!--NeedCopy-->
    
  8. Stellen Sie Guestbook bereit — einen NoSQL-Microservice.

     kubectl create -f team_guestbook.yaml -n team-guestbook
     <!--NeedCopy-->
    
  9. Validieren Sie den CPX, der für die oben genannten drei Anwendungen bereitgestellt wurde. Holen Sie sich zuerst die CPX-Pods, die als Tier-2-adc bereitgestellt werden, und erhalten Sie dann den CLI-Zugriff auf CPX.

    ``` Um CPX-Pods im Tier-2-adc-Namespace zu erhalten, geben Sie Folgendes ein: kubectl get pods -n Tier-2-adc

    Um CLI-Zugriff (bash) auf den CPX-Pod (hotdrinks-cpx-Pod) zu erhalten, geben Sie Folgendes ein:kubectl exec -it "copy and paste hotdrink CPX pod name from the above step" bash -n tier-2-adc.

    Zum Beispiel:

    kubectl exec -it cpx-ingress-hotdrinks-768b674f76-pcnw4 bash -n tier-2-adc

    Um zu überprüfen, ob der CS vserver in der hotdrink-cpx ausgeführt wird, geben Sie nach dem Root-Zugriff auf CPX den folgenden Befehl ein:cli-script"sh csvs".

    Zum Beispiel:

    root@cpx-ingress-hotdrinks-768b674f76-pcnw4:/# cli_script.sh "sh csvs"

  10. Stellen Sie den VPX-Ingress- und Ingress-Controller für den Tier 2-Namespace bereit, der VPX automatisch konfiguriert. Citrix Ingress Controller (CIC) automatisiert das Tier-1-adc (VPX).

     kubectl create -f ingress_vpx.yaml -n tier-2-adc
     kubectl create -f cic_vpx.yaml -n tier-2-adc
     <!--NeedCopy-->
    
  11. Fügen Sie die DNS-Einträge in den Hostdateien Ihres lokalen Computers hinzu, um über das Internet auf Microservices zuzugreifen.

    Für Windows-Clients gehen Sie zu: C:\Windows\System32\drivers\etc\hosts

    Geben Sie für macOS-Clients im Terminal Folgendes ein: sudo nano /etc/hosts `

    Fügen Sie die folgenden Einträge in der Hostdatei hinzu und speichern Sie die Datei.

     hotdrink.beverages.com   xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     colddrink.beverages.com  xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     guestbook.beverages.com  xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     grafana.beverages.com    xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     prometheus.beverages.com xxx.xxx.xxx.xxx (static-external-traffic-ip-tier1-vpx)
     <!--NeedCopy-->
    
  12. Jetzt können Sie über das Internet auf jede Anwendung zugreifen. Beispiel: https://hotdrink.beverages.com.

    GCP


Aktivieren der Rewrite- und Responder-Richtlinien für die Beispielanwendung

Jetzt ist es an der Zeit, die Richtlinien Rewrite und Responder auf VPX durch die benutzerdefinierte Ressourcendefinition (CRD) zu verschieben.

  1. Stellen Sie die CRD bereit, um die Richtlinien Rewrite und Responder in Tier-1-adc im Standardnamespace zu übertragen.
   kubectl create -f crd_rewrite_responder.yaml
   <!--NeedCopy-->
  1. Blacklist-URLs Konfigurieren Sie die Responderrichtlinie aufhotdrink.beverages.com , um den Zugriff auf die Kaffeeseite zu blockieren.
   kubectl create -f responderpolicy_hotdrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Nachdem Sie die Responder-Richtlinie bereitgestellt haben, greifen Sie auf die Kaffeeseite auf zuhotdrink.beverages.com. Dann erhalten Sie die folgende Meldung.

GCP

  1. Kopfzeileneinfügung Konfigurieren Sie die Richtlinie Umschreiben aufcolddrink.beverages.com , um die Sitzungs-ID in den Header einzufügen.
   kubectl create -f rewritepolicy_colddrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Nachdem Sie die Richtlinie Rewrite bereitgestellt haben, greifen Siecolddrink.beverages.com mit aktiviertem Entwicklermodus im Browser zu. Drücken Sie in Chrome F12, und behalten Sie die Netzwerkkategorie für die Anmeldung bei, um die Sitzungs-ID anzuzeigen, die von der Richtlinie Rewrite auf Tier-1-adc (VPX) eingefügt wird.

GCP


Open-Source-Werkzeugsätze

  1. Stellen Sie die Cloud Native Computing Foundation (CNCF) -Überwachungstools wie Prometheus und Grafana bereit, um ADC-Proxystatistiken zu erfassen.

     kubectl create -f monitoring.yaml -n monitoring
     kubectl create -f ingress_vpx_monitoring.yaml -n monitoring
     <!--NeedCopy-->
    

Prometheus-Protokollaggregator

  1. Melden Sie sich anhttp://grafana.beverages.com und schließen Sie die folgende einmalige Einrichtung ab.

    1. Melden Sie sich mit Administratoranmeldeinformationen beim Portal an.
    2. Klicken Sie auf Datenquelle hinzufügen , und wählen Sie die Prometheus- Datenquelle aus.
    3. Konfigurieren Sie die folgenden Einstellungen und klicken Sie auf die Schaltfläche Speichern und testen .

    GCP

Grafana visuelles Dashboard

  1. Wählen Sie im linken Bereich die Option Importieren aus, und laden Sie die imgrafana_config.json Ordner bereitgestellteyamlFiles Datei hoch. Jetzt können Sie das Grafana Dashboard mit grundlegenden ADC-Statistiken sehen.

GCP


Löschen einer Bereitstellung

  1. Um die Citrix VPX-Bereitstellung (Tier-1-adc) zu löschen, wechseln Sie zur Google SDK CLI-Konsole, um die Instanz zu löschen:

    gcloud deployment-manager deployments delete tier1-vpx
    <!--NeedCopy-->
    
  2. Um den GKE Kubernetes-Cluster zu löschen, wechseln Sie zur GCP-Konsole, wählen Sie kubernetes-Cluster aus, und klicken Sie auf Löschen , um den Cluster zu löschen.

    GCP