Contrôleur d'entrée Citrix ADC

Gestion du trafic pour les services externes

Parfois, tous les services disponibles d’une application peuvent ne pas être complètement déployés sur un seul cluster Kubernetes. Vous pouvez également avoir des applications qui dépendent des services extérieurs à un cluster. Dans ce cas, les microservices doivent définir un service ExternalName pour résoudre le nom de domaine. Toutefois, dans cette approche, vous ne pourrez pas obtenir de fonctionnalités telles que la gestion du trafic, l’application des stratégies, la gestion du basculement, etc. Vous pouvez également configurer Citrix ADC pour résoudre les noms de domaine et tirer parti des fonctionnalités de Citrix ADC.

Configurez Citrix ADC pour atteindre des services externes

Vous pouvez configurer Citrix ADC en tant que résolveur de noms de domaine à l’aide du Citrix ingress controller. Lorsque vous configurez Citrix ADC en tant que résolveur de noms de domaine, vous devez résoudre les problèmes suivants :

  • Accessibilité de Citrix ADC à partir de microservices
  • Résolution du nom de domaine sur Citrix ADC pour atteindre des services externes

Configurer un service pour l’accessibilité du cluster Kubernetes vers Citrix ADC

Pour atteindre Citrix ADC à partir de microservices, vous devez définir un service headless qui serait résolu en un service Citrix ADC et donc la connectivité entre les microservices et Citrix ADC s’établit.

apiversion: v1
kind: Service
metadata: 
  name: external-svc
spec:
  selector:
    app: cpx
  ports:
    - protocol: TCP
      port: 80

Configurez Citrix ADC en tant que résolveur de noms de domaine à l’aide du Citrix ingress controller

Vous pouvez configurer Citrix ADC via Citrix ingress controller pour créer un groupe de services basé sur le domaine à l’aide de l’annotation d’entrée ingress.citrix.com/external-service. La valeur de ingress.citrix.com/external-service est une liste de services de noms externes avec leurs noms de domaine correspondants. Pour Citrix ADC VPX, les serveurs de noms sont configurés sur Citrix ADC à l’aide de ConfigMap.

Remarque :

Les ConfigMaps sont utilisés pour configurer des serveurs de noms sur Citrix ADC uniquement pour Citrix ADC VPX. Pour Citrix ADC CPX, CoreDNS transmet la demande de résolution de nom au serveur DNS en amont.

Gestion du trafic à l’aide de Citrix ADC CPX

Le schéma suivant explique le déploiement de Citrix ADC CPX pour atteindre des services externes. Une entrée est déployée où l’annotation de service externe est spécifiée pour configurer DNS sur Citrix ADC CPX.

Remarque : Un ConfigMap est utilisé pour configurer les serveurs de noms sur Citrix ADC VPX.

Gestion du trafic avec Citrix ADC CPX

Dans ce déploiement :

  1. Un microservice envoie la requête DNS pour www.externalsvc.com qui serait résolue au service Citrix ADC CPX.
  2. Citrix ADC CPX résout www.externalsvc.com et atteint le service externe.

Voici les étapes à suivre pour configurer Citrix ADC CPX pour équilibrer la charge des services externes :

  1. Définissez un service headless pour atteindre Citrix ADC.

    apiVersion: v1
    kind: Service
    metadata:
      name: external-svc
    spec:
      selector:
        app: cpx
      ports:
        - protocol: TCP
          port: 80
    
  2. Définissez une entrée et spécifiez l’annotation de service externe comme indiqué dans le fichier dbs-ingress.yaml . Lorsque vous spécifiez cette annotation, le Citrix ingress controller crée des serveurs DNS sur Citrix ADC et lie les serveurs au groupe de services correspondant.

        annotations:
          ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
    
  3. Ajoutez l’adresse IP du serveur DNS sur Citrix ADC à l’aide de ConfigMap.

    Remarque :

    Cette étape s’applique uniquement à Citrix ADC VPX.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nameserver-cmap
      namespace: default
    data:
      NS_DNS_NAMESERVER: '[]'
    <!--NeedCopy-->
    
Gestion du trafic pour les services externes