Procédures détaillées pour configurer la topologie du maillage de services
Les prérequis pour déployer la topologie du maillage de services sont disponibles dans Configuration du graphique de services.
Configurer les routes statiques dans NetScaler® ADM
Au sein du cluster Kubernetes, tous les pods conteneurisés utilisent un réseau superposé. Il n’est pas possible d’établir la communication directement à l’aide de ces adresses IP privées. Pour permettre la communication entre NetScaler ADM et le cluster Kubernetes, vous devez configurer le routage statique dans NetScaler ADM.
Remarque
Si vous utilisez un agent sur site, assurez-vous de configurer les routes statiques sur l’agent. À l’aide d’un client SSH, connectez-vous à l’agent NetScaler et configurez les routes statiques.
Considérez que vous disposez des adresses IP suivantes pour votre cluster Kubernetes :
-
Maître Kubernetes – 101.xx.xx.112
-
Nœud de travail Kubernetes 1 – 101.xx.xx.111
-
Nœud de travail Kubernetes 2 – 101.xx.xx.110
Sur le maître Kubernetes, exécutez la commande suivante pour identifier le réseau de pods afin d’effectuer le routage statique :
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
Voici un exemple de sortie après l’exécution de la commande :

-
À l’aide d’un client SSH, connectez-vous à NetScaler ADM.
-
Configurez le routage statique à l’aide de la commande
route add -net <plage d'adresses IP publiques> <adresse IP Kubernetes>Par exemple :
route add -net 192.168.0.0/24 101.xx.xx.112route add -net 192.168.1.0/24 101.xx.xx.111route add -net 192.168.2.0/24 101.xx.xx.110 -
Vérifiez la configuration à l’aide de
netstat -rn.
-
Ajoutez ces commandes de route dans le fichier
/mpsconfig/svm.conf.-
Dans NetScaler ADM, accédez au fichier svm.conf à l’aide de la commande suivante :
vim /mpsconfig/svm.conf -
Ajoutez les routes statiques dans le fichier svm.conf.
Par exemple,
route add -net 192.168.0.0/24 101.xx.xx.112.
-
Configurer les paramètres requis
Dans le maître Kubernetes :
-
Créez un secret avec les informations d’identification de l’agent ADM dans chaque espace de noms où CPX est déployé en tant que passerelle d’entrée / sidecar.
kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n <namespace> -
helm repo add citrix https://citrix.github.io/citrix-helm-charts/ -
Déployez le NetScaler CPX en tant que passerelle d’entrée.
helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace <namespace> --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=XX:00:X1:00:XX:0X:X0,ADMSettings.ADMIP=<xx.xx.xx.xx>, ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30Le tableau suivant répertorie les paramètres configurables dans le graphique Helm et leurs valeurs par défaut :
Paramètre Description Valeur par défaut Facultatif/Obligatoire (helm) citrixCPX NetScaler CPX FALSE Obligatoire pour NetScaler CPX xDSAdaptor.image Image du conteneur de l’adaptateur Citrix xDS quay.io/citrix/citrix-istio-adaptor:1.2.1 Obligatoire ADMSettings.ADMIP Adresse IP de NetScaler ADM null Obligatoire pour NetScaler CPX ADMSettings.ADMFingerPrint L’empreinte digitale de NetScaler ADM. Accédez à Paramètres > Administration, puis cliquez sur Afficher l’empreinte digitale sous Configurations système null Facultatif ingressGateway.EULA Conditions générales du Contrat de Licence Utilisateur Final (CLUF). Si oui, l’utilisateur accepte les conditions du CLUF. NO Obligatoire pour NetScaler CPX ingressGateway.image Image de NetScaler CPX désignée pour fonctionner comme passerelle d’entrée quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 Obligatoire pour NetScaler CPX -
Déployez l’injecteur de sidecar Citrix.
helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace <namespace> set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<xx.xx.xx.xx>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30Le tableau suivant répertorie les paramètres configurables dans le graphique Helm et leurs valeurs par défaut :
Paramètre Description Valeur par défaut ADMSettings.ADMIP L’adresse IP de NetScaler ADM NIL cpxProxy.image Image NetScaler CPX utilisée comme proxy sidecar quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 cpxProxy.imagePullPolicy Politique de récupération d’image pour NetScaler IfNotPresent cpxProxy.EULA Conditions générales du Contrat de Licence Utilisateur Final (CLUF). Si oui, l’utilisateur accepte les conditions du CLUF. NO cpxProxy.cpxSidecarMode Variable d’environnement pour NetScaler CPX. Elle indique si NetScaler CPX fonctionne en mode sidecar ou non. YES -
Définissez l’étiquette sur tout espace de noms nécessitant l’injection de sidecar CPX.
kubectl label namespace <app-namespace> cpx-injection=enabledAprès avoir effectué les étapes 3 et 5, vous pouvez voir que le NetScaler CPX est enregistré dans NetScaler ADM.
Déployer une application exemple
Considérez que vous souhaitez déployer les applications suivantes :

Effectuez la procédure suivante pour déployer une application exemple :
-
kubectl create namespace citrix-system -
kubectl create namespace bookinfo -
kubectl label namespace bookinfo cpx-injection=enabled -
kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-systemRemarque
Vous pouvez choisir un nom d’utilisateur et un mot de passe de votre choix.
-
kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfoRemarque
Vous pouvez choisir un nom d’utilisateur et un mot de passe de votre choix.
-
helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace citrix-system --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30Remarque
Vous devez fournir votre empreinte digitale ADM et l’adresse IP de l’agent ADM ou de l’ADM.
-
helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace citrix-system --set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30Remarque
Vous devez fournir votre empreinte digitale ADM et l’adresse IP de l’agent ADM ou de l’ADM.
-
helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system
Ajouter un cluster Kubernetes dans NetScaler ADM
Pour ajouter le cluster Kubernetes :
-
Connectez-vous à NetScaler ADM avec les informations d’identification de l’administrateur.
-
Accédez à Orchestration > Kubernetes > Cluster. La page Clusters s’affiche.
-
Cliquez sur Ajouter.
-
Dans la page Ajouter un cluster, spécifiez les paramètres suivants :
-
Nom - Spécifiez un nom de votre choix.
-
URL du serveur API - Vous pouvez obtenir les détails de l’URL du serveur API à partir du nœud maître Kubernetes.
-
Sur le nœud maître Kubernetes, exécutez la commande
kubectl cluster-info.
-
Saisissez l’URL qui s’affiche pour « Kubernetes master is running at. »
-
-
Jeton d’authentification - Spécifiez le jeton d’authentification. Le jeton d’authentification est requis pour valider l’accès à la communication entre le cluster Kubernetes et NetScaler ADM. Pour générer un jeton d’authentification :
Sur le nœud maître Kubernetes :
-
Utilisez le YAML suivant pour créer un compte de service :
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy--> -
Exécutez
kubectl create -f <yaml file>.Le compte de service est créé.
-
Exécutez
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>pour lier le rôle de cluster au compte de service.Le compte de service dispose désormais d’un accès à l’échelle du cluster.
Un jeton est automatiquement généré lors de la création du compte de service.
-
Exécutez
kubectl describe sa <name>pour afficher le jeton. -
Pour obtenir la chaîne secrète, exécutez
kubectl describe secret <token-name>.
-
-
Sélectionnez l’agent dans la liste.
Remarque
Si vous utilisez un agent ADM, assurez-vous de sélectionner le même agent que celui que vous avez ajouté dans le YAML CPX.
-
Cliquez sur Créer.

-
Activer la sélection automatique des serveurs virtuels pour la licence
Remarque
Assurez-vous de disposer de licences de serveur virtuel suffisantes. Pour plus d’informations, consultez Licences.
Après avoir ajouté le cluster Kubernetes dans NetScaler ADM, vous devez vous assurer de sélectionner automatiquement les serveurs virtuels pour la licence. Les serveurs virtuels doivent être sous licence pour afficher les données dans le graphique de services. Pour sélectionner automatiquement les serveurs virtuels :
-
Accédez à Paramètres > Configuration des licences et de l’analyse.
-
Sous Résumé des licences de serveurs virtuels, activez Sélection automatique des serveurs virtuels et Sélection automatique des serveurs virtuels non adressables.

Activer les paramètres de transaction Web et de transaction TCP
Après avoir ajouté le cluster Kubernetes et activé la sélection automatique des serveurs virtuels, modifiez les Paramètres de transaction Web et les Paramètres de transaction TCP sur Tous.
-
Accédez à Paramètres > Paramètres d’analyse.
La page Paramètres d’analyse s’affiche.
-
Cliquez sur Activer les fonctionnalités pour l’analyse.
-
Sous Paramètres de transaction Web, sélectionnez Tous.
-
Sous Paramètres de transaction TCP, sélectionnez Tous.

-
Cliquez sur OK.
Envoyer du trafic aux microservices
Ensuite, vous devez envoyer du trafic aux microservices pour que le graphique de services soit renseigné dans NetScaler ADM.
-
Déterminez l’adresse IP et le port d’entrée.
export INGRESS_HOST=$(kubectl get pods -l app=citrix-ingressgateway -n citrix-system -o 'jsonpath={.items[0].status.hostIP}')export INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')export SECURE_INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}') -
Accédez à l’application front-end Bookinfo à l’aide de cURL. Le service
productpagedoit renvoyer une réponse 200 OK.curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpagecurl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage -
Visitez
https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpagedepuis un navigateur.La page Bookinfo s’affiche.
-
Assurez-vous que $INGRESS_HOST et $SECURE_INGRESS_PORT sont remplacés par une adresse IP et une valeur de port.
Après avoir envoyé du trafic aux microservices, le graphique de services est renseigné en 10 minutes environ.

À l’aide du graphique de services, vous pouvez analyser divers détails de service tels que les métriques, les erreurs, etc. Pour plus d’informations, consultez Graphique de services.
Dans cet article
- Configurer les routes statiques dans NetScaler® ADM
- Configurer les paramètres requis
- Déployer une application exemple
- Ajouter un cluster Kubernetes dans NetScaler ADM
- Activer la sélection automatique des serveurs virtuels pour la licence
- Activer les paramètres de transaction Web et de transaction TCP
- Envoyer du trafic aux microservices