Procédures détaillées pour configurer la topologie de maillage de service
Les conditions préalables au déploiement de la topologie du maillage de service sont disponibles sur Configuration du graphe de service.
Configuration de l’agent NetScaler
Pour activer la communication entre le cluster Kubernetes et la console NetScaler, vous devez installer et configurer un agent. Vous pouvez configurer un agent à l’aide d’un hyperviseur, de services de cloud public (tels que Microsoft Azure, AWS) ou d’un agent intégré disponible sur les instances NetScaler (idéal pour les déploiements HA).
Suivez la procédure pour configurer un agent.
Remarque
Vous pouvez également utiliser un agent existant.
Par défaut, les agents sont automatiquement mis à niveau vers la dernière version de NetScaler Console. Vous pouvez consulter les détails de l’agent sur la page Infrastructure > Instances > Agents . Vous pouvez également spécifier l’heure à laquelle vous souhaitez que les mises à niveau des agents aient lieu. Pour plus d’informations, voir Configuration des paramètres de mise à niveau des agents.
Configurer des itinéraires statiques dans l’agent
À l’intérieur du cluster Kubernetes, tous les pods conteneurisés utilisent un réseau de superposition. Il n’est pas possible d’établir la communication en utilisant directement ces adresses IP privées. Pour activer la communication entre la console NetScaler et le cluster Kubernetes, vous devez configurer le routage statique dans l’agent.
Considérez que vous disposez des adresses IP suivantes pour votre cluster Kubernetes :
-
Kubernetes master – 101.xx.xx.112
-
Kubernetes worker 1 – 101.xx.xx.111
-
Kubernetes worker 2 – 101.xx.xx.110
Sur le maître Kubernetes, exécutez la commande suivante pour identifier le réseau de pod pour 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 :
Après avoir configuré un agent avec succès :
-
À l’aide d’un client SSH, connectez-vous à l’agent
-
Tapez
shell
et appuyez sur Entrée pour passer àbash
-
Configurez le routage statique à l’aide de la commande
route add -net <public IP address range> <Kubernetes IP address>
Par exemple :
route add -net 192.168.0.0/24 101.xx.xx.112
route add -net 192.168.1.0/24 101.xx.xx.111
route add -net 192.168.2.0/24 101.xx.xx.110
-
Vérifiez la configuration à l’aide de
netstat -rn
-
Ajoutez ces commandes de routage dans
/mpsconfig/svm.conf
le fichier.-
Dans l’agent, 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 dans chaque espace de noms où CPX en tant que passerelle d’entrée/side-car est déployé.
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.30
Le tableau suivant répertorie les paramètres configurables du graphique Helm et ses valeurs par défaut :
Paramètre Description Valeur par défaut Facultatif/Obligatoire (barre) citrixCPX NetScaler CPX FAUX Obligatoire pour NetScaler CPX xDSAdaptor.image Image du conteneur de l’adaptateur XDS Citrix quay.io/citrix/citrix-istio-adaptor:1.2.1 Mandatory ADMSettings.ADMIP Adresse IP de la console NetScaler null Obligatoire pour NetScaler CPX ADMSettings.ADMFingerPrint Empreinte digitale de la console NetScaler. Accédez à Infrastructure > Instances > Agents, sélectionnez l’agent et cliquez sur Afficher l’empreinte null Facultatif ingressGateway.EULA Conditions générales du Contrat de Licence Utilisateur Final (CLUF). Si oui, l’utilisateur accepte les termes et conditions du CLUF. NON Obligatoire pour NetScaler CPX ingressGateway.image Image de NetScaler CPX désigné pour s’exécuter en tant que passerelle d’entrée quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 Obligatoire pour NetScaler CPX -
Déployez l’injecteur Citrix SidEcar.
helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --version 1.2.1 --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.30
Le tableau suivant répertorie les paramètres configurables du graphique Helm et ses valeurs par défaut :
Paramètre Description Valeur par défaut ADMSettings.ADMIP Adresse IP de la console NetScaler NIL cpxProxy.image Image NetScaler CPX utilisée comme proxy sidecar quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 cpxProxy.imagePullPolicy Stratégie d’extraction d’images pour NetScaler IfNotPresent cpxProxy.EULA Conditions générales du Contrat de Licence Utilisateur Final (CLUF). Si oui, l’utilisateur accepte les termes et conditions du CLUF. NON cpxProxy.cpxSidecarMode Variable d’environnement pour NetScaler CPX. Cela indique que NetScaler CPX s’exécute en mode sidecar ou non. OUI -
Définissez l’étiquette sur n’importe quel espace de noms qui requiert CPX Sidecar Injection.
kubectl label namespace <app-namespace> cpx-injection=enabled
Après avoir effectué les étapes 3 et 5, vous pouvez voir que le NetScaler CPX est enregistré dans la console NetScaler.
Déployer un exemple d’application
Considérez que vous souhaitez déployer les applications suivantes :
Effectuez la procédure suivante pour déployer un exemple d’application :
-
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-system
Remarque
Vous pouvez donner 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 bookinfo
Remarque
Vous pouvez donner 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.30
Remarque
Vous devez fournir l’empreinte digitale de votre console NetScaler et l’adresse IP de l’agent
-
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.30
Remarque
Vous devez fournir l’empreinte digitale de votre console NetScaler et l’adresse IP de l’agent
-
helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system
Ajouter un cluster Kubernetes dans la console NetScaler
Pour ajouter le cluster Kubernetes :
-
Connectez-vous à la console NetScaler à l’aide des informations d’identification de l’administrateur.
-
Accédez à Infrastructure > Orchestration> Kubernetes > Cluster. La page Clusters s’affiche.
-
Cliquez sur Ajouter.
-
Dans la page Ajouter un cluster, spécifiez les paramètres suivants :
-
Nom - Indiquez un nom de votre choix.
-
URL du serveur API : vous pouvez obtenir les détails de l’URL du serveur d’API à partir du nœud Kubernetes Master.
-
Sur le nœud maître Kubernetes, exécutez la commande
kubectl cluster-info
. -
Entrez l’URL qui s’affiche pour « Kubernetes master is runningat ».
-
-
Jeton d’authentification : spécifiez le jeton d’authentification. Le jeton d’authentification est requis pour valider l’accès aux communications entre le cluster Kubernetes et la console NetScaler. 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.
-
Courez
kubectl describe sa <name>
pour voir le jeton. -
Pour obtenir la chaîne secrète, exécutez
kubectl describe secret <token-name>
.
-
-
Sélectionnez l’agent dans la liste.
Remarque
Assurez-vous de sélectionner le même agent que vous avez ajouté dans le YAML CPX.
-
Cliquez sur Créer.
-
Activer la sélection automatique des serveurs virtuels pour les licences
Remarque
Assurez-vous d’avoir suffisamment de licences de serveur virtuel. Pour plus d’informations, voir Licences
Après avoir ajouté un cluster Kubernetes dans NetScaler Console, vous devez vous assurer de sélectionner automatiquement les serveurs virtuels pour les licences. Les serveurs virtuels doivent être sous licence pour afficher les données dans Service Graph. Pour sélectionner automatiquement des serveurs virtuels :
-
Accédez à Paramètres > Configuration des licences et des analyses de la console NetScaler .
-
Sous Récapitulatif des licences du serveur virtuel, activez la sélection automatique des serveurs virtuelset la sélection automatique des serveurs virtuels non adressables.
Activer les paramètres Transaction Web et TCP
Après avoir ajouté le cluster Kubernetes et activé les serveurs virtuels de sélection automatique, modifiez les paramètres de transaction Web et Paramètres de transactions TCP sur Tous.
-
Accédez à Paramètres > Paramètres d’analyse .
La page Paramètres s’affiche.
-
Cliquez sur Activer les fonctionnalités pour Analytics.
-
Sous Paramètres de transaction Web, sélectionnez Tout.
-
Sous Paramètres des transactions TCP, sélectionnez Tout.
-
Cliquez sur OK.
Envoyer du trafic vers les microservices
Ensuite, vous devez envoyer du trafic vers des microservices pour que le graphique de service soit renseigné dans NetScaler Console.
-
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 frontale Bookinfo à l’aide de curl. Le service
productpage
doit retourner une réponse 200 OK.curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage
-
Visitez
https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
à partir d’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 vers des microservices, le graphique de service est renseigné approximativement en 10 minutes.
À l’aide du graphique de service, vous pouvez analyser divers détails de service tels que des mesures, des erreurs, etc. Pour plus d’informations, reportez-vous à la section Graphique de service.
Dans cet article
- Configuration de l’agent NetScaler
- Configurer des itinéraires statiques dans l’agent
- Configurer les paramètres requis
- Déployer un exemple d’application
- Ajouter un cluster Kubernetes dans la console NetScaler
- Activer la sélection automatique des serveurs virtuels pour les licences
- Activer les paramètres Transaction Web et TCP
- Envoyer du trafic vers les microservices