Procédures détaillées pour configurer une topologie à deux niveaux ou un maillage de services léger

Exigences logicielles

Distribution Kubernetes Version Kubernetes Interfaces réseau de conteneur (CNI) Version CPX Version CIC Version de NetScaler Console Version de l’agent NetScaler
Open source v1.16.3 Flannel 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

Avant de commencer

Vous pouvez afficher le graphique de service à l’aide des scénarios suivants :

  • NetScaler Console et cluster Kubernetes sur le même réseau (par exemple, NetScaler Console et cluster Kubernetes hébergés sur Citrix Hypervisor).

  • NetScaler Console et cluster Kubernetes sur un réseau différent. Dans ce scénario, vous devez configurer un agent sur site et enregistrer l’agent sur le réseau où le cluster Kubernetes est hébergé.

Pour utiliser le graphique de service dans NetScaler Console, assurez-vous d’avoir :

Exigences logicielles

Distribution Kubernetes Version Kubernetes Interfaces réseau de conteneur (CNI) Version CPX Version CIC Version de NetScaler Console Version de l’agent NetScaler
Open source v1.16.3 Flannel 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

Avant de commencer

Vous pouvez afficher le graphique de service à l’aide des scénarios suivants :

  • NetScaler Console et cluster Kubernetes sur le même réseau (par exemple, NetScaler Console et cluster Kubernetes hébergés sur Citrix Hypervisor).

  • NetScaler Console et cluster Kubernetes sur un réseau différent. Dans ce scénario, vous devez configurer un agent sur site et enregistrer l’agent sur le réseau où le cluster Kubernetes est hébergé.

Pour utiliser le graphique de service dans NetScaler Console, assurez-vous d’avoir :

Configurer des routes statiques dans NetScaler Console

À l’intérieur du cluster Kubernetes, tous les pods conteneurisés utilisent un réseau de superposition. L’établissement de la communication à l’aide de ces adresses IP privées directement n’est pas possible. Pour permettre la communication de NetScaler Console vers le cluster Kubernetes, vous devez configurer le routage statique dans NetScaler Console.

Remarque

Si vous utilisez un agent sur site, assurez-vous de configurer des 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 avez les 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 :

Exemple de commande

  1. À l’aide d’un client SSH, connectez-vous à NetScaler Console.

  2. 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.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

  3. Vérifiez la configuration à l’aide de netstat -rn.

    Routage statique

  4. Ajoutez ces commandes de route dans le fichier /mpsconfig/svm.conf.

    1. Dans NetScaler Console, accédez au fichier svm.conf à l’aide de la commande suivante :

      vim /mpsconfig/svm.conf

    2. Ajoutez les routes statiques dans le fichier svm.conf.

      Par exemple, route add -net 192.168.0.0/24 101.xx.xx.112.

Télécharger les fichiers de déploiement d’exemple depuis GitHub

  1. Utilisez la commande git clone https://github.com/citrix/citrix-k8s-ingress-controller.git pour cloner le référentiel GitHub sur le nœud maître.

  2. Pour accéder aux fichiers YAML :

    cd citrix-k8s-ingress-controller/example/servicegraph-demo/

Ajouter des paramètres dans le fichier YAML CPX

Remarque

Si vous utilisez CPX 58.x ou une version ultérieure, vous devez utiliser le mot de passe non-nsroot lors de l’enregistrement auprès de l’agent. Pour des raisons de sécurité, les versions 61.x ou ultérieures de l’agent NetScaler nécessitent un changement de mot de passe obligatoire. Si votre agent NetScaler est mis à niveau vers la version 61.x ou une version plus récente, vous devez vous assurer d’utiliser la version CPX 58.x ou ultérieure.

Vous devez inclure les paramètres suivants dans le fichier cpx.yaml pour assurer l’enregistrement du CPX auprès de NetScaler Console :

-  name: "NS_MGMT_SERVER"
  value: "xx.xx.xx.xx"
-  name: "NS_MGMT_FINGER_PRINT"
  value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
-  name: "NS_HTTP_PORT"
  value: "9080"
-  name: "NS_HTTPS_PORT"
  value: 9443"
-  name: "NS_MGMT_USER"
  value: "nsroot"
-  name: "NS_MGMT_PASS"
  value: <your password>
-  name: "LOGSTREAM_COLLECTOR_IP"
  value: "xx.xx.xx.xx"

<!--NeedCopy-->
  • NS_MGMT_SERVER – Indique l’adresse IP de NetScaler Console.

    Remarque

    Si un agent est utilisé, cela indique l’adresse IP de l’agent.

  • NS_MGMT_FINGER_PRINT – Indique l’authentification pour CPX dans NetScaler Console. Pour obtenir l’empreinte numérique :

    1. Dans NetScaler Console, accédez à Paramètres > Administration.

    2. Sous Configurations système, cliquez sur Afficher l’empreinte ADM.

      Empreinte numérique

      Remarque :

      Si vous avez configuré un agent sur site, accédez à Infrastructure > Instances > Agents, sélectionnez l’agent, puis cliquez sur Afficher l’empreinte numérique.

      Agent d'empreinte numérique

  • NS_HTTP_PORT – Indique le port HTTP pour la communication.

  • NS_HTTPS_PORT – Indique le port HTTPS pour la communication.

  • NS_MGMT_USER - Indique le nom d’utilisateur.

  • NS_MGMT_PASS - Indique le mot de passe. Spécifiez un mot de passe de votre choix.

  • LOGSTREAM_COLLECTOR_IP – Indique l’adresse IP de l’agent NetScaler, où le protocole Logstream doit être activé pour transférer les données de journal de CPX vers NetScaler Console.

Ajouter une instance VPX ou SDX ou MPX ou BLX dans NetScaler Console

Pour obtenir les analyses d’instance NetScaler de niveau 1 dans le graphique de service, vous devez ajouter l’instance VPX/SDX/MPX/BLX dans NetScaler Console et activer Web Insight.

  1. Accédez à Infrastructure > Instances > NetScaler.

  2. Cliquez sur l’option Ajouter pour ajouter l’instance. Pour plus d’informations, consultez Ajouter des instances dans NetScaler Console.

  3. Après avoir ajouté l’instance, sélectionnez le serveur virtuel et activez Web Insight. Pour plus d’informations, consultez Gérer les licences et activer les analyses sur les serveurs virtuels.

Ajouter un cluster Kubernetes dans NetScaler Console

Pour ajouter le cluster Kubernetes :

  1. Connectez-vous à NetScaler Console 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 - Spécifiez 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 maître Kubernetes.

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

        URL du serveur API

      2. Saisissez l’URL qui s’affiche pour « Kubernetes master is running at. »

    3. 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 Console. Pour générer un jeton d’authentification :

      Sur le nœud maître Kubernetes :

      1. Utilisez le fichier YAML suivant pour créer un compte de service :

        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
        <!--NeedCopy-->
        
      2. Exécutez kubectl create -f <yaml file>.

        Le compte de service est créé.

      3. 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 a maintenant un accès à l’échelle du cluster.

        Un jeton est automatiquement généré lors de la création du compte de service.

      4. Exécutez kubectl describe sa <name> pour afficher le jeton.

      5. Pour obtenir la chaîne secrète, exécutez kubectl describe secret <token-name>.

        Générer un jeton

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

      Remarque

      Si vous utilisez un agent sur site, assurez-vous de sélectionner le même agent que celui que vous avez ajouté dans le fichier YAML CPX.

    5. Cliquez sur Créer.

      Ajouter un cluster

Déployer une application de microservice d’exemple

Sur le nœud maître :

  1. Exécutez kubectl create -f namespace.yaml pour créer un espace de noms.

  2. Déployez les microservices hotdrink, l’entrée et les secrets à l’aide des commandes suivantes :

    kubectl create -f team_hotdrink.yaml -n sg-demo

    kubectl create -f hotdrink-secret.yaml -n sg-demo

Déployer CPX et enregistrer CPX dans NetScaler Console

  1. Exécutez kubectl create -f rbac.yaml pour déployer le rôle de cluster et la liaison de cluster.

  2. Exécutez kubectl create -f cpx.yaml -n sg-demo pour déployer CPX.

Après le déploiement, l’enregistrement du CPX est effectué automatiquement.

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 Console, 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 service. Pour sélectionner automatiquement les serveurs virtuels :

  1. Accédez à Paramètres > Configuration des licences et des analyses.

  2. Sous Résumé des licences de serveurs virtuels, activez Sélection automatique des serveurs virtuels et Sélection automatique des serveurs virtuels non adressables.

    Sélection automatique du serveur virtuel

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.

  1. Accédez à Paramètres > Paramètres d’analyse.

    La page Paramètres d’analyse s’affiche.

  2. Cliquez sur Activer les fonctionnalités pour l’analyse.

  3. Sous Paramètres de transaction Web, sélectionnez Tous.

  4. Sous Paramètres de transaction TCP, sélectionnez Tous.

    TCP

  5. Cliquez sur OK.

Envoyer du trafic aux microservices

Ensuite, vous devez envoyer du trafic aux microservices pour que le graphique de service soit renseigné dans NetScaler Console.

  1. Exécutez kubectl get svc -n sg-demo pour exposer CPX via NodePort.

    NodePort

  2. Modifiez le fichier etc/host et créez une entrée IP de domaine pour hotdrink.beverages.com.

    Vous pouvez maintenant accéder au microservice à l’aide de https://hotdrink.beverages.com.