Ingress Controller de Citrix ADC

Gestión del tráfico para servicios externos

A veces, es posible que todos los servicios disponibles de una aplicación no se implementen por completo en un solo clúster de Kubernetes. Es posible que también tenga aplicaciones que dependan de los servicios fuera de un clúster. En este caso, los microservicios deben definir un servicio ExternalName para resolver el nombre de dominio. Sin embargo, en este enfoque, no podrá obtener funciones como la administración del tráfico, la aplicación de directivas, la administración de conmutación por error, etc. Como alternativa, puede configurar Citrix ADC para resolver los nombres de dominio y aprovechar las funciones de Citrix ADC.

Configurar Citrix ADC para llegar a los servicios externos

Puede configurar Citrix ADC como un solucionador de nombres de dominio mediante el Citrix Ingress Controller. Al configurar Citrix ADC como solucionador de nombres de dominio, debe resolver:

  • Accesibilidad de Citrix ADC desde microservicios
  • Resolución de nombres de dominio en Citrix ADC para llegar a servicios externos

Configurar un servicio para la accesibilidad desde el clúster de Kubernetes a Citrix ADC

Para llegar a Citrix ADC desde microservicios, debe definir un servicio sin cabeza que se resolvería en un servicio Citrix ADC y, por lo tanto, se establece la conectividad entre los microservicios y Citrix ADC.

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

Configurar Citrix ADC como una resolución de nombres de dominio mediante el Citrix Ingress Controller

Puede configurar Citrix ADC a través del Citrix Ingress Controller para crear un grupo de servicios basado en dominio mediante la anotación de entrada ingress.citrix.com/external-service. El valor de ingress.citrix.com/external-service es una lista de servicios de nombres externos con sus nombres de dominio correspondientes. Para Citrix ADC VPX, los servidores de nombres se configuran en Citrix ADC mediante ConfigMap.

Nota:

Los ConfigMaps se utilizan para configurar servidores de nombres en Citrix ADC solo para Citrix ADC VPX. Para Citrix ADC CPX, CoreDNS reenvía la solicitud de resolución de nombres al servidor DNS ascendente.

Administración del tráfico mediante Citrix ADC CPX

El siguiente diagrama explica la implementación de Citrix ADC CPX para llegar a los servicios externos. Se implementa un Ingress donde se especifica la anotación de servicio externo para configurar DNS en Citrix ADC CPX.

Nota: Se utiliza un ConfigMap para configurar los servidores de nombres en Citrix ADC VPX.

Administración del tráfico con Citrix ADC CPX

En esta implementación:

  1. Un microservicio envía la consulta DNS para www.externalsvc.com que se resolvería en el servicio Citrix ADC CPX.
  2. Citrix ADC CPX resuelve www.externalsvc.com y llega al servicio externo.

A continuación se presentan los pasos para configurar Citrix ADC CPX para equilibrar la carga de los servicios externos:

  1. Defina un servicio headless para llegar a Citrix ADC.

    apiVersion: v1
    kind: Service
    metadata:
      name: external-svc
    spec:
      selector:
        app: cpx
      ports:
        - protocol: TCP
          port: 80
    
  2. Defina una entrada y especifique la anotación de servicio externo como se especifica en el archivo dbs-ingress.yaml. Cuando especifica esta anotación, el Citrix Ingress Controller crea servidores DNS en Citrix ADC y vincula los servidores al grupo de servicios correspondiente.

        annotations:
          ingress.citrix.com/external-service: '{"external-svc": {"domain": "www.externalsvc.com"}}'
    
  3. Agregue la dirección IP del servidor DNS en Citrix ADC mediante ConfigMap.

    Nota:

    Este paso solo se aplica a Citrix ADC VPX.

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: nameserver-cmap
      namespace: default
    data:
      NS_DNS_NAMESERVER: '[]'
    <!--NeedCopy-->
    
Gestión del tráfico para servicios externos