Por Fin, Machine Set operator para el control plane de tus clústeres

Por Fin, Machine Set operator para el control plane de tus clústeres

Durante la gestión de máquinas, que luego se convierten en nodos de un clúster de OpenShift, únicamente podíamos controlar aquellas que iban a conformar los nodos de cómputo.

Sin embargo, en el control plane siempre habían sido máquinas muy estáticas y creadas en momento de instalación, y tanto su modificación como su sustitución, siempre había sido un proceso manual, hasta ahora.

Con el control plane machine set podemos definir la configuración deseada para las máquinas que forman/formarán el control plane de nuestro clúster de OpenShift.

Situación actual (OCP 4.13) de esta feature

Se comenzó con esta feature en OpenShift 4.12, pero ahora mismo, en OpenShift 4.13 está soportado Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform (GCP) y VMware vSphere como proveedores de infraestructura donde se encuentre en ejecución el clúster.

Proveedor Activado por defecto Custom Resource pre-creado Creación manual del Custom Resource
AWS X X
Azure X X
GCP X X
VMware vSphere X


Hay que tener en cuenta, que el recurso precreado sólo estará disponible en estado Activo en los clústeres de nueva instalación.

Tanto para AWS, Azure y GCP, si se trata de clústeres actualizados, el recurso deberá ser activado por un administrador.

Supported Cloud Providers - Official OCP4.13 Documentation

Descripción general

El control plane machine set utiliza un recurso personalizado (Custom Resource), ControlPlaneMachineSet con el que automatizar y gestionar la administración de las máquinas del plano de control dentro de un clúster de OpenShift.

Cuando el recurso ControlPlaneMachineSet se encuentra configurado y activado, el operador se encargará de cumplir con la cantidad de máquinas definidas para conformar el control plane del clúster con la configuración definida en el propio recurso.

Esto permite el reemplazo automático de máquinas que formarán el control plane si se encuentran en un estado degradado e incluso de implementar los cambios definidos para las propias máquinas del control plane.

Limitaciones

Hay que tener en cuenta que este recurso está pensado para un mantenimiento y gestión de las máquinas del plano de control, tanto en día 2 como en una operativa recurrente, por lo que tanto la configuración como ajustes deberán realizarse tras la instalación del clúster y no antes o durante una instalación nueva.

  • El operador necesita del Machine API Operator por lo que no soporta clústeres con las máquinas provisionadas de forma manual.
  • Sólo AWS, Azure, GPC y VMware vSphere está soportado (a versión OCP4.13).
  • Sólo planos de control con tres máquinas se soportan.
  • El escalado horizontal de nodos no está soportado usando este operador.
  • El despliegue de máquinas para el control plane en instancias efímeras (spot o similares) o con discos efímeros no está soportado e incrementa el riesgo de perdida de datos y de fallos.

Situaciones que nos encontraremos

Las situaciones y la forma de trabajar con el control plane machine set va a depender del estado en el que se encuentre el propio recuro de ControlPlaneMachineSet en el clúster.

Así, nos podemos encontrar con las siguientes casuísticas.

Clústeres con el recurso generado y activo

Si el clúster ya tiene el recurso creado y está en estado activo no se requiere ninguna intervención de un administrador.

Clústeres con el recurso generado pero inactivo

Si el clúster ya tiene el recurso creado pero está inactivo, un administrador deberá revisar el recurso y su configuración y luego, activarlo.

Clústeres sin el recurso generado

Los clústeres en versión donde ya se encuentra el operador pero no tienen el recurso creado, será necesario crearlo y configurarlo ajustado al clúster para luego poder activarlo.

No sé en qué estado está el recurso

No hay problema, se puede comprobar su estado, de recurso creado o no y si su estado es Activo o Inactivo.

1
2
3
$ oc get controlplanemachineset -n openshift-machine-api
NAME      DESIRED   CURRENT   READY   UPDATED   UNAVAILABLE   STATE    AGE
cluster   3         3         3       3                       Active   3d

Recibiremos 3 posibles resultados:

  • Active
    • El recurso ControlPlaneMachineSet está activado en el clúster
  • Inactive
    • El recurso ControlPlaneMachineSet está desactivado en el clúster, y para activarlo se requiere la intervención de un administrador.
  • Error from server (NotFound)
    • El recurso ControlPlaneMachineSet no existe en el clúster, si se desea usar, un administrador deberá crearlo, configurarlo y activarlo.

Usando el Control Plane Machine Set

Como tenemos 4 posibilidades para usar el ControlPlaneMachineSet y sería imposible tener todos los datos en este mismo post, se repartirá en un post específico para el recurso en cada uno de Cloud Providers soportados.

En cada uno de ellos veremos las típicas necesidades para usar el operador, que serían:

  • Incremento de disco en los nodos del Control Plane
  • Aumento de recursos (cambio de tipo de instancia) en los nodos del Control Plane

También comprobaremos su estado de recurso precreado en las instalaciones nuevas y la necesidad de crearlo y activarlo en aquellos casos que el recurso no está disponible de forma automática.

Se puede ir a esos post directamente desde los siguientes enlaces:

Daniel Fernández Santos
Daniel Fernández Santos OpenShift Administrator en COS Global Services para el Servicio Publico de Empleo Estatal (SEPE), impulsando la arquitectura para OpenShift y clústeres autoconfigurados via GitOps.