Citrix ADC Ingress Controller

Stellen Sie den Citrix Ingress Controller in Anthos bereit

Anthos ist eine Hybrid- und Multi-Cloud-Plattform, mit der Sie Ihre Anwendungen auf vorhandener On-Prem-Hardware oder in der Public Cloud ausführen können. Es bietet eine konsistente Entwicklungs- und Betriebserfahrung für Cloud- und On-Premises-Umgebungen.

Der Citrix Ingress Controller kann in Anthos GKE on-premises mit den folgenden Bereitstellungsmodi bereitgestellt werden:

  • Bereitstellung von Citrix ADC CPX mit dem Sidecar-Ingress-Controller als Dienst des Typs LoadBalancer.
  • Zweistufige Ingress-Bereitstellung

Bereitstellung von Citrix ADC CPX als Dienst des Typs LoadBalancer in Anthos GKE vor Ort

In dieser Bereitstellung wird Citrix ADC VPX oder MPX außerhalb des Clusters auf Tier-1 und Citrix ADC CPX auf Tier-2 innerhalb des Anthos-Clusters bereitgestellt, ähnlich einer Dual-Tier-Bereitstellung. Anstatt Ingress zu verwenden, wird der Citrix ADC CPX jedoch mithilfe des Kubernetes-Dienstes des Typs verfügbar gemacht LoadBalancer. Der Citrix Ingress Controller automatisiert die Konfiguration der im LoadBalancerIP Bereich der Dienstspezifikation angegebenen IP-Adresse.

Voraussetzungen

  • Sie müssen einen Tier-1-Citrix ADC VPX oder MPX im selben Subnetz wie den lokalen Anthos GKE-Benutzercluster bereitstellen.

  • Sie müssen eine Subnetz-IP-Adresse (SNIP) auf dem Tier-1-Citrix ADC konfigurieren, und die lokalen Clusterknoten von Anthos GKE sollten über die IP-Adresse erreichbar sein.

  • Um einen Citrix ADC VPX oder MPX aus einem anderen Netzwerk zu verwenden, verwenden Sie Citrix Node Controller, um die Kommunikation zwischen dem Citrix ADC und dem Anthos GKE On-Prem-Cluster zu ermöglichen.

  • Sie müssen eine virtuelle IP-Adresse (VIP) beiseite legen, die als Load Balancer-IP-Adresse verwendet werden kann.

Bereitstellen von Citrix ADC CPX als Dienst des Typs LoadBalancer in Anthos GKE on-premises

Führen Sie die folgenden Schritte aus, um Citrix ADC CPX als Dienst des Typs LoadBalancer in Anthos GKE on-premises bereitzustellen.

  1. Stellen Sie die erforderliche Anwendung in Ihrem Kubernetes-Cluster bereit und stellen Sie sie mit dem folgenden Befehl als Dienst in Ihrem Cluster bereit.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/apache.yaml
    

    Hinweis:

    In diesem Beispiel wird apache.yaml verwendet. Sie sollten die spezifische YAML-Datei für Ihre Anwendung verwenden.

  2. Stellen Sie Citrix ADC CPX mit dem Citrix Ingress Controller des Sidecar-Geräts als Tier-2-Ingress-Gerät mithilfe der Datei cpx-cic.yaml bereit.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/cpx-cic.yaml
    
  3. (Optional) Erstellen Sie ein selbstsigniertes SSL-Zertifikat und einen Schlüssel, der mit der Ingress for TLS-Konfiguration verwendet werden soll.

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    Hinweis:

    Wenn Sie bereits über ein SSL-Zertifikat verfügen, können Sie mit demselben ein Kubernetes-Geheimnis erstellen. Dies ist nur ein Beispielbefehl zum Erstellen eines selbstsignierten Zertifikats, und dieser Befehl setzt auch voraus, dass der Hostname der Anwendung lautet anthos-citrix-ingress.com.

  4. Erstellen Sie ein Kubernetes-Secret mit dem erstellten SSL-Zertifikatsschlüsselpaar.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  5. Erstellen Sie mithilfe der Tier-2-ingress.yaml-Datei eine Ingress-Ressource für Tier-2 .

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/service-type-lb/tier-2-ingress.yaml
    
  6. Erstellen Sie ein Kubernetes-Geheimnis für den Tier-1-Citrix ADC.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  7. Stellen Sie den Citrix Ingress Controller als Tier-1-Ingress-Controller bereit.

    1. Laden Sie die cic.yaml-Datei herunter.

    2. Geben Sie die Management-IP-Adresse von Citrix ADC ein. Aktualisieren Sie die Verwaltungs-IP-Adresse des Tier-1-Citrix ADC in dem in der Datei cic.yaml angegebenen Platzhalter Tier-1-Citrix-ADC-IP.

    3. Speichern Sie und stellen Sie cic.yaml mit dem folgenden Befehl bereit.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  8. Stellen Sie Citrix ADC CPX als Kubernetes-Dienst des Typs zur Verfügung LoadBalancer.

    1. Laden Sie die Datei cpx-service-type-lb.yaml herunter.

    2. Bearbeiten Sie die YAML-Datei und geben Sie den Wert von VIP-for-accessing-microservices als VIP-Adresse an, die für den Zugriff auf die Anwendungen innerhalb des Clusters verwendet werden soll. Diese VIP-Adresse ist diejenige, die für die Verwendung als Load Balancer-IP-Adresse reserviert wurde.

    3. Speichern Sie und stellen Sie die Datei cpx-service-type-lb.yaml mit dem folgenden Befehl bereit.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cpx-service-type-lb.yaml
      
  9. Aktualisieren Sie die DNS-Datensätze mit der IP-Adresse von VIP-for-accessing-microservices für den Zugriff auf den Microservice. In diesem Beispiel benötigen Sie für den Zugriff auf den Apache-Microservice den folgenden DNS-Eintrag.

    `<VIP-for-accessing-microservices> anthos-citrix-ingress.com`
    
  10. Verwenden Sie den folgenden Befehl, um auf die Anwendung zuzugreifen.

           curl -k --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> https://anthos-citrix-ingress.com/ <html><body><h1>It works!</h1></body></html>
    

    Hinweis:

    In diesem Befehl --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> wird verwendet, um den DNS-Konfigurationsteil in Schritt 9 zu Demonstrationszwecken zu überschreiben.

Bereinigen Sie die Installation: Stellen Sie Citrix ADC CPX als Dienst des Typs zur Verfügung LoadBalancer

Um die Installation zu bereinigen, verwenden Sie den Befehl kubectl --kubeconfig delete, um jede Bereitstellung zu löschen.

Verwenden Sie den folgenden Befehl, um die Citrix ADC CPX-Dienstbereitstellung (CPX+CIC-Dienst) zu löschen:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service-type-lb.yaml

Verwenden Sie den folgenden Befehl, um das Tier-2-Ingress-Objekt zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml

Verwenden Sie den folgenden Befehl, um die Citrix ADC CPX-Bereitstellung zusammen mit dem Citrix Ingress Controller mit Sidecar zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

Verwenden Sie den folgenden Befehl, um den eigenständigen Citrix Ingress Controller zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Verwenden Sie den folgenden Befehl, um den Apache-Microservice zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Verwenden Sie den folgenden Befehl, um das Kubernetes-Geheimnis zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

Um das nslogin-Geheimnis zu löschen, verwenden Sie den folgenden Befehl.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin

Zweistufige Ingress-Bereitstellung

In einer Dual-Tier-Ingress-Bereitstellung wird Citrix ADC VPX oder MPX außerhalb des Kubernetes-Clusters (Tier-1) bereitgestellt, und Citrix ADC CPXs werden innerhalb des Kubernetes-Clusters (Tier-2) bereitgestellt.

Citrix ADC MPX- oder VPX-Geräte in Tier-1 leiten den Datenverkehr (Nord-Süd) vom Client zu Citrix ADC CPXs in Tier-2 weiter. Der Tier-2-Citrix ADC CPX leitet den Datenverkehr dann an die Microservices im Kubernetes-Cluster weiter. Der Citrix Ingress Controller, der als eigenständiger Pod bereitgestellt wird, konfiguriert den Tier-1-Citrix ADC. Der Citrix Ingress Controller mit Sidecar in einem oder mehreren Citrix ADC CPX-Pods konfiguriert den zugehörigen Citrix ADC CPX im selben Pod.

Voraussetzungen

  • Sie müssen einen Tier-1-Citrix ADC VPX oder MPX im selben Subnetz wie den lokalen Anthos GKE-Benutzercluster bereitstellen.

  • Sie müssen eine Subnetz-IP-Adresse (SNIP) auf dem Tier-1-Citrix ADC konfigurieren, und die lokalen Clusterknoten von Anthos GKE sollten über die IP-Adresse erreichbar sein.

  • Um einen Citrix ADC VPX oder MPX aus einem anderen Netzwerk zu verwenden, verwenden Sie den Citrix Node Controller, um die Kommunikation zwischen dem Citrix ADC und dem Anthos GKE On-Prem-Cluster zu ermöglichen.

  • Sie müssen eine virtuelle IP-Adresse beiseite legen, die als Front-End-IP-Adresse im Tier-1-Ingress-Manifest verwendet werden soll.

Zweistufige Ingress-Bereitstellung in Anthos GKE vor Ort

Führen Sie die folgenden Schritte aus, um eine Dual-Tier-Ingress-Bereitstellung von Citrix ADC in Anthos GKE vor Ort bereitzustellen.

  1. Stellen Sie die erforderliche Anwendung in Ihrem Kubernetes-Cluster bereit und stellen Sie sie mit dem folgenden Befehl als Dienst in Ihrem Cluster bereit.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/apache.yaml
    

    Hinweis:

    In diesem Beispiel wird apache.yaml verwendet. Sie sollten die spezifische YAML-Datei für Ihre Anwendung verwenden.

  2. Stellen Sie Citrix ADC CPX mit dem Citrix Ingress Controller als Tier-2-Ingress mithilfe der Datei cpx-cic.yaml bereit.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-cic.yaml
    
  3. Stellen Sie Citrix ADC CPX mithilfe der cpx-service.yaml Datei als Kubernetes-Dienst zur Verfügung.

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/cpx-service.yaml
    
  4. (Optional) Erstellen Sie ein selbstsigniertes SSL-Zertifikat und einen Schlüssel, der mit der Ingress for TLS-Konfiguration verwendet werden soll.

    Hinweis:

    Wenn Sie bereits über ein SSL-Zertifikat verfügen, können Sie mit demselben ein Kubernetes-Geheimnis erstellen.

    openssl req -subj '/CN=anthos-citrix-ingress.com/O=Citrix Systems Inc/C=IN' -new -newkey rsa:2048 -days 5794 -nodes -x509 -keyout $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.crt;openssl rsa -in $PWD/anthos-citrix-certificate.key -out $PWD/anthos-citrix-certificate.key
    

    Hinweis:

    Dies ist nur ein Beispielbefehl zum Erstellen eines selbstsignierten Zertifikats und dieser Befehl setzt auch voraus, dass der Hostname der Anwendung sein soll anthos-citrix-ingress.com.

  5. Erstellen Sie ein Kubernetes-Secret mit dem erstellten SSL-Zertifikatsschlüsselpaar.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  6. Erstellen Sie mithilfe der Tier-2-ingress.yaml-Datei eine Ingress-Ressource für Tier-2 .

    kubectl --kubeconfig user-cluster-1-kubeconfig create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/anthos/manifest/dual-tiered-ingress/tier-2-ingress.yaml
    
  7. Erstellen Sie ein Kubernetes-Geheimnis für den Tier-1-Citrix ADC.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  8. Stellen Sie den Citrix Ingress Controller als Tier-1-Ingress-Controller bereit.

    1. Laden Sie die cic.yaml-Datei herunter.

    2. Geben Sie die Management-IP-Adresse von Citrix ADC ein. Aktualisieren Sie die Verwaltungs-IP-Adresse des Tier-1-Citrix ADC in dem in der Datei cic.yaml angegebenen Platzhalter Tier-1-Citrix-ADC-IP.

    3. Speichern Sie und stellen Sie cic.yaml mit dem folgenden Befehl bereit.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  9. Erstellen Sie mithilfe der Tier-1-ingress.yaml-Datei eine Ingress-Ressource für Tier-1 .

    1. Laden Sie die Tier-1-ingress.yaml-Datei herunter.

    2. Bearbeiten Sie die YAML-Datei und VIP-Citrix-ADC ersetzen Sie sie durch die VIP-Adresse, die beiseite gelegt wurde.

    3. Speichern Sie und stellen Sie die Datei tier-1-ingress.yaml mit dem folgenden Befehl bereit.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f tier-1-ingress.yaml
      
  10. Aktualisieren Sie die DNS-Datensätze mit der IP-Adresse von VIP-Citrix-ADCfür den Zugriff auf den Microservice. In diesem Beispiel benötigen Sie für den Zugriff auf den Apache-Microservice den folgenden DNS-Eintrag.

           <VIP-Citrix-ADC> anthos-citrix-ingress.com
    
  11. Verwenden Sie den folgenden Befehl, um auf die Anwendung zuzugreifen.

       curl -k --resolve anthos-citrix-ingress.com:443:<VIP-Citrix-ADC>   https://anthos-citrix-ingress.com/
       <html><body><h1>It works!</h1></body></html>
    

    Hinweis:

    In diesem Befehl --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> wird verwendet, um den DNS-Konfigurationsteil zu überschreiben.

Bereinigen Sie die Installation: Zweistufiges Ingress

Um die Installation zu bereinigen, verwenden Sie den Befehl kubectl --kubeconfig delete, um jede Bereitstellung zu löschen.

Verwenden Sie den folgenden Befehl, um das Tier-1-Ingress-Objekt zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-1-ingress.yaml

Verwenden Sie den folgenden Befehl, um das Tier-2-Ingress-Objekt zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f tier-2-ingress.yaml`

Verwenden Sie den folgenden Befehl, um die Citrix ADC CPX-Bereitstellung zusammen mit dem Citrix Ingress Controller mit Sidecar zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-cic.yaml

Verwenden Sie den folgenden Befehl, um die Citrix ADC CPX-Dienstbereitstellung zu löschen:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cpx-service.yaml

Verwenden Sie den folgenden Befehl, um den eigenständigen Citrix Ingress Controller zu löschen:

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f cic.yaml

Verwenden Sie den folgenden Befehl, um den Apache-Microservice zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete -f apache.yaml

Verwenden Sie den folgenden Befehl, um das Kubernetes-Geheimnis zu löschen.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret anthos-citrix

Um das nslogin-Geheimnis zu löschen, verwenden Sie den folgenden Befehl.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin`
Stellen Sie den Citrix Ingress Controller in Anthos bereit