¡Participa de la Maratón Behind the Code, la competencia de programación más desafiante! Inscríbete aqui

Creando un cluster de OpenShift en Satellite

Introducción

En este tutorial aprenderemos a crear clústeres de Red Hat OpenShift en una ubicación de IBM Cloud Satellite y utilizar los hosts de su propia infraestructura que ha añadido a su ubicación como nodos trabajadores del clúster. Luego desplegaremos alli una aplicación sencilla, «Hola Mundo».

Pre-requisitos

Contar con una cuenta pago por uso en IBM Cloud.
Instalar la CLI de IBM Cloud.
Instalar la CLI de Openshift.

Tiempo estimado: 3hs

Creando hosts

Para este tutorial utilizaremos al menos 4 máquinas virtuales de infraestructura clásica, estas serán los host de mi Satellite Location, cabe destacar que también podríamos utilizar nuestra propia infraestructura on premise o en otra nube.

1 – Ingresamos en cloud.ibm.com e iniciamos sesión

Inicio de sesión en IBM Cloud

2 – En el dashboard principal tocaremos en crear recurso

Dashboard principal de IBM Cloud

3 – Buscaremos «Virtual Server for Classic» y tocaremos ese servicio

Sitio IBM Cloud Products

Sitio Virtual Server Instance

4 – Crearemos 4 servidores virtuales con la siguiente configuración:

  • Tipo: Public
  • Quantity: 4
  • Billing: Hourly
  • Location: Dallas 13 (podemos elegir la que querramos)
  • Profile: 4 vCPU y 16GB RAM como minimo

Configuración del Virtual Server

  • SO: Red Hat Enterprise Linux 7.x – Minimal Install (64 bit) –> Es muy importante elegir la versión 7.x

Seleccionar RedHat

  • 100GB de Storage como mínimo

Seleccionar Attached Storage Disks

  • Creamos el servicio

Creando el Servicio

  • Por último, si vamos a nuestra lista de recursos, veremos los servidores creados y disponibles al cabo de unos 5 minutos

Lista de Servicios

Ya tenemos los hosts listos para crear la Satellite Location!

Creando la Satellite Location

1 – Buscamos en el catálogo «Satellite»

Búsqueda de Satellite

2 – Ahora tocaremos donde dice «Create Satellite Location»

Crear una Satellite Location

Elegiremos la opción «Manual Setup», luego seteamos el nombre de la locación, nombres de las zonas y desde donde los gestionaremos (Washington DC en nuestro caso). Por último, tocamos en «Create location»

Configurar la Satellite Location

3 – Ahora pasaremos a adjuntar los hosts creados a nuestra satellite location.

Aclaración: Este proceso debe realizarse para cada Host (4 en este caso)
El proceso de configuración inicial de Satellite se detalla a continuación:

Diagrama de creación del Satellite

3.1 – Luego de ya haber creado los Host debemos obtener el script de registro para adjuntar hosts a su ubicación de IBM Cloud Satellite.
$ ibmcloud sat host attach --location <nombre_ubicación_o_ID>

Aclaración: En cada caso, reemplazar por nuestros datos lo que está entre <>. Por ejemplo:

Código de configuración del Satellite

3.2 – Recupere la dirección IP y el ID de su máquina.

$ ibmcloud sl vs list

3.3 – Recupere las credenciales para iniciar sesión en su máquina virtual.

$ ibmcloud sl vs credentials <vm_ID>

3.4 – Copie el script de su máquina local a la instancia del servidor virtual.

$ scp <ruta_a_attachHost.sh> root@<dirección_ip>:/tmp/attach.sh

3.5 – Inicie sesión en su máquina virtual. Si se le solicita, ingrese la contraseña que recuperó anteriormente.

$ ssh root@<dirección_ip>

3.6 – Actualice los paquetes de Red Hat en su máquina.

$ subscription-manager refresh

3.7 – Active los repositorios

$ subscription-manager repos --enable=*

3.8 – Ejecute el script de registro en su máquina. Esto demorara unos minutos.

$ nohup bash /tmp/attach.sh &

3.9 – Supervise el progreso del script de registro. (No es necesario pero se recomienda hacerlo para ver que el comando anterior esté funcionando)

$ journalctl -f -u ibm-host-attach

3.10 – Salga de la sesión SSH.

$ exit

3.11 – Verifique que sus hosts se muestren en la pestaña Hosts de su consola Satellite. Todos los hosts muestran un estado de salud de Listo cuando se puede establecer una conexión con la máquina y un estado de No asignado, ya que los hosts aún no están asignados a su plano de control de ubicación de satélite o un clúster de Red Hat OpenShift en IBM Cloud.

3.12 – Asigne sus hosts al plano de control de satélite o un clúster de Red Hat OpenShift on IBM Cloud.

Configurar el plano de control

Utilice el panel de control de Satellite para configurar un plano de control para su ubicación.

Antes de que empieces:

Conecte al menos 6 hosts (o 3 hosts solo con fines de demostración) a su ubicación para usarlos como nodos de trabajo para su plano de control de satélite. Verifique que su ubicación esté en un estado de Acción requerida.

Para adjuntar hosts como nodos trabajadores al plano de control:

1 – Desde el panel de Ubicaciones de satélites, seleccione la ubicación donde desea finalizar la configuración de su plano de control.
2 – En la pestaña Hosts, seleccione los hosts para asignar como nodos trabajadores a su plano de control. Todos los hosts deben estar en estado Sin asignar.
3 – En el menú de acciones de cada host, haga clic en Asignar host.

Seleccionar Asignar Host

4 – Seleccione el host que utilizara para su clúster.
5 – Asigne hosts en grupos de 3 de manera uniforme al grupo del plano de control. Para una alta disponibilidad, asegúrese de que sus hosts correspondan a zonas físicamente separadas en su proveedor de infraestructura. Por ejemplo, si su proveedor de infraestructura tiene zone1, zone2 y zone3, puede ingresar estos nombres para sus zonas de satélite. Luego, asigne 2 hosts de zone1 en su proveedor de infraestructura a zone1 en su plano de control de satélite, y así sucesivamente. Cuando asigna los hosts al plano de control, IBM arranca su máquina. Este proceso puede tardar unos minutos en completarse. Durante el proceso de arranque, el estado de su máquina cambia de Listo a Aprovisionamiento.
6 – En la pestaña Hosts, verifique que sus hosts estén asignados correctamente al plano de control de ubicación de satélites. La asignación se realiza correctamente cuando se agrega una dirección IP a su host y el estado de salud cambia a Normal.

Panel Satellite Location

7 – Verifique que el estado de su ubicación haya cambiado a Normal. Es posible que vea un mensaje de ubicación sobre la ubicación que no tiene suficientes hosts hasta que se complete el proceso de arranque.

Una vez que sus hosts se asignan correctamente al plano de control, se necesitan otros 20-30 minutos hasta que la supervisión de IBM esté configurada correctamente para su ubicación. Además, se crea un registro DNS para su ubicación y las direcciones IP de sus hosts se registran automáticamente y se agregan a su registro DNS para permitir el equilibrio de carga y la verificación del estado de su ubicación. Este proceso puede tardar hasta 30 minutos en completarse. Durante este proceso, el estado de su ubicación continúa mostrando un estado de acción requerida y es posible que vea errores intermitentes, como por ejemplo, Satellite está intentando recuperarse o Verificar que la ubicación de Satellite tiene un registro DNS para solicitudes de equilibrio de carga al plano de control de ubicación.

8 – Para seguir usando la ubicación para cargas de trabajo de producción, repita estos pasos para adjuntar más hosts al plano de control de ubicación en múltiplos de 3, como 6, 9 o 12 hosts.

Creación del cluster de Openshift

En esta sección pasaremos a crear un cluster de Openshift sobra nuestra Satellite Location utilizando el 4to servidor creado (el único libre ya que no se utilizó para el Control Plane)

1 – En el catálogo de IBM Cloud buscaremos Red Hat OpenShift on IBM Cloud.

Búsqueda OpenShift

2 – Aquí elegiremos la siguiente configuración.

  • Elegimos la última version de OpenShift
  • Seleccionamos Satellite como ubicación y seleccionaremos nuestra Satellite Location
  • Para esta prueba solo seleccionaremos una zona y elegiremos un cluster de 4vCPU x 16GB RAM
  • Elegimos la opción «Enable cluster admin access for Satellite Config»
  • Ponemos un nombre al cluster y por último lo creamos, esta acción puede demorar unos cuantos minutos.

Configuración del servicio OpenShift Configuración Worker Pools 3 – Por último, nos dirigimos a Openshift y verificamos que el cluster este creado. Tocamos el nombre del cluster.

Panel OpenShift Clusters

Aquí podemos ver que el estado del cluster

Panel MyCluster

Si vamos a «OpenShift web console», tendremos acceso a la consola de Openshift.

OpenShift Web Console

Opcional: Despliegue de una aplicación simple sobre el cluster

Parte 1: Configuración del registro de imágenes

Primero debemos configurar un registro de imágenes, en nuestro caso, utilizaremos el registro interno del worker node (emptyDir) para almacenar las mismas.

1 – Accedemos desde la consola al cluster de Openshift, para ello, primero debemos copiar el comando de Login.

Seleccionar Copy Login Command

y luego pegarlo en nuestra consola.

Consola OpenShift

2 – Copiaremos uno a uno los siguientes comandos en la consola para setear emptyDir como storage de imágenes.

$ oc patch configs.imageregistry.operator.openshift.io/cluster --type merge --patch '{"spec":{"storage":{"emptyDir":{}}}}'

$ oc patch configs.imageregistry.operator.openshift.io/cluster --type merge -p '{"spec":{"managementState":"Managed"}}'

Listo, ya tenemos configurado nuestro registro de imágenes. Podemos verificarlo aquí:

Cambios aplicados en Plataforma OpenShift

Parte 2: Despliegue de la App

1 – Nos dirigimos al panel de </> Developer en la sección de Arministrator.

Panel Developer

2 – En la sección de Add+ Crearemos un nuevo proyecto.

Sección Add

3 – Completamos los datos y creamos el proyecto.

Creando el proyecto OpenShift

4 – Elegimos la opción Samples

Seleccionar Samples

5 – Luego seleccionamos la opción Node.js

Seleccionar Node.js

6 – Verificamos los datos y creamos

Crear Sample Application

7 – Listo! Nuestra aplicación de ejemplo fue creada, al cabo de unos minutos veremos en la sección de Topology nuestra app con un tilde verde. Si tocamos el icono señalado, podremos ir a la URL de nuestra app para corroborar que esta funcionando.

Proceso Finalizado

¡Felicitaciones! Acabas de desplegar tu primera aplicación sobre un Cluster de Openshift en una locación de IBM Cloud Satellite!

Resumen

En este tutorial aprendimos como crear una Satellite Location, incluyendo el aprovisionamiento de Hosts, atacheo y configuración inicial del Control Plane. Además creamos un cluster de Openshift en esa locación. Por ultimo desplegamos una cargas de trabajo en un entorno administrado y seguro que brinda una experiencia de usuario intuitiva con una administración simplificada del ciclo de vida del clúster en clústeres nativos de OpenShift.

https://cloud.ibm.com/docs/virtual-servers?topic=virtual-servers-getting-started-tutorial
https://cloud.ibm.com/docs/satellite?topic=satellite-locations#setup-control-plane
https://cloud.ibm.com/docs/satellite?topic=satellite-ibm
https://cloud.ibm.com/docs/openshift?topic=openshift-getting-started
https://cloud.ibm.com/docs/openshift?topic=openshift-openshift_tutorial