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

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

Die fünf wichtigsten Citrix-Komponenten von GCP

  1. Citrix ADC VPX als Tier-1-ADC für eingangsbasierten Internetclient-Datenverkehr.

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

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

    Kubernetes Engine ist eine verwaltete, produktionsbereite Umgebung für die Bereitstellung containerisierter Anwendungen. Es ermöglicht eine schnelle Bereitstellung und Verwaltung Ihrer Anwendungen und Dienste.

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

    Citrix hat ein Beispiel für eine Microservice-Webanwendung bereitgestellt, um die zweistufige Anwendungstopologie auf der GCP zu testen. Wir haben auch die folgenden Komponenten in die Beispieldateien für den Proof of Concept aufgenommen:

    • Beispiel für einen Hotdrink Web Service in einer Kubernetes-YAML-Datei
    • Beispiel für einen Colddrink Web Service in einer Kubernetes-YAML-Datei
    • Beispiel eines Gästebuch-Webdienstes in einer Kubernetes-YAML-Datei
    • Beispiel für einen Grafana Charting Service in einer Kubernetes-YAML-Datei
    • Beispiel für den Prometheus-Protokollierungsdienst in der YAML-Datei von Ku

    GCP

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

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

    GCP

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

    • Rewrite-Richtlinien und -Aktionen
    • Responder-Richtlinien und -Aktionen
    • Content Switching-URL-Regeln
    • Hinzufügen/Entfernen von CPX Load Balancing Services

    Die Citrix Ingress Controller-YAML-Datei für GCP ist 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 der Tier 2-CPX innerhalb des Kubernetes-Clusters ausgleichen. Dies ist ein generisches Bereitstellungsmodell, das unabhängig von der Plattform weitgehend verfolgt wird, unabhängig davon, ob es sich um Google Cloud, Amazon Web Services, Azure oder eine on-premises Bereitstellung handelt.

Automatisierung des Tier 1 VPX/MPX

Das Tier 1 VPX/MPX gleicht automatisch den Lastausgleich der Tier-2-CPXs aus. Citrix Ingress Controller vervollständigt die Automatisierungskonfigurationen, indem er als Pod im Kubernetes-Cluster ausgeführt wird. Es konfiguriert eine separate Ingress-Klasse für die Tier 1 VPX/MPX, sodass sich die Konfiguration nicht mit anderen Eingangsressourcen überschneidet.

GCP


Übersicht über die Citrix Bereitstellung

Installieren und konfigurieren Sie den Citrix ADC der Stufe 1 auf der GCP

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

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

Voraussetzungen (erforderlich):

  1. Erstellen eines GCP-Kontos nur mit Ihrer Citrix Mail-ID http://console.cloud.google.com

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

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

  4. Authentifizieren Sie sich mit gcloud API gcloud auth login beiIhrem Google-Konto.

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

  6. Führen Sie den folgenden Befehl für das Hilfsprogramm gcloud 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 einer Citrix VPX (Tier-1-adc) auf der GCP

  1. GCP-VPC-Instanzen: Zur Behebung der Trennung von externen, internen und DMZ-Netzwerken aus Sicherheitsgründen. 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 vom SDK mithilfe von gcloud-APIs oder über die Google Cloud Platform Console erstellt werden.

    VPC von gcloud API

    VPC für Management- oder NSIP-Datenverkehr erstellen

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

    VPC für Client- oder VIP-Verkehr erstellen

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

    VPC für Server- oder SNIP-Datenverkehr erstellen, 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 von GCP GUI Console

    Wählen Sie in der Google-Konsole Netzwerk > VPC-Netzwerk > VPC-Netzwerk erstellen aus und geben Sie die erforderlichen Felder ein, wie unten gezeigt. Klicken Sie anschließend auf Erstellen.

    GCP

    Erstellen Sie auf ähnliche 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 sowohl configuration.yml als auch template.py im selben Ordner oder Verzeichnis befinden. Verwenden Sie den folgenden Befehl aus dem 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 IPs zu validieren.

GCP

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

Hinweis:

Das bereitgestellte Tier-1-VPX/MPX sorgt für einen Lastausgleich der CPXs innerhalb des Kubernetes-Clusters. Konfigurieren Sie das SNIP im Tier 1 VPX.

Führen Sie in einer PuTTY-Sitzung auf der Tier 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 das Google Cloud SDK oder über die Google Cloud Platform GUI-Konsolebereitstellen.

Gcloud API Befehl zum Erstellen eines K8s-Clusters

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

Schritte zur Google Cloud Platform GUI-Konsole

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

    GCP

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

    GCP

    GCP

  3. Klicken Sie auf Erweiterte Optionen, um das Subnetz zu vpx-snet-snip ändern, und wählen Sie die folgenden Felder aus.

    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 GKE-Cluster-Bereitstellung, 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 in Microservices bereitgestellten Anwendungen der Enterprise-Klasse, auf die über das Internet zugegriffen wird. Tier 1 verfügt über umfangreiche Load Balancer 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 den Lastausgleich des Ost-West-Verkehrs

  1. Wenn Sie Ihren Cluster in GKE ausführen, stellen Sie sicher, dass Sie die Clusterrollenbindung verwendet haben, um einen Cluster-Administrator zu konfigurieren. Sie können das 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 YAML-Bereitstellungsdateien 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 die Datei rbac.yaml im Standard-Namespace bereit.

     kubectl create -f rbac.yaml
     <!--NeedCopy-->
    
  5. Stellen Sie die CPX für Hotdrink-, Colddrink- und Gästebuch-Microservices 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 Mikroservices für drei Heißgetränke bereit - den SSL-Microservice 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 kalte Getränke 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 das Gästebuch bereit — einen NoSQL-Microservice.

     kubectl create -f team_guestbook.yaml -n team-guestbook
     <!--NeedCopy-->
    
  9. Validieren Sie die für die drei oben genannten Anwendungen bereitgestellte CPX. Besorgen 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 läuft, 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 im Tier-2-Namespace bereit, der VPX automatisch konfiguriert. Citrix Ingress Controller (CIC) automatisiert 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.

    Gehen Sie für Windows-Clients zu: C:\Windows\System32\drivers\etc\hosts

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

    Fügen Sie die folgenden Einträge in die Host-Datei ein 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 Rewrite- und Responder-Richtlinien auf VPX durch die benutzerdefinierte Ressourcendefinition (CRD) zu übertragen.

  1. Stellen Sie die CRD bereit, um die Rewrite- und Responder-Richtlinien im Standard-Namespace auf Tier-1-adc zu übertragen.
   kubectl create -f crd_rewrite_responder.yaml
   <!--NeedCopy-->
  1. Sperrlisten-URLs Konfigurieren Sie die Responder-Richtlinie für hotdrink.beverages.com, um den Zugriff auf die Kaffeeseite zu blockieren.
   kubectl create -f responderpolicy_hotdrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Nachdem Sie die Responderrichtlinie bereitgestellt haben, greifen Sie auf die Kaffeeseite auf zu hotdrink.beverages.com. Dann erhalten Sie die folgende Meldung.

GCP

  1. Header-Einfügen Konfigurieren Sie die Rewrite-Richtlinie auf colddrink.beverages.com, um die Sitzungs-ID in die Kopfzeile einzufügen.
   kubectl create -f rewritepolicy_colddrink.yaml -n tier-2-adc
   <!--NeedCopy-->

Nachdem Sie die Rewrite-Richtlinie bereitgestellt haben, greifen Sie auf colddrink.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 Rewrite-Richtlinie auf Tier-1-adc (VPX) eingefügt wird.

GCP


Open Source Werkzeugsets

  1. Stellen Sie Überwachungstools der Cloud Native Computing Foundation (CNCF) wie Prometheus und Grafana bereit, um ADC-Proxy-Statistiken zu sammeln.

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

Prometheus-Protokollaggregator

  1. Melden Sie sich bei http://grafana.beverages.com an und führen Sie die folgende einmalige Einrichtung durch.

    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 und laden Sie die im Ordner yamlFiles bereitgestellte Datei grafana_config.json hoch. Jetzt können Sie das Grafana-Dashboard mit den grundlegenden ADC-Statistiken sehen.

GCP


Eine Bereitstellung löschen

  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, gehen Sie zur GCP-Konsole, wählen Sie Kubernetes-Cluster aus und klicken Sie auf Löschen, um den Cluster zu löschen.

    GCP