Harvester HCI en el homeLAB?

Harvester HCI en el homeLAB?

Getting Hands on with Harvester HCI | SUSE Communities

Hace ya 3 años que se liberó al público el proyecto Harvester, inmediatamente vi el anuncio, fui a leer la documentación y estaba muy emocionado de usar la plataforma por el hecho de que está basado en Kubernetes y lo estaba desarrollando Rancher Labs.

Que quiere decir esto, Harvester usa todos los mecanismos disponibles para garantizar que una VM siempre esté disponible. Otros componentes como Longhorn y Kube-VIP hacen que este hypervisor pueda ofrecer almacenamiento y IP en Load Balance. El componente más importante es Kube-Virt.

Personalmente lo más interesante que veo en Harvester es la integración con Rancher. Desde el mánager de Rancher, podemos conectarnos directamente a Harvester. Tenemos un punto central de administración.

Mi experiencia instalando Harvester HCI.

Hace varios años atrás, como la mayoría, cree una VM con varios Gb de RAM y Almacenamiento para instalar y probar la plataforma, inicialmente tenía las limitantes que una versión 0.algo trae. Debito a esto en ese momento el interés no era tan grande como para dedicarle un equipo físico con los recursos necesarios.

Nos movemos al presente y la versión 1.2.1 nos muestra que el equipo detrás de este proyecto no tiene tiempo para perder. Solo fijarse en la lista de funcionalidades. Aunque la parte de “Easy to get started” no aplico en mi caso. En los equipos donde decidí instalar Harvester es un antiguo clúster de vSphere que recibió una mejora (2x HP EC200a remplazados por 2 HP z440).

A black computer keyboard and a cord

Description automatically generated with medium confidence

Especificaciones de los HP EC200a

  • HP Proliant EC200a
  • Intel(R) Xeon(R) CPU D-1518 @ 2.20GHz
  • 64GB de RAM
  • 1x SSD 1.6TB
  • 1x M.2 NVMe 500GB

El inconveniente principal fue al momento de hacer la instalación en un M.2 de 450GB, esta fallaba porque la firma en el UEFI era de VMFS (VMware File System) y el instalador fallaba en borrar el contenido del M.2

A computer screen shot of a computer screen

Description automatically generated

Luego de muchos intentos con fdisk y parted, me tope con una entrada de Github Issue donde describen el problema.

https://github.com/harvester/harvester/issues/2066

Todo esto paso con el segundo nodo que agregue al clúster, actualmente tiene dos nodos. No pude identificar la diferencia entre el primer nodo y el segundo ya que la instalación en el primero fue todo como descrito en el proyecto “Easy to get started”.

Al final de la instalación, podemos acceder al IP (VIP) asignado cuando instalamos el primer nodo, yo recomendaría no dejarlo DHCP. Nos presentará el portal de Harvester y pedirá que creemos la contraseña de admin.

A screenshot of a login box

Description automatically generated

Ya podemos acceder con usuario admin y la contraseña que colocamos en la ventana anterior (no la pude capturar). Los que han usado Rancher verán la similitud del panel de control, al parecer se usó parte del código para crear el panel de Harvester.

A screenshot of a computer

Description automatically generated

Luego de tener Harvester instalado, lo agregue al mánager de Rancher, si no se cuenta con una instalación de Rancher, Harvester trae uno integrado. ¿Porque usaría Rancher y no el panel de control de Harvester?

Si quieres correr contenedores y crear clúster con RKE2, es necesario hacerlo desde Rancher.

Se puede leer más de la integración de Rancher y Harvester en https://docs.harvesterhci.io/v1.2/rancher/index

¿Qué tan fácil se crea un clúster de Kubernetes con Rancher y Harvester?

Muy fácil.

Lo primero que debemos hacer es agregar el clúster (o nodo) de Harvester a Rancher, esto se realiza desde Virtualization Management en Global Apps.

Usamos la opción de importar existente (Import Existing).

A screenshot of a cluster

Description automatically generated

Decidimos como se llamará nuestro clúster, este nombre es exclusivo de Rancher, curioso es que en los pasos de instalación de Harvester y al agregar segundo nodo, no ofrece una opción para asignarle un nombre el clúster.

A screenshot of a computer

Description automatically generated

Ahora tenemos la información necesaria para configurar Harvester.

Una vez está disponible, podemos realizar todas las tareas relacionadas a Harvester desde nuestro Ranchar. Esto nos ahorra tener dos paneles de control abiertos, además de la integración de información de una plataforma a la otra.

A screenshot of a computer

Description automatically generated

Hacemos click en el nombre, en mi caso es harvester-cl-01. En el ejemplo anterior el nombre era diferente, solo para poder guardar la información.

A screenshot of a computer

Description automatically generated

No es mucha la diferencia si accedemos al clúster usando el VIP (Virtual IP) asignado durante la instalación. Una opción interesante es que el portal de Harvester sigue disponible sin importar que esté conectado a Rancher, si nuestro Rancher sufre algún inconveniente, podemos seguir administrando Harvester sin problemas.

Dije que crear el clúster de Kubernetes era fácil, al parecer no. Bueno en realidad si ya tenemos la integración funcionando, solo necesitamos importar una imagen de Ubuntu u otro Linux, y crear las redes correspondientes en Harvester.

En el dashboard principal de Ranchar hacemos click en Crear (Create).

A black screen with blue text

Description automatically generated

Seleccionaremos Harvester como proveedor.

A screenshot of a computer

Description automatically generated

Recomiendo usar RKE2/K3s, esto se consigue seleccionando la opción que podemos ver arriba de Harvester.

Ahora tenemos las opciones para seleccionar cantidad de nodos, versión de Kubernetes y otras opciones que serán aplicadas a nuestro clúster creado en Harvester.

Nota: se puede ver la opción de VMware vSphere, anteriormente había escrito sobre esta integración, es algo antigua pero casi todo aun aplica.

A screenshot of a computer

Description automatically generated

Detalles para tener en cuenta, Image Volume es una imagen normalmente en formato .img, esta debe ser importada en Harvester, una vez tenemos imagen, aquí la podremos seleccionar. Por igual con Networks, deben estar creadas con anticipación.

La mejor manera de tener estos pre-requisitos es crear una VM en Harvester y probar conectividad.

Luego de completar los campos obligatorios, el botón de Crear (Create) estará disponible. Hacemos click y veremos como Rancher solicita las VMs a Harvester.

Listo, muy fácil.

Que bien, ahí está nuestro clúster de Kubernetes, ¡todo verde!
Pero ¿porque hay otro clúster con el mismo nombre que mi Harvester clúster?

Es una nueva función experimental, esta se habilita desde Rancher y nos permitirá crear aplicaciones contenerizadas en el mismo Harvester sin necesidad de clúster adicionales. Jugare bastante con esta opción y tal vez cree una entra describiendo todo lo que se puede hacer.

¡¡¡¡Es suficiente por ahora, dejemos para luego!!!!

Autor: Ariel Antigua

Automation guy with a love for Containers!