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áquina | Tipo | IP | MAC |
| Proxmox | Física | 192.168.1.200 | 38-F7-CD-C8-8F-9F |
| SNO | Virtual en PVE | 192.168.1.120 | BC:24:11:5F:0A:81 |
| openshift-services | Virtual en KVM | 192.168.1.210 | 52:54:00:43:bf:f9 |
El servidor DNS local lo configuré según las instrucciones que hay aquí. Son estas:
- crear una VM llamada openshift-services.
- Disco: 100Gb
- Memoria: 4Gb
- CPU (cores): 2
- Añadir la MAC de la VM creada a la tabla de arriba y configurar el router consecuentemente.
- 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.
- Instalar Bind (a.k.a. named)
- dnf install -y bind bind-utils.
- systemctl enable named
- systemctl start named
- systemctl status named
- 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.