Cómo usar Kubernetes nodeselector

Cómo usar Kubernetes nodeselector
El clúster de Kubernetes utiliza las limitaciones de programación como: manchas, etiquetas, toleraciones y nodeselector para segregar y programar la carga de trabajo en diferentes grupos de nodos. Las limitaciones de programación son un requisito común en Kubernetes para la gestión de infraestructura. Nos vamos a centrar en las restricciones de programación de los selectores nodes en este artículo. Exploraremos qué es un nodeselector, cómo funciona y cómo se puede usar en Kubernetes. Presentaremos un escenario simple para ayudarlo a comprender cómo usar de manera eficiente el Kubernetes NodesElector.

¿Qué es Kubernetes nodeselector??

Un NodesElector es una restricción de programación en Kubernetes que especifica un mapa en forma de clave: Se utilizan selectores y etiquetas de nodos personalizados de pares de valor para definir la clave, el par de valores. El nodo de nodo etiquetado en el nodo debe coincidir con el par de valores clave: para que un cierto pod se pueda ejecutar en un nodo específico. Para programar la cápsula, las etiquetas se usan en nodos, y los selectores nodos se usan en pods. La plataforma de contenedor OpenShift programa las vainas en los nodos utilizando el nodo de nodo al hacer coincidir las etiquetas.

Además, las etiquetas y el selector nodes se utilizan para controlar qué POD debe programarse en un nodo específico. Cuando use las etiquetas y el selector nodes, etiquete primero el nodo para que las vainas no se descedulen y luego agregue el selector de nodos a la cápsula. Para colocar una cierta cápsula en un nodo determinado, se usa el selector nodo, mientras que el selector nodo de clúster le permite colocar una nueva vaina en un determinado nodo presente en cualquier parte del clúster. El proyecto NodesElector se utiliza para colocar el nuevo POD en cierto nodo en el proyecto.

Requisitos previos

Para usar el Kubernetes NodesElector, asegúrese de tener las siguientes herramientas instaladas en su sistema:

  • Ubuntu 20.04 o cualquier otra última versión
  • Clúster de minikube con un mínimo de un nodo trabajador
  • Herramienta de línea de comandos kubectl

Ahora, nos estamos moviendo a la siguiente sección donde demostraremos cómo puede usar nodeselector en un clúster de Kubernetes.

Configuración nodeselector en Kubernetes

Se puede restringir una cápsula para que solo pueda ejecutarse en un nodo específico utilizando nodeselector. NodesElector es una restricción de selección de nodo que se especifica en la especificación POD PODSPEC. En palabras simples, NodesElector es una función de programación que le brinda control sobre el POD para programar el POD en un nodo que tiene la misma etiqueta especificada por el usuario para la etiqueta NodesElector. Para usar o configurar nodeselector en Kubernetes, necesita el clúster de Minikube. Inicie el clúster de minikube con el comando que se proporciona a continuación:

> Minikube Start

Ahora que el clúster de Minikube se ha iniciado con éxito, podemos iniciar la implementación de la configuración del nodeselector en Kubernetes. En este documento lo guiaremos para crear dos implementaciones, uno no tiene ningún selector de nodes y el otro está con NodesElector.

Configurar la implementación sin NodesElector

Primero, extraeremos los detalles de todos los nodos que actualmente están activos en el clúster utilizando el comando que se proporciona a continuación:

> kubectl obtener nodos

Este comando enumerará todos los nodos presentes en el clúster con los detalles de nombre, estado, roles, edad y parámetros de versión. Consulte la salida de muestra que se da a continuación:

Ahora, verificaremos qué manchas están activas en los nodos en el clúster para que podamos planear implementar las cápsulas en el nodo en consecuencia. El comando que se proporciona a continuación se utilizará para obtener la descripción de las manchas aplicadas en el nodo. No debe haber manchas activas en el nodo para que las vainas se puedan implementar fácilmente en él. Entonces, veamos qué manchas están activas en el clúster ejecutando el siguiente comando:

> kubectl Describe nodos minikube | mancha

De la salida dada anteriormente, podemos ver que no se aplica una mancha en el nodo, exactamente lo que necesitamos para implementar las vainas en el nodo. Ahora, el siguiente paso es crear una implementación sin especificar ningún selector de nodos en él. Para el caso, utilizaremos un archivo YAML donde almacenemos la configuración nodeselector. El comando adjunto aquí se utilizará para la creación del archivo YAML:

> Nano Deplond.yaml

Aquí, estamos intentando crear un archivo YAML llamado Deplond.Yaml con el comando nano.

Al ejecutar este comando, tendremos un Deplond.Archivo Yaml donde almacenamos la configuración de implementación. Consulte la configuración de implementación que se proporciona a continuación:

Ahora, crearemos la implementación utilizando el archivo de configuración de implementación. El de aplimiento.El archivo YAML se utilizará junto con el comando 'Crear' para crear la configuración. Vea el comando completo que se da a continuación:

> Kubectl Crear -f Deplond.yaml

Como se muestra arriba, la implementación se ha creado con éxito pero sin nodeselector. Ahora, revisemos los nodos que ya están disponibles en el clúster con el comando que se proporciona a continuación:

> kubectl consigue vainas

Esto enumerará todas las vainas disponibles en el clúster. Vea la salida que se da a continuación:

A continuación, necesitamos cambiar el recuento de réplicas que se pueden hacer editando el Deplond.archivo yaml. Solo abre el Deplond.archivo yaml y editar el valor de las réplicas. Aquí, estamos cambiando las réplicas: 3 a réplicas: 30. Vea la modificación en la instantánea que se proporciona a continuación:

Ahora, los cambios deben aplicarse a la implementación desde el archivo de definición de implementación y eso se puede hacer utilizando el siguiente comando:

> kubectl aplicar -f Deplond.yaml

Ahora, verifiquemos más detalles de las cápsulas usando la opción -o amplia:

> kubectl obtiene vainas -O de ancho

De la salida dada anteriormente, podemos ver que los nuevos nodos se han creado y programado en el nodo ya que no hay mancha activa en el nodo que estamos utilizando desde el clúster. Por lo tanto, necesitamos específicamente activar una mancha para garantizar que las vainas solo se programen en el nodo deseado. Para eso, necesitamos crear la etiqueta en el nodo maestro:

> Kubectl etiqueta nodos maestro en-master = true

Configurar la implementación con NodesElector

Para configurar la implementación con un nodeselector, seguiremos el mismo proceso que ha seguido para la configuración de la implementación sin ningún selector de nodos.

Primero, crearemos un archivo YAML con el comando 'nano' donde necesitamos almacenar la configuración de la implementación.

> nano nd.yaml

Ahora, guarde la definición de implementación en el archivo. Puede comparar ambos archivos de configuración para ver la diferencia entre las definiciones de configuración.

Ahora, cree la implementación del Nodeselector con el comando que se proporciona a continuación:

> Kubectl Crear -f nd.yaml

Obtenga los detalles de las cápsulas usando la bandera ancha -o:

> kubectl obtiene vainas -O de ancho

De la salida dada anteriormente, podemos notar que las vainas se están implementando en el nodo minikube. Cambiemos el recuento de réplicas para verificar dónde se implementan las nuevas vainas en el clúster.

Aplique los nuevos cambios en la implementación utilizando el siguiente comando:

> kubectl aplicar -f nd.yaml

Conclusión

En este artículo, tuvimos una descripción general de la restricción de configuración nodeselector en Kubernetes. Aprendimos qué es un selector nodo en Kubernetes y, con la ayuda de un escenario simple, aprendimos a crear una implementación con y sin restricciones de configuración de Nodesector. Puede consultar este artículo si es nuevo en el concepto NodesElector y encontrar toda la información relevante.