Instalación de Openshift

Las siguientes instrucciones detalla el proceso que he seguido para instalar OpenShift Cluster de un solo nodo.

Hardware usado. Primera versión.

Para este propósito he usado un mini PC con las siguientes características:

  • Procesador Intel Core i7 generación 12
  • 32Gb de RAM
  • 1Tb de disco duro.

Aunque las instrucciones que he seguido no decían nada, es importante que el ordenador disponga de un disco duro para el sistema Openshift y 1 o más discos para el almacenaje.

Como se puede apreciar, el sistema no cumple con estos requisitos. Esto conlleva que sí se instala openshift pero no se dispone de almacenamiento, ni para el registry ni para los pods que van a requerir ese almacenamiento persistente.

Añadí un disco duro externo y conseguí el almacenamiento necesario, pero, claro, estaba desperdiciando mucho disco interno ya que openshift viene ocupando menos de 200gb y el resto se malgasta.

Hardware usado. Segunda versión.

Al hardware descrito más arriba le amplié la memoria de 32Gb a 64Gb. Tuve que comprar dos módulos de 32 y sustituir los dos módulos de 16 (que guardé cuidadosemente en un cajón a la espera de poder ser reutilizados en el otro miniPC, el k8s-server)

En lugar de instalar directamente openshift en ‘bare metal’ lo que he hecho ha sido instalar Proxmox VE y dentro crear una máquina virtual con los requisitos de Openshift y con dos discos virtuales. Es decir,

  • 9 cores
  • 32Gib de RAM
  • 1 disco virtual de 200Gib para el sistema
  • 1 disco virtual de 300Gib para almacenamiento

Configuración DNS.

Reserva de IP en el router.

En el router, he reservado las siguientes IP para las distintas máquinas.

MáquinaTipoIPMAC
ProxmoxFísica192.168.1.20038-F7-CD-C8-8F-9F
SNOVirtual en PVE192.168.1.120BC:24:11:5F:0A:81
openshift-servicesVirtual en KVM192.168.1.21052:54:00:43:bf:f9

El servidor DNS local lo configuré según las instrucciones que hay aquí. Son estas:

  1. crear una VM llamada openshift-services.
    • Disco: 100Gb
    • Memoria: 4Gb
    • CPU (cores): 2
  2. Añadir la MAC de la VM creada a la tabla de arriba y configurar el router consecuentemente.
  3. Instalar CentOS Stream en la máquina virtual
    • Añadir el ISO de instalación a Proxmox VE (se puede indicar la URL y Proxmox lo descarga directamente)
    • Añadir la ISO a la configuración de la VM y arrancar desde dicha ISO.
    • Seguir las instrucciones del instalador.

Una vez que ha terminado de instalar hay que configurar la máquina como servidor DNS.

  1. Instalar Bind (a.k.a. named)
    • dnf install -y bind bind-utils.
    • systemctl enable named
    • systemctl start named
    • systemctl status named
  2. Descargar las scripts de utilidad desde Gitea.
    • git clone http://gitea.reymota.es/creylopez/openshift_dns_files.git
    • cd openshift_dns_files
    • sudo cp named.conf.local /etc/named
    • sudo cp -r zones /etc/named
    • sudo systemctl restart named
    • sudo firewall-cmd --permanent --add-port=53/tcp
    • sudo firewall-cmd --reload
    • sudo systemctl status named

Esos ficheros ya están personalizados para su uso en reymota.lab.

Una vez que el servidor DNS esté operativo, hay que configurar el router para añadir su IP.

Reiniciar la máquina virtual.

Una vez que haya arrancado de nuevo, ejecutar este comando para ver si todo está en orden

nslookup ocp-cluster.reymota.lab

El instalador asistido.

La mejor manera que he encontrado para instalar Openshift es con el instalador asistido. En este enlace está toda la información, pero paso a describir los pasos con las notas que ido tomando.

Lo primero que hay que hacer es entrar en la RedHat Hybrid Cloud Console, para lo cual es necesario tener una cuenta en RedHat.

En la página principal, aparecen una serie de ‘tarjetas’ con productos o información. Hay que seleccionar la de OpenShift.

Luego, en el menú de la izquierda, seleccionar «Cluster List» y nos lleva a una página con los clusters que tengamos y la opción de crear uno nuevo.

Los pasos, básicamente, son los siguientes:

  • Crear el cluster
  • Generar el «Discovery ISO».
  • Pasar el Discovery ISO al almacenamiento de Proxmox VE
  • Arrancar la máquina virtual desde la imagen del Discovery ISO
  • Esperar a que sea «descubierto» y aparezca en la Hybrid Cloud Console.
  • Terminar de configurar el cluster
  • Instalar.
  • Tareas de post instalación.

Generar el discovery ISO.

Esto lo vamos a hacer desde el Assisted Installer. Se puede hacer manualmente, dicen. Pero yo lo intenté y no me funcionó.

Una vez que estamos en la lista de clusters (que puede estar vacía si no hemos creado ninguno), hay que crear el cluster y elegir la pestaña «Datacenter».

En cluster details hay que dar un nombre al cluster y un dominio

Luego hay que dar un dominio a nuestro cluster. Este será la base para componer en nombre completo del cluster así como la base para todas las herramientas y aplicaciones que vayamos creando.

El dominio lo tendremos que registrar más tarde en nuestro DNS. Más abajo explico cómo lo he hecho yo (después de varios intentos)

El nombre de dominio que yo he elegido es reymota.lab. Y el nombre de cluster es ocp-cluster. Por lo tanto el nombre completo es ocp-cluster.reymota.lab.

Hay que elegir la opción de Install single node OpenShift (SNO).

<<<<<<<<< Quitar lo de los manifests >>>>>>>>>>

En Operators hay que elegir el de virtualización. El de LVM Storage se activa solo.

Como estoy en Proxmox, no he activado la virtualización pero sí el LVM Storage.

Tras pulsar Next cambiamos a la ventana de descubrimiento de hosts. Aquí es donde hay que añadir el host.

Para poder acceder al host con ssh, necesitamos añadir nuestra clave ssh pública. Se copia el contenido del fichero id_rsa.pub y se pega en el cuadro SSH Public Key.

El botón Generate Discovery ISO hace lo que dice: generar la imagen de descubrimiento.

Esta imagen es la que hay que subir a Proxmox VE para poder añadirla a la configuración de la VM de openshift antes de instalar.

Post instalación.

Cuando termina de instalar hay que hacer unos pequeños ajustes.

Activar image-registry

Por defecto, el instalador pone en modo desactivado el registro de imágenes.

Hay que activarlo con el comando:

oc edit configs.imageregistry/cluster

y cambiar la línea

managementState: Removed

a

managementState: Managed

oc get clusteroperator image-registry

NAME             VERSION   AVAILABLE   PROGRESSING   DEGRADED   SINCE MESSAGE

image-registry   4.17.6    True        False         False      145m    

Puede que AVAILABLE sea False. Esto es lo que pasó cuando instalé. Si estuviese a True, pues muy bien.

Cambiar o crear la PVC

Ver si está creada la PVC

oc -n openshift-image-registry get pvc

NAME                     STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE

image-registry-storage   Bound    pvc-3e9066bf-12f6-423d-97ab-9ea314a2fd52   100Gi      RWO            lvms-vg1       <unset>                 148m

Si está creada y enlazada (Bound), pues no hay que hacer más. El registry estará activo.

Pero si no está creada o no está enlazada, entonces hay que borrarla y crearla de nuevo

oc -n openshift-image-registry delete pvc image-registry-storage 

El fichero yaml está en el directorio mencionado arriba: openshift_dns_files.

No obstante, lo pongo aquí:

apiVersion: v1

kind: PersistentVolumeClaim

metadata:

  name: image-registry-storage

  namespace: openshift-image-registry 

  annotations:

    imageregistry.openshift.io: "true"

spec:

  accessModes:

  - ReadWriteOnce

  resources:

    requests:

      storage: 100Gi 

  storageClassName: lvms-vg1

Y este es el comando para crearlo:

oc create -f registry-pvc.yaml 

y a continuación ejecutar

oc patch config.imageregistry.operator.openshift.io/cluster --type=merge -p '{"spec":{"rolloutStrategy":"Recreate","replicas":1}}'

Con esto el registry debería empezar a funcionar.

  • 9 de diciembre de 2024