¿Qué es la afinidad del nodo en Kubernetes??
La afinidad del nodo es un planificador que asigna los nodos a pods específicos. Las vainas de Kubernetes hacen uso de la afinidad del nodo. La capacidad de una cápsula para declarar una afinidad por un grupo particular de nodos en el que podría colocarse se conoce como afinidad de nodo. En Node Affinity, realizamos dos tipos de programación: programación suave y dura. A través de la afinidad del nodo, nos aseguraremos de que las diferentes cápsulas que estamos utilizando se alojen en nodos específicos en el clúster de Kubernetes. En la cápsula, cada nodo está etiquetado con un valor único.
Prerrequisitos:
En nuestro sistema, se debe instalar el sistema operativo Linux o Ubuntu. Si Windows ya está instalado, instale una máquina virtual y ejecute la última versión de Ubuntu en su sistema. Se deben instalar Kubernetes en el sistema después de la instalación. Debe estar familiarizado con los comandos Kubernetes y la herramienta de línea de comandos Kubectl.
Lea con cuidado los requisitos previos. Después de cumplir con estos requisitos, ejecute los comandos en la línea de comandos Kubectl que se mencionan en los siguientes ejemplos. Desglosemos los tutoriales en pasos, cada uno con una breve explicación.
Paso 1: Ejecute los Kubernetes
En el primer paso, ejecutamos los Kubernetes en la terminal. El comando es es el siguiente:
> Minikube Start
Aquí, Minikube nos proporciona un entorno local en el que realizamos las diferentes operaciones en grupos.
Entonces, después de ejecutar el comando, Minikube comienza y el espacio de nodo está reservado.
Paso 2: Obtenga el nodo existente en Kubernetes
En este paso, se muestran los nodos etiquetados que actualmente existen en el sistema. Para obtener los nodos etiquetados, usamos un comando específico.
Ejecute el siguiente comando en el sistema y muestre los resultados:
> kubectl obtiene nodos -Asbels
En la captura de pantalla anterior, vimos que este comando devuelve diferentes parámetros como nombre, estado, roles, edad, versión y etiquetas. Los parámetros de nombre son para mostrar el nombre del contenedor, el parámetro de estado es devolver el estado del contenedor, el parámetro de roles es devolver quién controla el contenedor, el parámetro de edad es devolver cuánto tiempo se crea este pod, el parámetro de la versión es devolver Una versión de esta cápsula, y el parámetro de etiquetas es devolver el valor de nodo específico para esta cápsula.
Paso 3: Defina la afinidad del nodo Kubernetes
En este paso, definimos la afinidad del nodo por el contenedor de minikube. La afinidad del nodo depende de la etiqueta. Aquí, asignamos las etiquetas usando el comando. El comando para definir la afinidad del nodo es el siguiente:
> Kubectl etiqueta nodos minikube disktype == ssd
Adjuntamos una etiqueta al nodo minikube cuyo tipo de disco es SSD. Obtenemos la lista de nodos etiquetados después del etiquetado del nodo. Esto significa que obtenemos la lista de la afinidad del nodo. Aquí, ejecutamos el mismo comando nuevamente que usamos anteriormente para mostrar la lista de los nodos etiquetados.
> Kubectl Get Nodes -show -Labeles
Paso 4: Defina el archivo de configuración de la cápsula del nodo o la afinidad del nodo en el archivo YAML
En este paso, definimos la afinidad del nodo en un archivo YAML. En un contenedor de minikube, ejecutamos los siguientes comandos para crear el archivo YAML:
> nano aff. yaml
En Linux, Nano se usa para la creación de archivos.
Después de la ejecución del comando, aparece la siguiente captura de pantalla adjunta. Este es un archivo de configuración que contiene una información sobre contenedores y clústeres. Como se ve en la siguiente captura de pantalla, se especifica la afinidad. En la afinidad del nodo, nos da un valor de "requerido para la medición de la creación de información". Eso significa que se realiza una programación dura en este pod y el POD requiere esta programación a cualquier costo. En la afinidad del nodo duro, una vaina que se crea se llama Nginx. Definimos este tipo de disco de Pod como programado en ese tipo de disco de nodo cuya etiqueta adjunta es SSD. Recuerde siempre que cuando se muestra "se muestra el cambio de información requerida por ejemplo", se realiza la dura programación de la afinidad del nodo.
De esta manera, definimos la cápsula con diferentes tipos de afinidad de nodo.
Paso 5: Compruebe si el POD está programado en el nodo de etiqueta
En este paso, determinamos si un POD está programado o no en un nodo etiquetado. Para este propósito, ejecutamos el siguiente comando:
> kubectl aplicar -f AFF.yaml
El pod se crea con éxito.
Paso 6: Alistar todas las vainas en Kubernetes
Después de eso, verificamos la lista de vainas en ejecución o pendiente en nuestros kubernetes. Ejecutamos el siguiente comando que se muestra en la captura de pantalla:
.> Kubectl Get Pods -output = Wide
En la captura de pantalla previamente unida, notamos que todas las vainas están en estado de funcionamiento. Junto con esto, obtenemos todos los detalles de POD a través de este comando.
Paso 7: cree el POD para definir la afinidad del nodo en Kubernetes
En este paso, ejecutamos el comando nuevamente para la definición de afinidad del nodo. Creamos un archivo YAML con el "PF.nombre de Yaml ”. El comando es el siguiente:
> nano pf.yaml
Paso 8: Verifique el tipo de afinidad del nodo
En este paso, veremos qué tipo de afinidad del nodo se define en este archivo YAML. El nombre de la cápsula es nginx. Su especificación es afinidad, como se muestra en la siguiente captura de pantalla. En la afinidad del nodo, se utiliza "preferrredDuringingsChedulingInignureduringException". Cuando se usa la palabra preferida, significa que el tipo de afinidad del nodo es suave. La afinidad del nodo suave significa que si el horario prefiere el nodo y las etiquetas coinciden con la expresión de coincidencia dada, está bien. De lo contrario, ignore y programen la cápsula.
Paso 9: Compruebe si el POD está programado para etiquetar el nodo
En este paso, verificamos si todas las vainas que creamos están programadas con nodos de etiqueta. Por esta razón, ejecutamos el siguiente comando para crear el POD como un archivo YAML:
> kubectl aplicar -f pf.yaml
El pod se crea con éxito.
Paso 10: Alistar todas las vainas en Kubernetes
Aquí, ejecutamos el comando para ver si todas las vainas están programadas con nodos etiquetados. Ejecutamos el siguiente comando en el terminal:
> Kubectl Get Pods -output = Wide
El mismo proceso se repite para la afinidad del nodo suave como se discutimos anteriormente para la afinidad del nodo duro. Todos los nodos están en estado en ejecución, lo que significa que todas las vainas están programadas con nodos de etiqueta.
Conclusión
Node Affinity es un planificador de pods en los nodos de etiqueta. La afinidad del nodo incluye un conjunto de reglas en forma dura y suave. Esto es lo que aprendimos en detalle. Asumimos que aprendiste mucho de este tutorial. Puedes practicarlo para tu mejora.