Esta nueva versión tiene como novedad más importante la posibilidad de crear un cluster con el fin de proporcionar tolerancia a fallos a nivel de servicio. En esta entrada te explico como configurarlo.
Como vinos en la entrada anterior dedicada a las novedades de Horizon Cloud Connector 2.0, esta versión además de ofrecer alta disponibilidad (HA) proporcionada por vSphere, incorpora tolerancia a fallos a nivel de servicio, lo que permite crear un clúster compuesto por un nodo principal y un nodo de trabajo. Esto es fundamental para asegurar que el acceso a Horizon Cloud Service y al Universal Broker no se vean afectados por un fallo del conector.
Nodo principal.
El nodo principal ejecuta los servicios de plano de control necesarios para administrar el clúster y también ejecuta la instancia principal de los siguientes servicios:
- Servicios de aplicación de Horizon Cloud Connector cluster:
- Servicio de cliente de Connector
- Servicio de proxy de nube
- Servicio de proxy de Connection Server
- Servicio de Cloud Broker Client Service (CBCS).
- Servicio de supervisión de Connection Server (CSMS).
- Servicio de ubicación de imágenes (ILS).
Nodo de trabajo.
El nodo de trabajo ejecuta instancias de réplica de los siguientes servicios:
- Servicios de aplicación de Horizon Cloud Connector cluster:
- Servicio de proxy de nube
- Servicio de cliente de Connector
- Servicio de proxy de Connection Server
En esta nueva versión, el nodo de trabajo solo admite instancias de réplica de los servicios de aplicación de Horizon Cloud Connector. Todos los demás servicios, incluidos CBCS, CSMS, ILS y los servicios de administración de clústeres, se ejecutan como una sola instancia en el nodo principal y dejan de estar disponibles si se produce un error en esa única instancia.
Preparación del entorno.
Para crear un cluster de Horizon Cloud Connector de dos nodos primero es necesario desplegar un nodo de trabajo y agregarlo al clúster que contiene el nodo principal.
1º Vamos a partir de un entorno que ya tiene instalado el nodo principal (PHZCONNECTOR01) y que ha sido desplegado como se indica en esta entrada anterior.
2º El siguiente paso es desplegar un nuevo Horizon Cloud Connector (PHZCONNECTOR02) , pero esta vez deberemos indicar en el asistente de configuración que es un nodo de trabajo.
3º Una vez desplegada la OVA, es necesario conectarse a la consola de la VM desde vCenter para habilitar el acceso SSH de la cuenta ccadmin.
4º Iniciar sesión como root
5º Ejecutar el siguiente comando para establecer una nueva password:
Ejecutar > passwd ccadmin
6º Habilitar el acceso SSH ejecutando el siguiente comando:
Ejecutar > /opt/vmware/bin/configure-adapter.py –sshEnable
7º El procedimiento recomendado para conectarse al appliance es utilizar una clave privada. Si queremos habilitar SSH para utilizar este método de autenticación, debemos generar una clave privada desde powershell:
Ejecutar > ssh-keygen
8º Copiar la clave publica al nuevo appliance:
Ejecutar > type C:\Users\VMWAdmin\.ssh\id_rsa.pub | ssh [email protected] «cat >> .ssh/authorized_keys»
Creación del cluster.
1º Configurar el cluster ejecutando el siguiente comando desde el nodo primario, la IP es la del nodo de trabajo.
Ejecutar > /opt/vmware/sbin/primary-cluster-config.sh -as 192.168.1.128
2ª Una vez que el comando finalice, debemos copiar la última línea, los dos últimos valores son IDs que se generaran tras la instalación:
Copiar > /opt/vmware/sbin/worker-cluster-config.sh -a 192.168.1.127 159rda.lvzxb0i0pbadct4v 992f534e9e0906074478105058b78f833e8d8123a815fdffea1dd38303843478
3º Seguidamente hay que conectarse al nodo de trabajo y ejecutar el comando copiado anteriormente para añadir el nodo de trabajo al clúster:
4ª Si el proceso es correcto, el nodo se habrá agregado:
5ª Finalmente comprobaremos que el clúster se ha creado correctamente ejecutando el siguiente comando:
Ejecutar > kubectl get nodes -o wide
6º También podemos comprobar el estado del clúster desde la consola de Horizon Cloud Connector.
Troubleshooting.
Os dejo algunos comandos interesantes a la hora de comprobar posibles errores en el despliegue y la configuración.
Comprobar la conectividad para descartar problemas de salida a internet y proxy ejecutando los siguientes comandos desde el appliance:
SERVICEIP=$(kubectl get service hze-hydraproxy -n hze-system -o jsonpath='{ .spec.clusterIP }’)
curl -I «http://$SERVICEIP:8080/api/login»
La respuesta tendría que ser: HTTP/1.1 200 OK
curl -I «http://$SERVICEIP:8080/view-onboarding/»
La respuesta tendria que ser: HTTP/1.1 200 OK
curl -Ik » https://localhost/view-onboarding/»
La respuesta tendría que ser: HTTP/1.1 200 OK
NGINXIP=$(kubectl get service hze-nginx -n hze-system -o jsonpath='{ .spec.clusterIP }’)
curl -Ik «https://$NGINXIP:11443/view-onboarding/»
La respuesta tendría que ser: HTTP/1.1 200 OK
Comprobar la conectividad con Horizon Connection Server desde el appliance:
curl -ik https://{CS-HOST-NAME}/view-vlsi/rest/v1/domain/list
La respuesta tendría que ser: HTTP/1.1 200 OK
Comprobar que los servicios están levantados:
watch -n 10 kubectl get pods -n hze-system
En todos los servicios, el valor Ready tendría que ser 2/2 y el estatus «Running»
Reiniciar los servicios:
kubectl delete pods –all -n hze-system
Como siempre, te dejo los enlaces a la documentación oficial
Guia de Horizon Cloud Connector
Troubleshooting Horizon Cloud Connector Connectivity Issues (79859)
Y si te gusto esta entrada, te invito a compartir la información.