Contrôleur d'entrée Citrix ADC

Déployer le Citrix ingress controller à l’aide des opérateurs Red Hat OpenShift

An Operator est une boîte à outils open source conçue pour empaqueter, déployer et gérer des applications natives Kubernetes de manière plus efficace, automatisée et évolutive.

Cette rubrique présente des informations sur la façon de déployer le Citrix ingress controller à l’aide des opérateurs OpenShift.

Options de déploiement

Selon la façon dont vous souhaitez utiliser Citrix ADC, il existe deux manières de déployer le Citrix ingress controller dans un cluster OpenShift :

  • En tant qu’espace autonome dans le cluster Kubernetes : dans ce mode, vous pouvez contrôler l’appliance Citrix ADC MPX ou VPX déployée en dehors du cluster.
  • En tant que conteneur annexe aux côtés de Citrix ADC CPX dans le même espace : dans ce mode, le Citrix ingress controller configure le Citrix ADC CPX.

Déployer le Citrix ingress controller en tant qu’espace autonome dans le cluster OpenShift pour les appliances Citrix ADC MPX ou VPX

À l’aide de l’opérateur Citrix Ingress Controller, vous pouvez déployer le Citrix ingress controller en tant qu’espace autonome dans le cluster OpenShift. Le contrôleur Citrix Ingress configure le Citrix ADC VPX ou MPX qui est déployé en tant qu’entrée ou routeur pour une application exécutée dans le cluster OpenShift. Le schéma suivant explique la topologie :

Topology

Conditions préalables

  • Déploiement de Red Hat OpenShift version 4.1 ou ultérieure.
  • Déterminez l’adresse IP NS_IP dont le contrôleur a besoin pour communiquer avec l’appliance. L’adresse IP peut être l’une des suivantes en fonction du type de déploiement Citrix ADC :
    • (Appliances autonomes) NSIP : adresse IP de gestion d’une appliance Citrix ADC autonome. Pour plus d’informations, consultez Adressage IP dans Citrix ADC
    • (Appliances en mode Haute disponibilité) SNIP : adresse IP du sous-réseau. Pour plus d’informations, consultez Adressage IP dans Citrix ADC
    • (Appliances en mode cluster) CLIP : adresse IP de gestion de cluster (CLIP) pour un déploiement Citrix ADC en cluster. Pour plus d’informations, consultez Adressage IP pour un cluster
  • Le nom d’utilisateur et le mot de passe de l’appliance Citrix ADC VPX ou MPX utilisée comme périphérique d’entrée. L’appliance Citrix ADC doit disposer d’un compte d’utilisateur système (non défini par défaut) avec certains privilèges afin que le Citrix ingress controller puisse configurer l’appliance Citrix ADC VPX ou MPX. Pour obtenir des instructions sur la création du compte d’utilisateur système sur Citrix ADC, voir Créer un compte d’utilisateur système pour le Citrix ingress controller dans Citrix ADC

    Vous pouvez directement transmettre le nom d’utilisateur et le mot de passe en tant que variables d’environnement au contrôleur, ou utiliser des secrets Kubernetes (recommandé). Si vous souhaitez utiliser des secrets Kubernetes, créez un secret pour le nom d’utilisateur et le mot de passe à l’aide de la commande suivante :

     kubectl create secret  generic nslogin --from-literal=username='cic' --from-literal=password='mypassword'
    

Spécifiez les registres d’images autorisés à accéder par les opérateurs et les pods

Vous devez spécifier les registres d’images auxquels les opérateurs et les espaces doivent avoir accès pour extraire les images. Vous pouvez spécifier la liste des registres autorisés en mettant à jour le fichier de définition de ressource image.config.openshift.io/cluster personnalisé. Assurez-vous d’afficher le cluster Openshift avant de mettre à jour la définition de ressource image.config.openshift.io/cluster personnalisée.

Pour mettre à jour la définition de ressource image.config.openshift.io/cluster personnalisée, effectuez les opérations suivantes :

  1. Exécutez la commande suivante :

    oc edit image.config.openshift.io/cluster
    
  2. Modifiez le champ spec comme suit :

    spec:
      registrySources:
        allowedRegistries:
        - quay.io
        - registry.redhat.io
        - registry.connect.redhat.com
        - registry.access.redhat.com
        - image-registry.openshift-image-registry.svc:5000
    

Remarque :

Si votre application doit extraire des images de registres autres que ceux spécifiés ici, vous pouvez ajouter ces registres. Remarque :

Les modifications sont appliquées à tous les nœuds maître et de travail et le nœud est dans l’état « Non prêt » pendant un certain temps après la mise à jour du CRD. Vous devez attendre que tous les nœuds soient dans l’état « Prêt » avant de passer à l’étape suivante. Vous pouvez afficher l’état des nœuds à l’aide de la commande oc get nodes:

Créez un compte d’utilisateur système pour le Citrix ingress controller dans Citrix ADC

Le Citrix ingress controller configure l’appliance Citrix ADC (MPX ou VPX) à l’aide d’un compte d’utilisateur système de Citrix ADC. Le compte d’utilisateur système doit disposer de certains privilèges afin que le Citrix ingress controller soit autorisé à configurer les éléments suivants sur Citrix ADC :

  • Ajouter, supprimer ou afficher un serveur virtuel de commutation de contenu (CS)
  • Configurer les stratégies et les actions du CS
  • Configurer le serveur virtuel d’équilibrage de charge (LB)
  • Configurer les groupes de services
  • Configurer les clés de certificat SSL
  • Configurer des itinéraires
  • Configurer les moniteurs utilisateur
  • Ajouter un fichier système (pour télécharger des clés de certification SSL depuis Kubernetes)
  • Configurer l’adresse IP virtuelle (VIP)
  • Vérifiez l’état de l’appliance Citrix ADC

Pour créer le compte d’utilisateur système, effectuez les opérations suivantes :

  1. Ouvrez une session sur l’appliance Citrix ADC. Procédez comme suit :
    1. Utilisez un client SSH, tel que PuTTY, pour ouvrir une connexion SSH à l’appliance Citrix ADC.

    2. Connectez-vous à l’appliance à l’aide des informations d’identification de l’administrateur.

  2. Créez le compte d’utilisateur système à l’aide de la commande suivante :

    add system user <username> <password>
    

    Par exemple :

    add system user cic mypassword
    
  3. Créez une stratégie pour fournir les autorisations requises au compte d’utilisateur du système. Utilisez la commande suivante :

    add cmdpolicy cic-policy ALLOW '^(\?!shell)(\?!sftp)(\?!scp)(\?!batch)(\?!source)(\?!.*superuser)(\?!.*nsroot)(\?!install)(\?!show\s+system\s+(user|cmdPolicy|file))(\?!(set|add|rm|create|export|kill)\s+system)(\?!(unbind|bind)\s+system\s+(user|group))(\?!diff\s+ns\s+config)(\?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)^(\?!shell)(\?!sftp)(\?!scp)(\?!batch)(\?!source)(\?!.*superuser)(\?!.*nsroot)(\?!install)(\?!show\s+system\s+(user|cmdPolicy|file))(\?!(set|add|rm|create|export|kill)\s+system)(\?!(unbind|bind)\s+system\s+(user|group))(\?!diff\s+ns\s+config)(\?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)'
    

    Remarque : Le compte d’utilisateur système aurait des privilèges basés sur la stratégie de commande que vous définissez.

    La stratégie de commande mentionnée à l’étape 3 est similaire à la stratégie de commande sysAdmin intégrée avec une autre autorisation de téléchargement de fichiers.

    Dans la spécification de stratégie de commande fournie, les caractères spéciaux qui doivent être échappés sont déjà omis pour faciliter le copier-coller dans la ligne de commande Citrix ADC.

    Pour configurer la stratégie de commande à partir de l’assistant de configuration Citrix ADC (GUI), utilisez la spécification de stratégie de commande suivante.

    ^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)^(?!shell)(?!sftp)(?!scp)(?!batch)(?!source)(?!.*superuser)(?!.*nsroot)(?!install)(?!show\s+system\s+(user|cmdPolicy|file))(?!(set|add|rm|create|export|kill)\s+system)(?!(unbind|bind)\s+system\s+(user|group))(?!diff\s+ns\s+config)(?!(set|unset|add|rm|bind|unbind|switch)\s+ns\s+partition).*|(^install\s*(wi|wf))|(^\S+\s+system\s+file)
    
  4. Liez la stratégie au compte d’utilisateur système à l’aide de la commande suivante :

    bind system user cic cic-policy 0
    

Déployer le Citrix ingress controller en tant qu’espace autonome à l’aide d’opérateurs

Procédez comme suit :

  1. Ouvrez une session sur la console de cluster OpenShift 4.1.

  2. Déployez une application Apache à l’aide de la console. Procédez comme suit :

    1. Accédez à Workloads > Deployments > Create Deployment et utilisez le fichier apache.yaml pour créer le déploiement.

      Déploiement d'applications

      REMARQUE :

      L’application Apache sert uniquement à des fins de démonstration, vous pouvez modifier le fichier YAML en fonction de vos besoins.

    2. Accédez à la section Workloads > Pods et assurez-vous que les espaces d’application Apache sont opérationnels.

      Pod d'application

  3. Créez un service pour l’application Apache. Accédez à Réseau > Services > Créer un service et utilisez le fichier apache-service.yaml pour créer le service.

    Service d'application

  4. Créez une entrée pour l’application Apache. Accédez à Networking > Ingress > Create Ingress et utilisez apache-ingress-vpx.yaml pour créer l’entrée. Assurez-vous de mettre à jour l’adresse IP virtuelle du Citrix ADC VPX dans le YAML d’entrée avant de l’appliquer dans le cluster.

    Entrée d'application

  5. Accédez à Catalogue > OperatorHub, sélectionnez l’ opérateur Citrix Ingress Controller, puis cliquez sur Installer.

    Opérateur de Citrix ingress controller

    Install

    Vous disposez des options suivantes pour vous abonner à l’opérateur Citrix Ingress Controller :

    • Tous les espaces de noms du cluster (par défaut)  : permet à l’opérateur du Citrix ingress controller de s’abonner à tous les espaces de noms présents sur le cluster OpenShift et vous permet donc d’initier le Citrix ingress controller à partir de n’importe quel espace de noms du cluster.
    • Un espace de noms spécifique sur le cluster  : permet à l’opérateur du Citrix ingress controller de s’abonner à l’espace de noms sélectionné sur le cluster OpenShift. Vous pouvez lancer l’instance du Citrix ingress controller uniquement sur l’espace de noms sélectionné.

    À des fins de démonstration, vous pouvez abonner l’opérateur du Citrix ingress controller à l’espace de noms par défaut.

    Abonnement aux applications

    Attendez que l’opérateur du Citrix ingress controller soit correctement abonné.

    Confirmation d'inscription

  6. Accédez à la section Workloads > Pods et vérifiez que l’espace cic-operator est opérationnel.

    Module d'application en cours d'exécution

  7. Accédez à Catalogue > Opérateurs installés et sélectionnez l’opérateur du Citrix ingress controller.

    Application POD et CIC

  8. Cliquez sur Citrix Ingress Controller et dans l’onglet Overview, sélectionnez Create New sur l’option permettant de créer le CRD pour l’opérateur du Citrix ingress controller.

    Créer un nouveau

    La définition YAML du Citrix ingress controller s’affiche.

    Listes de paramètres

    Le tableau suivant répertorie les paramètres obligatoires et facultatifs ainsi que leurs valeurs par défaut que vous pouvez également configurer lors de l’installation. Assurez-vous de définir le paramètre license.accept sur yes et de fournir l’adresse IP de l’instance Citrix ADC VPX dans le paramètre nsIP.

    Paramètres Obligatoire ou facultatif Valeur par défaut Description
    license.accept Obligatoire non Défini yes pour accepter le contrat de licence de l’utilisateur final du Citrix ingress controller.
    cic.image Obligatoire quay.io/citrix/citrix-k8s-ingress-controller:1.26.7 L’image du Citrix ingress controller.
    cic.pullPolicy Obligatoire Toujours La stratégie d’extraction d’image du Citrix ingress controller.
    Nom du fichier de connexion Obligatoire nslogin La clé secrète pour ouvrir une session sur Citrix ADC VPX ou MPX. Pour plus d’informations sur la création des clés secrètes, reportez-vous à la section Conditions préalables.
    nsIP Obligatoire S.O. L’adresse IP de l’appareil Citrix ADC. Pour plus de détails, consultez la section Conditions préalables.
    nsVIP Facultatif S.O. L’adresse IP virtuelle de l’appareil Citrix ADC.
    nsPort Facultatif 443 Port utilisé par le Citrix ingress controller pour communiquer avec Citrix ADC. Vous pouvez porter 80 pour HTTP.
    nsProtocol Facultatif HTTPS Protocole utilisé par le Citrix ingress controller pour communiquer avec Citrix ADC. Vous pouvez également utiliser HTTP sur le port 80.
    logLevel Facultatif DEBUG Niveau de journal permettant de contrôler les journaux générés par le Citrix ingress controller. Les niveaux de journalisation pris en charge sont : CRITICAL, ERROR, WARNING, INFO et DEBUG. Pour plus d’informations, consultez la section Niveaux de journalisation
    kubernetesURL Facultatif S.O. L’URL du serveur kube-api que le Citrix ingress controller utilise pour enregistrer les événements. Si la valeur n’est pas spécifiée, le Citrix ingress controller utilise l’ adresse IP interne kube-apiserver.
    ingressClass Facultatif S.O. Si plusieurs équilibreurs de charge d’entrée sont utilisés pour équilibrer la charge de différentes ressources d’entrée. Vous pouvez utiliser ce paramètre pour spécifier le Citrix ingress controller afin de configurer Citrix ADC associé à une classe d’entrée spécifique. Pour plus d’informations sur la classe Ingress, voir Prise en charge de la classe Ingress.
    nodeWatch Facultatif false Utilisez l’argument si vous souhaitez configurer automatiquement l’itinéraire réseau à partir du VPX ou du MPX Citrix ADC d’entrée vers les espaces du cluster Kubernetes. Pour plus d’informations, consultez Configurer automatiquement un itinéraire sur l’instance Citrix ADC.
    defaultSSLCert Facultatif S.O. Certificat SSL par défaut qui doit être utilisé en tant que certificat non SNI dans Citrix ADC.
    exporter.required Facultatif false Utilisez l’argument, si vous souhaitez exécuter l’ Exporter pour les statistiques Citrix ADC avec le Citrix ingress controller pour extraire des métriques pour Citrix ADC VPX ou MPX.
    exporter.image Facultatif quay.io/citrix/citrix-adc-metrics-exporter:1.4.6 L’image de Exporter for Citrix ADC Stats.
    exporter.pullPolicy Facultatif Toujours La stratégie d’extraction de l’image Exporter pour Citrix ADC Stats.
    exporter.ports.containerPort Facultatif 8888 Port de conteneur de l’exportateur pour les statistiques Citrix ADC.
    openshift Facultatif true Définissez cet argument si l’environnement OpenShift est utilisé.

    Après avoir mis à jour les valeurs des paramètres requis, cliquez sur Créer.

  9. Accédez à la section Workloads > Pods et assurez-vous que l’espace citrix-ingress-controller est opérationnel.

    Réussite du déploiement du contrôleur Citrix Ingress

  10. Vérifiez le déploiement en envoyant du trafic comme indiqué :

    curl http://citrix-ingress-operator.com --resolve citrix-ingress-operator.com:80:<VIP>
            
        It works!
    

Déployez le Citrix ingress controller en tant que side-car avec Citrix ADC CPX

À l’aide de l’opérateur Citrix Ingress Controller, vous pouvez déployer un Citrix ADC CPX avec le Citrix ingress controller en tant que sidecar. Le contrôleur Citrix Ingress configure le Citrix ADC CPX qui est déployé en tant que routeur d’entrée ou routeur pour une application exécutée dans le cluster OpenShift. Le schéma suivant explique la topologie.

Topologie CPX

Conditions préalables

Déployer le Citrix ingress controller en tant que side-car avec Citrix ADC CPX à l’aide d’opérateurs

Procédez comme suit :

  1. Ouvrez une session sur la console de cluster OpenShift 4.1.

  2. Déployez une application Apache à l’aide de la console. Procédez comme suit :

    1. Accédez à Workloads > Deployments > Create Deployment et utilisez le fichier apache.yaml pour créer le déploiement.

      Déploiement d'applications

      REMARQUE :

      L’application Apache sert uniquement à des fins de démonstration, vous pouvez modifier le fichier YAML en fonction de vos besoins.

    2. Accédez à la section Workloads > Pods et assurez-vous que les espaces d’application Apache sont opérationnels.

      Pod d'application

  3. Créez un service pour l’application Apache. Accédez à Réseau > Services > Créer un service et utilisez le fichier apache-service.yaml pour créer le service.

    Service d'application

  4. Créez une entrée pour l’application Apache. Accédez à Networking > Ingress > Create Ingress et utilisez apache-ingress-cpx.yaml pour créer l’entrée.

    Entrée CPX d'application

  5. Accédez à Catalogue > OperatorHub, sélectionnez l’ opérateur Citrix ADC CPX avec Ingress Controller et cliquez sur Installer.

    Hub de l'opérateur

    Installation du hub d'opérateur

    Vous disposez des options suivantes pour vous abonner à l’opérateur Citrix Ingress Controller :

    • Tous les espaces de noms du cluster (par défaut)  : permet à l’opérateur du Citrix ingress controller de s’abonner à tous les espaces de noms présents sur le cluster OpenShift et vous permet donc d’initier le Citrix ADC CPX à partir de n’importe quel espace de noms du cluster.
    • Un espace de noms spécifique sur le cluster  : permet à l’opérateur du Citrix ingress controller de s’abonner à l’espace de noms sélectionné sur le cluster OpenShift. Vous pouvez lancer l’instance Citrix ADC CPX uniquement sur l’espace de noms sélectionné.

    À des fins de démonstration, vous pouvez abonner l’opérateur du Citrix ingress controller à l’espace de noms par défaut.

    Subscription

    Attendez que l’opérateur soit correctement abonné.

    Subscription

  6. Accédez à la section Workloads > Pods et vérifiez que l’espace cic-operator est opérationnel.

  7. Accédez à Catalogue > Opérateurs installés et sélectionnez l’opérateur du Citrix ingress controller.

    Application POD et CIC

  8. Cliquez sur Citrix ADC CPX avec Ingress Controller et dans l’onglet Overview, sélectionnez Create New sur l’option de création du CRD pour Citrix ADC CPX avec l’opérateur Ingress Controller.

    Créer un nouveau

    La définition YAML Citrix ADC CPX avec contrôleur d’entrée s’affiche.

    Listes de paramètres

    Le tableau suivant répertorie les paramètres obligatoires et facultatifs ainsi que leurs valeurs par défaut que vous pouvez configurer lors de l’installation. Assurez-vous que vous avez défini le paramètre license.accept sur yes.

    Paramètres Obligatoire ou facultatif Valeur par défaut Description
    license.accept Obligatoire non Défini yes pour accepter le contrat de licence de l’utilisateur final du Citrix ingress controller.
    cpx.image Obligatoire quay.io/citrix/citrix-k8s-cpx-ingress:13.0-83.27 L’image Citrix ADC CPX.
    cpx.pullPolicy Obligatoire Toujours La stratégie d’extraction d’images Citrix ADC CPX.
    lsIP Facultatif S.O. Fournissez l’adresse IP Citrix Application Delivery Management (ADM) pour obtenir une licence Citrix ADC CPX. Pour plus d’informations, voir Licences
    lsPort Facultatif 27000 Port Citrix ADM si un port autre que celui par défaut est utilisé.
    plateforme Facultatif S.O. Licence de plateforme. La plate-forme est CP1000.
    cic.image Obligatoire quay.io/citrix/citrix-k8s-ingress-controller:1.21.9 L’image du Citrix ingress controller.
    cic.pullPolicy Obligatoire Toujours La stratégie d’extraction d’image du Citrix ingress controller.
    cic.required Facultatif true Spécifie ce paramètre pour exécuter le Citrix ingress controller en tant que sidecar avec Citrix ADC CPX
    defaultSSLCert Facultatif S.O. Certificat SSL par défaut qui doit être utilisé en tant que certificat non SNI dans Citrix ADC.
    exporter.required Facultatif false Utilisez l’argument si vous souhaitez exécuter l’ Exporter pour les statistiques Citrix ADC avec le Citrix ingress controller pour extraire des métriques pour Citrix ADC CPX.
    exporter.image Facultatif quay.io/citrix/citrix-adc-metrics-exporter:1.4.6 L’image de l’exportateur pour les statistiques Citrix ADC.
    exporter.pullPolicy Facultatif Toujours La stratégie d’extraction d’image pour les statistiques de l’exportateur pour Citrix ADC
    exporter.ports.containerPort Facultatif 8888 Port de conteneur de l’exportateur pour les statistiques Citrix ADC.
    ingressClass Facultatif S.O. Si plusieurs équilibreurs de charge d’entrée sont utilisés pour équilibrer la charge de différentes ressources d’entrée. Vous pouvez utiliser ce paramètre pour spécifier le Citrix ingress controller afin de configurer Citrix ADC associé à une classe d’entrée spécifique.
    openshift Facultatif true Définissez cet argument si l’environnement OpenShift est utilisé.

    Après avoir mis à jour les valeurs des paramètres requis, cliquez sur Créer.

  9. Accédez à la section Workloads > Pods et assurez-vous que l’espace cpx-ingress est opérationnel.

    Réussite du déploiement du contrôleur Citrix Ingress

  10. Vérifiez le déploiement en envoyant du trafic. Procédez comme suit :

    1. Obtenez les détails de NodePort à l’aide de la commande suivante :

      oc get svc

    2. Utilisez cpx-service NodePort et envoyez le trafic comme indiqué dans la commande suivante :

      curl http://citrix-ingress-operator.com:<NodePort> --resolve citrix-ingress-operator.com:<NodePort>:<Master-Node-IP>
      <html><body><h1>It works!</h1></body></html>
      
Déployer le Citrix ingress controller à l’aide des opérateurs Red Hat OpenShift