Iniciar sesión / Registrar Cuenta

Contenedores

¿Qué es un clúster de Kubernetes?

Un clúster de Kubernetes es un conjunto de máquinas de nodos que ejecutan aplicaciones en contenedores. Si ejecuta Kubernetes, está ejecutando un clúster.

Un clúster posee un nodo de trabajo y un nodo maestro por lo menos. El nodo maestro es el encargado de mantener el estado deseado del clúster y de controlar, por ejemplo, las aplicaciones que se ejecutan y las imágenes en contenedores que se utilizan. Los nodos de trabajo son los que realmente ejecutan las aplicaciones y las cargas de trabajo.

La ventaja más importante de Kubernetes es la capacidad de programar y ejecutar contenedores en un grupo de máquinas, ya sean físicas o virtuales, on-premise o en la nube, y esto es posible gracias al clúster. Los contenedores de Kubernetes no están ligados a ninguna máquina individual. De hecho, están aislados en el clúster.

¿Cómo se trabaja con un clúster de Kubernetes?

Un clúster de Kubernetes tiene un estado deseado, que define las aplicaciones o cargas de trabajo que deben ejecutarse, las imágenes que se utilizan, los recursos que deben estar disponibles y otros detalles de configuración.

El estado deseado se define a través de archivos de configuración compuestos por manifiestos. Se trata de archivos JSON o YAML que indican el tipo de aplicación que se ejecutará y la cantidad de réplicas necesarias para que un sistema funcione en buenas condiciones.

El estado deseado del clúster se define con la API de Kubernetes. Esto puede llevarse a cabo desde la línea de comandos (con kubectl) o usando la API para interactuar con el clúster y establecer o modificar el estado deseado.

Kubernetes gestionará el clúster de forma automática para que coincida con dicho estado. Por ejemplo, supongamos que implementa una aplicación con un estado deseado de "tres". Esto quiere decir que deberían ejecutarse tres réplicas de la aplicación. Si uno de los contenedores falla, Kubernetes notará que solo hay dos réplicas en ejecución y agregará una para lograr el estado deseado.

También puede utilizar los patrones de Kubernetes para gestionar la expansión de su clúster de forma automática en función de la carga. 

¿Cómo se relaciona un clúster con un nodo, un pod y demás términos de Kubernetes?

Ya definimos al clúster como un conjunto de nodos. Veamos otros términos de Kubernetes que nos sirven para entender la función de un clúster.

Nodo maestro: máquina que controla los nodos de Kubernetes. Aquí es donde se originan todas las asignaciones de las tareas.

Nodo de trabajo: máquinas que realizan las tareas solicitadas y asignadas. El nodo maestro de Kubernetes se encarga de controlarlas.

Pod: conjunto de uno o más contenedores implementados en un solo nodo. Es el objeto más pequeño y simple de Kubernetes.

Servicio: forma de exponer una aplicación que se ejecuta en un conjunto de pods como un servicio de red. Esto separa las definiciones de las tareas de los pods.

Volumen: directorio que contiene datos, al que pueden acceder los contenedores de un pod. Un volumen de Kubernetes tiene la misma vida útil que el pod que lo contiene. Sin embargo, dura más que cualquiera de los contenedores que se ejecutan dentro del pod, y los datos se conservan cuando se reinicia alguno de ellos.

Espacio de nombre: clúster virtual. Los espacios de nombre permiten que Kubernetes gestione varios clústeres (para distintos equipos o proyectos) dentro del mismo clúster físico.

¿Por qué elegir Red Hat OpenShift para Kubernetes?

Red Hat es líder y desarrollador activo de la tecnología de contenedores open source, incluido Kubernetes. Además, diseña herramientas fundamentales para proteger, simplificar y actualizar la infraestructura de contenedores de forma automática. 

Red Hat® OpenShift® es una distribución empresarial de Kubernetes. Con este producto, los equipos de operaciones y desarrollo obtienen una plataforma única e integrada. Red Hat OpenShift ofrece a los desarrolladores la posibilidad de elegir los lenguajes, los marcos de trabajo, el middleware y las bases de datos, junto con el diseño y la implementación de la automatización a través de la CI/CD para aumentar la productividad.