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 natives du cloud.
Kubernetes fournit la fonctionnalite Ingress qui permet au trafic client en dehors du cluster d’accéder aux microservices d’une application exécutée à l’intérieur du cluster Kubernetes. Les instances ADC peuvent agir comme entrée pour les applications s’exécutant à l’intérieur d’un cluster Kubernetes. Les instances ADC peuvent équilibrer la charge et acheminer le trafic Nord-Sud depuis les clients vers n’importe quel microservice à l’intérieur 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 un 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 Ingress.
Vous pouvez créer et déployer une configuration Ingress à l’aide de Kuberneteskubectl
ou d’API. Vous pouvez également configurer et déployer une entrée à partir de Citrix ADM.
Vous pouvez spécifier les aspects suivants de l’intégration de Kubernetes dans ADM :
Cluster: vous pouvez enregistrer ou annuler l’inscription de 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. Ensuite, sélectionnez un agent ADM qui peut atteindre le cluster Kubernetes et déployer les configurations d’entrée.
Stratégies: les stratégies d’entrée permettent de 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 de cluster, de site et d’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 d’entrée. Pour afficher le ConfigPack, accédez àApplications > StyleBooks > Configurations.
Avant de commencer
Pour utiliser des instances Citrix ADC en tant que périphériques d’entrée sur les clusters Kubernetes, assurez-vous que vous disposez des éléments suivants :
Cluster Kubernetes en place.
Agent Citrix ADM installé et configuré pour activer la communication entre ADM et le cluster Kubernetes ou les instances gérées. Vous pouvez utiliser les instances gérées présentes dans votre datacenter ou votre nuage.
Cluster Kubernetes enregistré dans Citrix ADM.
Configurer l’agent Citrix ADM pour qu’il s’enregistre auprès du cluster Kubernetes
Pour activer la communication entre le cluster Kubernetes et Citrix ADM, vous devez installer et configurer un agent Citrix ADM. Vous pouvez déployer un agent sur les plates-formes suivantes :
Hyperviseur (ESX, XenServer, KVM, Hyper-V)
Services de cloud public (tels que Microsoft Azure, AWS)
Suivez laprocédurepour configurer un agent.
Remarque
Vous pouvez également utiliser un agent ADM existant si un agent est déjà déployé.
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.
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 sectionUtiliser plusieurs comptes de service.Utilisez le rôle
cluster-admin
pour lier le compte de service Citrix ADM. Cette liaison accorde unClusterRole
à travers le cluster à un compte de service. Voici un exemple de commande pour lier uncluster-admin
rôle au compte de service.kubectl create clusterrolebinding citrixadm-sa-admin --clusterrole=cluster-admin --serviceaccount=default:citrixadm-sa
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 [kubectl
createclusterrolebinding
] (https://kubernetes.io/docs/reference/access-authn-authz/rbac/#kubectl-create-clusterrolebinding).Obtenez le jeton à partir du compte de service créé.
Par exemple, exécutez la commande suivante pour afficher le jeton du compte
citrixadm-sa
de service :kubectl describe sa citrixadm-sa
Exécutez la commande suivante pour obtenir la chaîne secrète du jeton :
kubectl describe secret
Ajouter 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 :
Connectez-vous à Citrix ADM avec les informations d’identification de l’administrateur.
Accédez àOrchestration>Kubernetes>Cluster. La page Clusters s’affiche.
Cliquez surAjouter.
Dans la pageAjouter un cluster, spécifiez les paramètres suivants :
Nom- Indiquez le nom de votre choix.
API Server URL- Vous pouvez obtenir les détails de l’URL API Server à partir du nœud Master Kubernetes.
Sur le nœud maître Kubernetes, exécutez la commande
kubectl cluster-info
.Entrez l’URL qui s’affiche pour“Kubernetes master est en cours d’exécution à.”
Authentication Token- Spécifiez la chaîne de jeton d’authentification obtenue pendant que vousconfigurer 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 :
Sur le nœud maître Kubernetes, exécutez les commandes suivantes :
kubectl describe secret
Copiez le jeton généré et collez-le en tant que jeton d’authentification
Pour de plus amples informations, consultez la documentation deKubernetes.
Sélectionnez l’agent dans la liste.
Cliquez surCréer.
Définir une stratégie d’entrée
La stratégie d’entrée détermine quel Citrix ADC est utilisé pour déployer une configuration d’entrée, basée sur le cluster d’entrée ou l’espace de noms, ou les deux.
Accédez àOrchestration > Kubernetes > Stratégie.
Cliquez surAjouterpour créer une stratégie.
Spécifiez le nom de la stratégie.
Définissezdes conditionspour déployer la configuration Ingress sur un cluster Kubernetes. Ces conditions sont généralement basées sur Ingress Cluster et Namespace.
Dans le cadre du groupe Infrastructure,
Site- Sélectionnez un site dans la liste.
Instance- Sélectionnez l’instance ADC dans la liste.
Les listesSiteetInstancerenseignent les options en fonction de la sélection du cluster dans le panneauConditions.
Ces listes affichent les sites ou instances associés à l’agent Citrix ADM configuré avec le cluster Kubernetes.
DansChoisir 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 dansRéseaux > IPAM.
Cliquez surCréer.
Déployer la configuration d’entrée
Vous pouvez déployer la configuration Ingress à partir de Kubernetes à l’aidekubectl
de l’API Kubernetes ou d’autres outils. Vous pouvez également déployer la configuration Ingress directement à partir de Citrix ADM.
Accédez àOrchestration > Kubernetes > Ingresses.
Cliquez surAjouter.
Dans le champCréer une entrée, spécifiez les détails suivants :
Spécifiez le nom de l’entrée.
DansCluster, sélectionnez le cluster Kubernetes sur lequel vous souhaitez déployer une entrée.
Sélectionnez l’espace de noms de clusterdans la liste. Ce champ répertorie les espaces de noms présents dans le cluster Kubernetes spécifié.
Facultatif, sélectionnezAffecter automatiquement l’adresse IP frontend.
SélectionnezIngress Protocoldans la liste. Si vous sélectionnezHTTPS, spécifiezTLS secret.
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
tls.crt
champstls.key
et à inclure respectivement le certificat de serveur et la clé de certificat.Pour le routage de contenu, spécifiez les détails suivants :
URL path: 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éthodeROUNDROBIN, l’annotation Citrix apparaît comme suit :
"lbmethod":"ROUNDROBIN"
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électionnezCOOKIEINSERT, l’annotation Citrix apparaît comme suit :
"persistenceType":"COOKIEINSERT"
Cliquez surAjouterpour ajouter d’autres chemins d’URL et ports à la configuration Ingress.
Après le déploiement, la configuration Ingress redirige le trafic client vers un service spécifique en fonction des éléments suivants :
- Le chemin d’accès et le port de l’URL demandés.
- Méthode LB définie et type de persistance.
Remarque Lesservices
Kubernetes utilisés dans une configuration d’entrée devraient être de type NodePort.
Facultatif, spécifiez unedescription d’entrée.
cliquez surDéployer.
Si vous souhaitez vérifier la configuration avant de déployer, cliquez surGénérer les spécifications d’entrée. La configuration d’entrée spécifiée apparaît au format YAML. Après avoir examiné la configuration, cliquez surDéployer.
RemarqueAppliquer des licences aux serveurs virtuels créés à l’aide des configurations d’entrée. Pour appliquer une licence, effectuez les opérations suivantes :
- Accédez àSystème > Licences et analyses.
- SousRécapitulatif des licences du serveur virtuel, activez lasélection automatique des serveurs virtuels.