Ingress Controller de Citrix ADC

Implementar la solución Citrix para el servicio de tipo LoadBalancer en AWS

Un servicio de tipo LoadBalancer es una forma más sencilla y rápida de exponer un microservicio que se ejecuta en un clúster de Kubernetes al mundo externo. En las implementaciones en la nube, cuando creas un servicio de tipo LoadBalancer, se asigna un equilibrador de carga administrado en la nube al servicio. A continuación, el servicio se expone mediante el equilibrador de carga. Para obtener más información sobre los servicios de tipo LoadBalancer, consulte Servicios de tipo LoadBalancer.

Con la solución Citrix para el servicio de tipo LoadBalancer, puede usar Citrix ADC para equilibrar la carga directamente y exponer un servicio en lugar del equilibrador de carga administrado en la nube. Citrix proporciona esta solución para el servicio de tipo LoadBalancer para instalaciones locales y en la nube. Los servicios de tipo LoadBalancer se admiten de forma nativa en implementaciones de Kubernetes en nubes públicas como AWS, GCP y Azure.

Cuando implementa un servicio en AWS, se crea automáticamente un equilibrador de carga y la dirección IP se asigna al campo externo del servicio. En esta solución de Citrix, el controlador IPAM de Citrix asigna la dirección IP y esa dirección IP es el VIP de Citrix ADC VPX. Citrix Ingress Controller, implementado en un clúster de Kubernetes, configura un Citrix ADC implementado fuera del clúster para equilibrar la carga del tráfico entrante. Por lo tanto, se accede al servicio a través de Citrix ADC VPX en lugar del equilibrador de carga en la nube.

Debe especificar el servicio type como LoadBalancer en la definición del servicio. Configurar el campo type para que LoadBalancer aprovisione un equilibrador de carga para su servicio en AWS.

El controlador Citrix IPAM se utiliza para asignar automáticamente direcciones IP a los servicios de tipo LoadBalancer desde un intervalo específico de direcciones IP. Para obtener más información sobre la solución Citrix para servicios de tipo LoadBalancer, consulte Exponer servicios de tipo LoadBalancer.

Puede implementar la solución Citrix para el servicio de tipo LoadBalancer en AWS mediante gráficos Helm o archivos YAML.

Requisitos previos

  • Asegúrese de que se esté ejecutando el clúster de Elastic Kubernetes Service (EKS) versión 1.18 o posterior.
  • Asegúrese de que Citrix ADC VPX y EKS se implementen y ejecuten en la misma VPC. Para obtener información sobre la creación de Citrix ADC VPX en AWS, consulte Crear una instancia de Citrix ADC VPX en AWS Marketplace.

Implementar la solución Citrix para el servicio de tipo LoadBalancer en AWS mediante gráficos Helm

Realice los siguientes pasos para configurar la solución Citrix para el servicio de tipo LoadBalancer mediante gráficos Helm.

  1. Descarga el archivo unified-lb-values.yaml y modifica el archivo YAML para especificar los siguientes detalles:

  2. Implemente el controlador IPAM de Citrix y el controlador de entrada de Citrix en el clúster de Amazon EKS mediante el archivo YAML modificado. Utilice los siguientes comandos:

    helm repo add citrix https://citrix.github.io/citrix-helm-charts/
    
    helm install serviceLB citrix/citrix-cloud-native -f values.yaml
    
  3. Implemente la aplicación y el servicio en Amazon EKS:

    1. Agrega la siguiente anotación en el manifiesto del servicio:

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. Implemente la aplicación y el servicio con la anotación modificada mediante el siguiente comando:

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      Nota: El microservicio guestbook es una muestra utilizada en este procedimiento. Puede implementar una aplicación de su elección. Asegúrese de que el servicio debe ser del tipo LoadBalancer y que el manifiesto del servicio debe contener la anotación.

    3. Asocie una dirección IP elástica con el VIP de Citrix ADC VPX.

    4. Acceda a la aplicación mediante un explorador. Por ejemplo, http://EIP-associated-with-vip.

Implementar la solución Citrix para el servicio de tipo LoadBalancer en AWS mediante YAML

Realice los siguientes pasos para implementar la solución Citrix para el servicio de tipo LoadBalancer mediante YAML.

  1. Descargue el archivo citrix-k8s-ingress-controller.yaml y especifique los siguientes detalles.

    • NSIP de Citrix ADC VPX

    • Secreto creado con las credenciales de Citrix ADC VPX. Para obtener información sobre cómo crear el secreto, consulte Crear un secreto.

    • Especifique el argumento para el controlador de Citrix IPAM:

       args:
         - --ipam
           citrix-ipam-controller
      
  2. Implemente el Citrix Ingress Controller mediante el YAML modificado.

    kubectl create -f citrix-k8s-ingress-controller.yaml
    
  3. Implemente la CRD VIP de Citrix que permite la comunicación entre el Citrix Ingress Controller y el controlador de IPAM mediante el siguiente comando.

    kubectl create -f https://raw.githubusercontent.com/citrix/citrix-k8s-ingress-controller/master/crd/vip/vip.yaml
    

    Para obtener más información sobre la implementación de la CRD VIP de Citrix, consulte Implementar la CRD VIP.

  4. Implemente el controlador de IPAM. Para obtener información sobre la implementación del controlador de IPAM, consulte Implementar el controlador de IPAM.

    Nota:

    Especifique la lista de VIP de Citrix ADC VPX en el campo VIP_RANGE del archivo YAML de implementación de IPAM.

  5. Implemente la aplicación con el tipo de servicio LoadBalancer en Amazon EKS mediante los siguientes pasos:

    1. Agrega la siguiente anotación en el manifiesto del servicio.

      beta.kubernetes.io/aws-load-balancer-type: "external"
      
    2. Implemente la aplicación y el servicio con la anotación modificada mediante el siguiente comando.

      kubectl create -f https://github.com/citrix/citrix-k8s-ingress-controller/blob/master/docs/how-to/typeLB/aws/guestbook-all-in-one-lb.yaml
      

      Nota:

      El microservicio guestbook es una muestra que se utiliza en este procedimiento. Puede implementar una aplicación de su elección. Asegúrese de que el servicio debe ser del tipo LoadBalancer y que el manifiesto del servicio debe contener la anotación.

    3. Asocie una dirección IP elástica con el VIP de Citrix ADC VPX.

    4. Acceda a la aplicación mediante un explorador. Por ejemplo, http://EIP-associated-with-vip.

Implementar la solución Citrix para el servicio de tipo LoadBalancer en AWS