Contrôleur d'entrée Citrix ADC

Déployer le Citrix ingress controller avec prise en charge du partitionnement de routeur OpenShift

Lepartitionnement de routeur OpenShift permet de distribuer un ensemble d’itinéraires entre plusieurs routeurs OpenShift. Par défaut, un routeur OpenShift sélectionne toutes les routes de tous les espaces de noms. Dans le partitionnement de routeur, des étiquettes sont ajoutées aux itinéraires ou aux espaces de noms et des sélecteurs d’étiquettes aux routeurs pour filtrer les itinéraires. Chaque partition de routeur sélectionne uniquement des itinéraires avec des étiquettes spécifiques qui correspondent à ses paramètres de sélection d’étiquettes.

Citrix ADC peut être intégré à OpenShift de deux manières et les deux déploiements prennent en charge le partitionnement de routeur OpenShift.

  • Citrix ADC CPX déployé en tant que routeur OpenShift avec un Citrix ingress controller à l’intérieur du cluster
  • Citrix ingress controller en tant que plug-in de routeur pour Citrix ADC MPX ou VPX déployé en dehors du cluster

Pour configurer le partitionnement de routeur pour un déploiement Citrix ADC sur OpenShift, une instance de Citrix ingress controller est requise par partition. L’instance du Citrix ingress controller est déployée avec des étiquettes d’itinéraire ou d’espace de noms ou les deux en tant que variables d’environnement en fonction des critères requis pour le partitionnement. Lorsque le Citrix ingress controller traite un itinéraire, il compare les étiquettes de l’itinéraire ou les étiquettes d’espace de noms de l’itinéraire avec les critères de sélection configurés sur celui-ci. Si l’itinéraire répond aux critères, la configuration appropriée est appliquée à Citrix ADC, sinon elle n’applique pas la configuration.

Dans le partitionnement de routeur, la sélection d’un sous-ensemble d’itinéraires dans l’ensemble du pool d’itinéraires est basée sur des expressions de sélection. Les expressions de sélection sont une combinaison de plusieurs valeurs et opérations.

Supposons, par exemple, que certaines routes ont différentes étiquettes pour le contrat de niveau de service (SLA), l’emplacement géographique (géo), la configuration matérielle (matériel), le service (département), le type et la fréquence, comme indiqué dans le tableau suivant.

Label Values
sla élevé, moyen, faible
géo est, ouest
hw Modeste, Fort
département finance, développement, opérations
type statique, dynamique
fréquence haute, hebdomadaire

Le tableau suivant présente les sélecteurs pour les étiquettes d’itinéraire ou les étiquettes d’espace de noms et quelques exemples d’expressions de sélection basées sur les étiquettes de l’exemple. Les critères de sélection d’itinéraire sont configurés sur le Citrix ingress controller à l’aide des variables d’environnement ROUTE_LABELS et NAMESPACE_LABLES.

Type de sélecteur Exemple
opération OR ROUTE_LABELS=’dept in (dev, ops)’
opération AND ROUTE_LABELS=’hw=strong,type=dynamic,geo=west’
Opération NOT ROUTE_LABELS=’dept!= finance’
Correspondance exacte NAMESPACE_LABELS=’frequency=weekly’
Correspondance exacte avec les étiquettes d’itinéraire et d’espace de noms NAMESPACE_LABELS=’frequency=weekly’ ROUTE_LABELS=’sla=low’
Appariement basé sur les clés indépendant de la valeur NAMESPACE_LABELS=’name’
Opération NOT avec correspondance basée sur la clé indépendante de la valeur NAMESPACE_LABELS=’!name’

Remarque :

Les sélecteurs d’étiquettes utilisent la langue prise en charge par les étiquettes Kubernetes.

Si vous le souhaitez, vous pouvez modifier les étiquettes d’itinéraire ou d’espace de noms en les modifiant ultérieurement. Une fois que vous avez modifié les étiquettes, la partition de routeur est revalidée et, en fonction de la modification, le Citrix ingress controller met à jour la configuration sur Citrix ADC.

Déployer Citrix ADC CPX avec le partitionnement de routeur OpenShift

Pour déployer CPX avec la prise en charge du partitionnement de routeur OpenShift, effectuez les opérations suivantes :

  1. Téléchargez le fichier cpx_cic_side_car.yaml à l’aide de la commande suivante :

     wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cpx_cic_side_car.yaml
    
  2. Modifiez le fichier cpx_cic_side_car.yaml et spécifiez les étiquettes d’itinéraire et les sélecteurs d’étiquettes d’espace de noms en tant que variables d’environnement.

    L’exemple suivant montre comment spécifier un exemple d’étiquette d’itinéraire et d’étiquette d’espace de noms dans le fichier cpx_cic_side_car.yaml. Cet exemple montre comment sélectionner les routes dont les valeurs de l’étiquette « name » sont abc ou xyz et dont l’étiquette d’espace de noms est frequency=high.

            env:    
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"       
    
  3. Déployez le Citrix ingress controller à l’aide de la commande suivante.

    oc create -f cpx_cic_side_car.yaml
    

Déployer le plug-in de routeur du Citrix ingress controller avec prise en charge du partitionnement de routeur OpenShift

Pour déployer un plug-in de routeur de Citrix ingress controller avec partitionnement de routeur, effectuez les opérations suivantes :

  1. Téléchargez le fichier cic.yaml à l’aide de la commande suivante :

    wget https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/deployment/openshift/manifest/cic.yaml
    
  2. Modifiez le fichier cic.yaml et spécifiez les étiquettes d’itinéraire et les sélecteurs d’étiquettes d’espace de noms en tant que variables d’environnement.

    L’exemple suivant montre comment spécifier un exemple d’étiquette d’itinéraire et d’étiquette d’espace de noms dans le fichier cic.yaml. Cet exemple montre comment sélectionner les routes dont les valeurs de l’étiquette « name » sont abc ou xyz et dont l’étiquette d’espace de noms est frequency=high.

            env:
            - name: "ROUTE_LABELS"
              value: "name in (abc,xyz)"
            - name: "NAMESPACE_LABELS"
              value: "frequency=high"
    
  3. Déployez le Citrix ingress controller à l’aide de la commande suivante.

    oc create -f cic.yaml
    

Exemple : créer un itinéraire OpenShift et vérifier la configuration de l’itinéraire sur Citrix ADC VPX

Cet exemple montre comment créer un itinéraire OpenShift avec des étiquettes et vérifier la configuration du fragment de routeur. Dans cet exemple, la configuration de l’itinéraire est vérifiée sur un déploiement Citrix ADC VPX.

Effectuez les étapes suivantes pour créer un exemple d’itinéraire avec des étiquettes.

  1. Définissez l’itinéraire dans un fichier YAML. Voici un exemple d’itinéraire nommé comme route.yaml.

    apiVersion: v1
    kind: Route
    metadata:
        name: web-backend-route
        namespace: default
        labels:
            sla: low
            name: abc
    spec:
        host: web-frontend.cpx-lab.org
        path: "/web-backend"
        port:
            targetPort: 80
        to:
            kind: Service
            name: web-backend
    
  2. Utilisez la commande suivante pour déployer l’itinéraire.

    oc create -f route.yaml
    
  3. Ajoutez des étiquettes à l’espace de noms dans lequel vous créez l’itinéraire.

    oc label namespace default 'frequency=high'
    

Vérifiez la configuration d’itinéraire

Vous pouvez vérifier la configuration de l’itinéraire OpenShift sur un Citrix ADC VPX en effectuant les étapes suivantes :

  1. Ouvrez une session sur Citrix ADC VPX en effectuant les opérations suivantes :

    • Utilisez un client SSH tel que PuTTY pour ouvrir une connexion SSH à Citrix ADC VPX.
    • Ouvrez une session sur Citrix ADC VPX à l’aide des informations d’identification de l’administrateur.
  2. Vérifiez si le groupe de services est créé à l’aide de la commande suivante.

    show serviceGroup 
    
  3. Vérifiez la configuration de l’itinéraire sur Citrix ADC VPX dans la sortie de commande show serviceGroup.

    Voici un exemple de configuration d’itinéraire à partir de la sortie de la commande show serviceGroup.

    > show serviceGroup
    k8s-web-backend-route_default_80_k8s-web-backend_default_80_svc - HTTP
    State: ENABLED  Effective State: DOWN Monitor Threshold : 0
    Max Conn: 0     Max Req: 0 Max Bandwidth: 0 kbits
    Use Source IP: NO    
    Client Keepalive(CKA): NO
    TCP Buffering(TCPB): NO
    HTTP Compression(CMP): NO
    Idle timeout: Client: 180 sec    Server: 360 sec
    Client IP: DISABLED 
    Cacheable: NO
    SC: OFF
    SP: OFF
    Down state flush: ENABLED
    Monitor Connection Close : NONE
    Appflow logging: ENABLED
    ContentInspection profile name: ???
    Process Local: DISABLED
    Traffic Domain: 0
    
Déployer le Citrix ingress controller avec prise en charge du partitionnement de routeur OpenShift