Application Delivery Management

Gérer la configuration de Kubernetes Ingress dans Citrix ADM

Kubernetes (K8s) est une plate-forme d’orchestration de conteneurs open source qui automatise le déploiement, la mise à l’échelle et la gestion des applications cloud natives.

Kubernetes fournit la fonctionnalité d’entrée qui permet au trafic client en dehors du cluster d’accéder aux microservices d’une application exécutée au sein du cluster Kubernetes. Les instances ADC peuvent servir d’entrée aux applications exécutées au sein d’un cluster Kubernetes. Les instances ADC peuvent équilibrer la charge et le contenu acheminer le trafic Nord-Sud des clients vers n’importe quel microservice au sein du cluster Kubernetes.

Remarque

  • Citrix ADM prend en charge la fonctionnalité Ingress sur les clusters avec Kubernetes version 1.14 et versions ultérieures.
  • Citrix ADM prend en charge les appliances Citrix ADC VPX et MPX en tant que périphériques d’entrée.
  • Dans l’environnement Kubernetes, la charge de l’instance Citrix ADC équilibre uniquement le type de service « NodePort ».

Vous pouvez configurer plusieurs instances ADC pour qu’elles agissent en tant que périphériques d’entrée sur le même cluster ou sur différents clusters ou espaces de noms. Après avoir configuré les instances, vous pouvez affecter chaque instance à différentes applications en fonction de la stratégie d’entrée.

Vous pouvez créer et déployer une configuration d’entrée à l’aide de Kubernetes kubectl ou d’API. Vous pouvez également configurer et déployer une entrée depuis Citrix ADM.

Vous pouvez spécifier les aspects suivants de l’intégration de Kubernetes dans ADM :

  • Cluster  : vous pouvez enregistrer ou annuler l’enregistrement des clusters Kubernetes pour lesquels ADM peut déployer des configurations d’entrée. Lorsque vous enregistrez un cluster dans Citrix ADM, spécifiez les informations du serveur d’API Kubernetes. Sélectionnez ensuite un agent ADM capable d’atteindre le cluster Kubernetes et de déployer des configurations d’entrée.

  • Stratégies  : les stratégies d’entrée sont utilisées pour sélectionner l’instance ADC en fonction du cluster ou de l’espace de noms pour déployer une configuration d’entrée. Spécifiez les informations relatives au cluster, au site et à l’instance lorsque vous ajoutez une stratégie.

  • Configuration d’entrée — Cette configuration est la configuration de Kubernetes Ingress, qui inclut les règles de commutation de contenu et les chemins d’URL correspondants des microservices et de leurs ports. Vous pouvez également spécifier les certificats SSL/TLS (pour décharger le traitement SSL sur l’instance ADC) à l’aide des ressources secrètes Kubernetes.

Citrix ADM mappe automatiquement les configurations d’entrée aux instances ADC à l’aide des stratégies d’entrée.

Pour chaque configuration d’entrée réussie, Citrix ADM génère un StyleBook ConfigPack. Le ConfigPack représente la configuration ADC appliquée à l’instance ADC qui correspond à la configuration Ingress. Pour afficher le ConfigPack, accédez à Applications > StyleBooks > Configurations.

Avant de commencer

Pour utiliser des instances Citrix ADC en tant qu’appareils d’entrée sur des clusters Kubernetes, assurez-vous d’avoir :

  • Cluster Kubernetes en place.

  • Cluster Kubernetes enregistré dans Citrix ADM.

Configurer Citrix ADM avec un jeton secret pour gérer un cluster Kubernetes

Pour que Citrix ADM puisse recevoir des événements de Kubernetes, vous devez créer un compte de service dans Kubernetes pour Citrix ADM. Et, configurez le compte de service avec les autorisations RBAC nécessaires dans le cluster.

  1. Créez un compte de service pour Citrix ADM. Par exemple, le nom du compte de service peut être citrixadm-sa. Pour créer un compte de service, reportez-vous à la section Utiliser plusieurs comptes de service.

  2. Utilisez le rôle cluster-admin pour lier le compte de service Citrix ADM. Cette liaison octroie un ClusterRole à un compte de service à travers le cluster. Voici un exemple de commande pour lier un rôle cluster-admin au compte de service.

    kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
    <!--NeedCopy-->
    

    Après avoir lié le compte de service Citrix ADM au rôle cluster-admin, le compte de service dispose de l’accès à l’échelle du cluster. Pour plus d’informations, consultez la section kubectl Créer clusterrolebinding.

  3. Obtenez le jeton à partir du compte de service créé.

    Par exemple, exécutez la commande suivante pour afficher le jeton du compte de service citrixadm-sa:

    kubectl describe sa citrixadm-sa
    <!--NeedCopy-->
    
  4. Exécutez la commande suivante pour obtenir la chaîne secrète du jeton :

    kubectl describe secret <token-name>
    <!--NeedCopy-->
    

Ajoutez le cluster Kubernetes dans Citrix ADM

Après avoir configuré un agent Citrix ADM et configuré des itinéraires statiques, vous devez enregistrer le cluster Kubernetes dans Citrix ADM.

Pour enregistrer le cluster Kubernetes :

  1. Ouvrez une session sur Citrix ADM avec les informations d’identification de l’administrateur.

  2. Accédez à Orchestration > Kubernetes > Cluster. La page Clusters s’affiche.

  3. Cliquez sur Ajouter.

  4. Dans la page Ajouter un cluster, spécifiez les paramètres suivants :

    1. Nom - Indiquez un nom de votre choix.

    2. URL du serveur API - Vous pouvez obtenir les détails de l’URL du serveur API à partir du nœud principal Kubernetes.

      1. Sur le nœud principal Kubernetes, exécutez la commande kubectl cluster-info.

        URL du serveur d'API

      2. Entrez l’URL qui s’affiche pour “Kubernetes master est en cours d’exécution à.”

    3. Jeton d’authentification : spécifiez la chaîne du jeton d’authentification obtenue lorsque vous configurez Citrix ADM pour gérer un cluster Kubernetes. Le jeton d’authentification est requis pour valider l’accès pour la communication entre le cluster Kubernetes et Citrix ADM. Pour générer un jeton d’authentification :

      1. Sur le nœud principal Kubernetes, exécutez les commandes suivantes :

        kubectl describe secret <token-name>
        <!--NeedCopy-->
        
      2. Copiez le jeton généré et collez-le en tant que jeton d’authentification

        Pour plus d’informations, consultez la documentation Kubernetes .

    4. Sélectionnez l’agent dans la liste.

    5. Cliquez sur Créer.

      ajouter un cluster

Définir une stratégie d’entrée

La stratégie d’entrée décide quel Citrix ADC est utilisé pour déployer une configuration d’entrée, en fonction du cluster d’entrée ou de l’espace de noms.

  1. Accédez à Orchestration > Kubernetes > Stratégie.

  2. Cliquez sur Add pour créer une stratégie.

    1. Spécifiez le nom de la stratégie.

    2. Définissez les conditions pour déployer la configuration d’entrée sur un cluster Kubernetes. Ces conditions sont généralement basées sur le cluster d’entrée et l’espace de noms.

    3. Dans le panneau Infrastructure,

      • Site  : sélectionnez un site dans la liste.

      • Instance  : sélectionnez l’instance ADC dans la liste.

      Les listes Site et Instance renseignent les options en fonction de la sélection du cluster dans le panneau Conditions .

      Ces listes affichent les sites ou les instances associés à l’agent Citrix ADM configuré avec le cluster Kubernetes.

    4. Dans Choisir un réseau, sélectionnez le réseau à partir duquel ADM attribue automatiquement les adresses IP virtuelles à une configuration d’entrée.

      Cette liste affiche les réseaux créés dans Réseaux > IPAM.

    5. Cliquez sur Créer.

Déployer la configuration Ingress

Vous pouvez déployer la configuration Ingress à partir de Kubernetes à l’aide de kubectl, de l’API Kubernetes ou d’autres outils. Vous pouvez également déployer la configuration Ingress directement depuis Citrix ADM.

  1. Accédez à Orchestration > Kubernetes > Ingresses.

  2. Cliquez sur Ajouter.

  3. Dans le champ Créer une entrée, spécifiez les détails suivants :

    1. Spécifiez le nom de l’entrée.

    2. Dans Cluster, sélectionnez le cluster Kubernetes sur lequel vous souhaitez déployer une entrée.

    3. Sélectionnez l’espace de noms du cluster dans la liste. Ce champ répertorie les espaces de noms présents dans le cluster Kubernetes spécifié.

    4. Facultatif, sélectionnez Affectation automatique de l’adresse IP frontale.

    5. Sélectionnez Protocole d’entrée dans la liste. Si vous sélectionnez HTTPS, spécifiez un secret TLS.

      Ce secret intègre la ressource secrète Kubernetes qui intègre le certificat HTTPS et la clé privée.

      Une entrée HTTPS nécessite un secret basé sur TLS configuré sur le cluster Kubernetes. Spécifiez les champs tls.crt et tls.key pour inclure respectivement le certificat de serveur et la clé de certificat.

    6. Pour le routage du contenu, spécifiez les informations suivantes :

      • Chemins d’URL  : spécifiez le chemin d’accès associé au service et au port Kubernetes.

      • Service Kubernetes  : spécifiez le service souhaité.

      • Port - Spécifiez le port de service.

      • Méthode LB  : sélectionnez la méthode d’équilibrage de charge préférée pour le service Kubernetes sélectionné.

        La méthode sélectionnée met à jour la spécification d’entrée avec une annotation appropriée. Par exemple, si vous sélectionnez la méthode ROUNDROBIN, l’annotation Citrix s’affiche comme suit :

         "lbmethod":"ROUNDROBIN"
         <!--NeedCopy-->
        
      • Type de persistance : sélectionnez le type de persistance d’équilibrage de charge préféré pour le service Kubernetes sélectionné.

        Le type de persistance sélectionné met à jour la spécification d’entrée avec une annotation appropriée. Par exemple, si vous sélectionnez COOKIEINSERT, l’annotation Citrix s’affiche comme suit :

         "persistenceType":"COOKIEINSERT"
         <!--NeedCopy-->
        

      Cliquez sur Ajouter pour ajouter d’autres chemins d’URL et ports à la configuration d’entrée.

      Ajouter des règles de routage du contenu

      Après le déploiement, la configuration d’entrée redirige le trafic client vers un service spécifique en fonction des éléments suivants :

      • Le chemin d’accès et le port d’URL demandés.
      • La méthode LB et le type de persistance définis.

      Remarque

      Les services Kubernetes utilisés dans une configuration d’entrée sont censés être de type NodePort.

    7. Facultatif, spécifiez une description d’entrée.

    8. cliquez sur Déployer

      Si vous souhaitez revoir la configuration avant le déploiement, cliquez sur Generate Ingress Spec. La configuration d’entrée spécifiée s’affiche au format YAML. Après avoir examiné la configuration, cliquez sur Déployer.

Remarque Appliquez des licences aux serveurs virtuels créés à l’aide de configurations d’entrée. Pour appliquer une licence, effectuez les opérations suivantes :

  1. Accédez à Système > Licences et analyses.
  2. Sous Récapitulatif des licences du serveur virtuel, activez la sélection automatique des serveurs virtuels.
Gérer la configuration de Kubernetes Ingress dans Citrix ADM