Contrôleur d'entrée Citrix ADC

Déployer le Citrix ingress controller dans Anthos

Anthos est une plateforme hybride et multicloud qui vous permet d’exécuter vos applications sur du matériel existant sur site ou dans le cloud public. Il fournit une expérience de développement et d’exploitation cohérente pour les environnements cloud et sur site.

Le Citrix ingress controller peut être déployé dans Anthos GKE sur site en utilisant les modes de déploiement suivants :

  • Exposition de Citrix ADC CPX avec le contrôleur d’entrée sidecar en tant que service de type LoadBalancer.
  • Déploiement Ingress à deux niveaux

Exposer Citrix ADC CPX en tant que service de type LoadBalancer dans Anthos GKE on-prem

Dans ce déploiement, Citrix ADC VPX ou MPX est déployé en dehors du cluster au niveau 1 et Citrix ADC CPX au niveau 2 à l’intérieur du cluster Anthos, de la même manière qu’un déploiement à deux niveaux. Toutefois, au lieu d’utiliser Ingress, Citrix ADC CPX est exposé à l’aide du service Kubernetes de type LoadBalancer. Le Citrix ingress controller automatise le processus de configuration de l’adresse IP fournie dans le champ LoadBalancerIP de la spécification de service.

Conditions préalables

  • Vous devez déployer un VPX ou un MPX Citrix ADC de niveau 1 dans le même sous-réseau que le cluster d’utilisateurs sur site Anthos GKE.

  • Vous devez configurer une adresse IP de sous-réseau (SNIP) sur le Citrix ADC de niveau 1 et les nœuds de cluster sur site Anthos GKE doivent être accessibles à l’aide de l’adresse IP.

  • Pour utiliser un VPX ou un MPX Citrix ADC d’un autre réseau, utilisez Citrix Node Controller pour activer la communication entre Citrix ADC et le cluster sur site Anthos GKE.

  • Vous devez mettre de côté une adresse IP virtuelle (VIP) à utiliser comme adresse IP d’équilibrage de charge.

Déployer Citrix ADC CPX en tant que service de type LoadBalancer dans Anthos GKE sur site

Effectuez les étapes suivantes pour déployer Citrix ADC CPX en tant que service de type LoadBalancer dans Anthos GKE sur site.

  1. Déployez l’application requise dans votre cluster Kubernetes et exposez-la en tant que service dans votre cluster à l’aide de la commande suivante.

    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
    

    Remarque :

    Dans cet exemple, apache.yaml est utilisé. Vous devez utiliser le fichier YAML spécifique à votre application.

  2. Déployez Citrix ADC CPX avec le Citrix ingress controller annexe en tant que périphérique d’entrée de niveau 2 à l’aide du fichier cpx-cic.yaml .

    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. (Facultatif) Créez un certificat SSL auto-signé et une clé à utiliser avec la configuration Ingress for TLS.

    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
    

    Remarque :

    Si vous possédez déjà un certificat SSL, vous pouvez créer un secret Kubernetes à l’aide de celui-ci. Il s’agit simplement d’un exemple de commande pour créer un certificat auto-signé et cette commande suppose également que le nom d’hôte de l’application est anthos-citrix-ingress.com.

  4. Créez un secret Kubernetes avec la paire de clés de certificat SSL créée.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  5. Créez une ressource Ingress pour le niveau 2 à l’aide du fichier tier-2-ingress.yaml .

    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. Créez un secret Kubernetes pour Citrix ADC de niveau 1.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  7. Déployez le Citrix ingress controller en tant que contrôleur d’entrée de niveau 1.

    1. Téléchargez le fichier cic.yaml .

    2. Entrez l’adresse IP de gestion de Citrix ADC. Mettez à jour l’adresse IP de gestion de Citrix ADC de niveau 1 dans l’espace réservé Tier-1-Citrix-ADC-IP spécifié dans le fichier cic.yaml.

    3. Enregistrez et déployez cic.yaml à l’aide de la commande suivante.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  8. Exposez Citrix ADC CPX en tant que service Kubernetes de type LoadBalancer.

    1. Téléchargez le fichier cpx-service-type-lb.yaml .

    2. Modifiez le fichier YAML et spécifiez la valeur de VIP-for-accessing-microservices en tant qu’adresse VIP qui doit être utilisée pour accéder aux applications au sein du cluster. Cette adresse VIP est celle réservée pour être utilisée comme adresse IP d’équilibrage de charge.

    3. Enregistrez et déployez le fichier cpx-service-type-lb.yaml à l’aide de la commande suivante.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cpx-service-type-lb.yaml
      
  9. Mettez à jour les enregistrements DNS avec l’adresse IP de VIP-for-accessing-microservices pour accéder au microservice. Dans cet exemple, pour accéder au microservice Apache, vous devez disposer de l’entrée DNS suivante.

    `<VIP-for-accessing-microservices> anthos-citrix-ingress.com`
    
  10. Utilisez la commande suivante pour accéder à l’application.

           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>
    

    Remarque :

    Dans cette commande, --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> est utilisé pour remplacer la partie de configuration DNS à l’étape 9 à des fins de démonstration.

Nettoyer l’installation : Exposer Citrix ADC CPX en tant que service de type LoadBalancer

Pour nettoyer l’installation, utilisez la commande kubectl --kubeconfig delete pour supprimer chaque déploiement.

Pour supprimer le déploiement du service Citrix ADC CPX (service CPX+CIC), utilisez la commande suivante :

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

Pour supprimer l’objet Ingress de niveau 2, utilisez la commande suivante.

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

Pour supprimer le déploiement Citrix ADC CPX ainsi que le Citrix ingress controller annexe, utilisez la commande suivante.

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

Pour supprimer le Citrix ingress controller autonome, utilisez la commande suivante.

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

Pour supprimer le microservice Apache, utilisez la commande suivante.

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

Pour supprimer le secret Kubernetes, utilisez la commande suivante.

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

Pour supprimer le secret nslogin, utilisez la commande suivante.

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

Déploiement Ingress à deux niveaux

Dans un déploiement Ingress à deux niveaux, Citrix ADC VPX ou MPX est déployé en dehors du cluster Kubernetes (niveau 1) et les Citrix ADC CPX sont déployés à l’intérieur du cluster Kubernetes (niveau 2).

Les appareils Citrix ADC MPX ou VPX de niveau 1 proxy le trafic (nord-sud) du client vers les Citrix ADC CPX de niveau 2. Le Citrix ADC CPX de niveau 2 achemine ensuite le trafic vers les microservices du cluster Kubernetes. Le Citrix ingress controller déployé en tant qu’espace autonome configure le Citrix ADC de niveau 1. Le Citrix ingress controller annexe dans un ou plusieurs espaces Citrix ADC CPX configure le Citrix ADC CPX associé dans le même espace.

Conditions préalables

  • Vous devez déployer un VPX ou un MPX Citrix ADC de niveau 1 dans le même sous-réseau que le cluster d’utilisateurs sur site Anthos GKE.

  • Vous devez configurer une adresse IP de sous-réseau (SNIP) sur le Citrix ADC de niveau 1 et les nœuds de cluster sur site Anthos GKE doivent être accessibles à l’aide de l’adresse IP.

  • Pour utiliser un VPX ou un MPX Citrix ADC d’un autre réseau, utilisez le Citrix Node Controller pour activer la communication entre Citrix ADC et le cluster sur site Anthos GKE.

  • Vous devez mettre de côté une adresse IP virtuelle à utiliser comme adresse IP frontale dans le manifeste d’entrée de niveau 1.

Déploiement Ingress à deux niveaux dans Anthos GKE sur site

Effectuez les étapes suivantes pour déployer un déploiement Ingress à deux niveaux de Citrix ADC dans Anthos GKE sur site.

  1. Déployez l’application requise dans votre cluster Kubernetes et exposez-la en tant que service dans votre cluster à l’aide de la commande suivante.

    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
    

    Remarque :

    Dans cet exemple, apache.yaml est utilisé. Vous devez utiliser le fichier YAML spécifique à votre application.

  2. Déployez Citrix ADC CPX avec le Citrix ingress controller en tant qu’entrée de niveau 2 à l’aide du fichier cpx-cic.yaml .

    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. Exposez Citrix ADC CPX en tant que service Kubernetes à l’aide du fichier cpx-service.yaml.

    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. (Facultatif) Créez un certificat SSL auto-signé et une clé à utiliser avec la configuration Ingress for TLS.

    Remarque :

    Si vous possédez déjà un certificat SSL, vous pouvez créer un secret Kubernetes à l’aide de celui-ci.

    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
    

    Remarque :

    Il s’agit simplement d’un exemple de commande pour créer un certificat auto-signé et cette commande suppose également que le nom d’hôte de l’application doit être anthos-citrix-ingress.com.

  5. Créez un secret Kubernetes avec la paire de clés de certificat SSL créée.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret tls anthos-citrix --cert=$PWD/anthos-citrix-certificate.crt --key=$PWD/anthos-citrix-certificate.key
    
  6. Créez une ressource Ingress pour le niveau 2 à l’aide du fichier tier-2-ingress.yaml .

    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. Créez un secret Kubernetes pour Citrix ADC de niveau 1.

    kubectl --kubeconfig user-cluster-1-kubeconfig create secret  generic nslogin --from-literal=username='citrix-adc-username' --from-literal=password='citrix-adc-password'
    
  8. Déployez le Citrix ingress controller en tant que contrôleur d’entrée de niveau 1.

    1. Téléchargez le fichier cic.yaml .

    2. Entrez l’adresse IP de gestion de Citrix ADC. Mettez à jour l’adresse IP de gestion de Citrix ADC de niveau 1 dans l’espace réservé Tier-1-Citrix-ADC-IP spécifié dans le fichier cic.yaml.

    3. Enregistrez et déployez cic.yaml à l’aide de la commande suivante.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f cic.yaml
      
  9. Créez une ressource Ingress pour le niveau 1 à l’aide du fichier tier-1-ingress.yaml .

    1. Téléchargez le fichier tier-1-ingress.yaml .

    2. Modifiez le fichier YAML et remplacez-le VIP-Citrix-ADC par l’adresse VIP qui a été mise de côté.

    3. Enregistrez et déployez le fichier tier-1-ingress.yaml à l’aide de la commande suivante.

          kubectl --kubeconfig user-cluster-1-kubeconfig create -f tier-1-ingress.yaml
      
  10. Mettez à jour les enregistrements DNS avec l’adresse IP de VIP-Citrix-ADCpour accéder au microservice. Dans cet exemple, pour accéder au microservice Apache, vous devez disposer de l’entrée DNS suivante.

           <VIP-Citrix-ADC> anthos-citrix-ingress.com
    
  11. Utilisez la commande suivante pour accéder à l’application.

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

    Remarque :

    Dans cette commande, --resolve anthos-citrix-ingress.com:443:<VIP-for-accessing-microservices> est utilisé pour remplacer la partie de configuration DNS.

Nettoyage de l’installation : entrée à deux niveaux

Pour nettoyer l’installation, utilisez la commande kubectl --kubeconfig delete pour supprimer chaque déploiement.

Pour supprimer l’objet Ingress de niveau 1, utilisez la commande suivante.

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

Pour supprimer l’objet Ingress de niveau 2, utilisez la commande suivante.

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

Pour supprimer le déploiement Citrix ADC CPX ainsi que le Citrix ingress controller annexe, utilisez la commande suivante.

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

Pour supprimer le déploiement du service Citrix ADC CPX, utilisez la commande suivante :

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

Pour supprimer le Citrix ingress controller autonome, utilisez la commande suivante :

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

Pour supprimer le microservice Apache, utilisez la commande suivante.

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

Pour supprimer le secret Kubernetes, utilisez la commande suivante.

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

Pour supprimer le secret nslogin, utilisez la commande suivante.

    kubectl --kubeconfig user-cluster-1-kubeconfig delete secret nslogin`
Déployer le Citrix ingress controller dans Anthos