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 NetScaler para equilibrar la carga directamente y exponer un servicio en lugar del equilibrador de carga administrado en la nube. NetScaler proporciona esta solución para un servicio de tipo LoadBalancer para entornos 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, asigna la dirección IP y esa dirección IP es la VIP de NetScaler VPX. El controlador NetScaler Ingress, implementado en un clúster de Kubernetes, configura un NetScaler implementado fuera del clúster para equilibrar la carga del tráfico entrante. Por lo tanto, se accede al servicio a través de NetScaler 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.
se usa para asignar automáticamente direcciones IP a servicios de tipo LoadBalancer desde un rango especificado 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 NetScaler VPX y EKS se implementen y ejecuten en la misma VPC. Para obtener información sobre la creación de NetScaler VPX en AWS, consulte Crear una instancia de NetScaler 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.
-
Descarga el archivo unified-lb-values.yaml y modifica el archivo YAML para especificar los siguientes detalles:
-
NSIP de NetScaler VPX. Para obtener más información, consulte el gráfico Helm de NetScaler Ingress Controller.
-
Secreto creado con las credenciales de NetScaler VPX. Para obtener más información, consulte el gráfico Helm de NetScaler Ingress Controller.
-
Lista de VIP que se utilizarán en el controlador IPAM. Para obtener más información, consulte Gráfico Helm de IPAM.
-
-
Implemente un NetScaler Ingress Controller en su clúster de Amazon EKS mediante el archivo YAML editado. 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
-
Implemente la aplicación y el servicio en Amazon EKS:
-
Agrega la siguiente anotación en el manifiesto del servicio:
beta.kubernetes.io/aws-load-balancer-type: "external"
-
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. -
Asocie una dirección IP elástica con el VIP de NetScaler VPX.
-
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.
-
Descargue el archivo citrix-k8s-ingress-controller.yaml y especifique los siguientes detalles.
-
Secreto creado con las credenciales de NetScaler VPX. Para obtener información sobre cómo crear el secreto, consulte Crear un secreto.
-
Especifique el argumento para :
args: - --ipam citrix-ipam-controller
-
Implemente el NetScaler Ingress Controller mediante el YAML modificado.
kubectl create -f citrix-k8s-ingress-controller.yaml
-
Implemente el CRD VIP de NetScaler, que permite la comunicación entre el controlador NetScaler Ingress y el controlador 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 del CRD VIP de NetScaler, consulte Implementarel CRD VIP.
-
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 NetScaler VPX en el campo
VIP_RANGE
del archivo YAML de implementación de IPAM. -
Implemente la aplicación con el tipo de servicio LoadBalancer en Amazon EKS mediante los siguientes pasos:
-
Agrega la siguiente anotación en el manifiesto del servicio.
beta.kubernetes.io/aws-load-balancer-type: "external"
-
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. -
Asocie una dirección IP elástica con el VIP de NetScaler VPX.
-
Acceda a la aplicación mediante un explorador. Por ejemplo:
http://EIP-associated-with-vip
.
-