Que es mancha?
La combinación de vainas, nodos y clústeres funciona en conjunto. Las vainas se sienten atraídas hacia los nodos por la propiedad de afinidad del nodo, mientras que las manchas restringen que las vainas se programen en los nodos. La tolerancia y las manchas trabajan juntos para asegurarse de que no se programen un POD en el nodo incorrecto. Estas propiedades aseguran que las cápsulas estén programadas en el nodo correcto y también administran la carga de trabajo de un nodo distribuyendo una carga de trabajo igual en todos los nodos en el clúster. Las manchas se definen para el nodo utilizando la especificación del nodo, mientras que los POD usan la tolerancia a partir de la especificación de POD.
Las manchas son las restricciones que permiten que un nodo repele las vainas que se están programando en el nodo. Por otro lado, la tolerancia funciona contra las manchas y permite que las cápsulas se programen en el nodo incluso si tienen manchas definidas. Puede haber más de una mancha definida para las cápsulas para garantizar que las cápsulas no se programen a menos que puedan tolerar la mancha definida. Aquí, estamos demostrando cómo usar las manchas en las vainas de Kubernetes con la ayuda de un ejemplo simple, corto y fácil.
Requisitos previos
Asegúrese de tener las siguientes herramientas instaladas en su sistema antes de continuar con esta guía. Con estas herramientas básicas, no podrá usar manchas en los nodos de Kubernetes.
Asegúrese de que estas herramientas estén instaladas y configuradas correctamente en su sistema para que no tenga ningún problema con las manchas en los nodos de Kubernetes. Suponiendo que tenga su sistema listo con todas estas herramientas instaladas, nos estamos moviendo a la siguiente sección.
Cómo usar manchas en los nodos de Kubernetes?
Aquí, presentaremos un escenario simple para ayudarlo a aprender a usar una mancha en un nodo Kubernetes. Dejanos empezar!
Paso # 1: Comience el clúster de Minikube
Primero, inicie el clúster de minikube para que pueda usar los comandos Kubectl y ejecutar su aplicación. El clúster de Minikube le permite implementar sus nodos, vainas e incluso clúster en el entorno de Kubernetes. Por lo tanto, es esencial mantener el minikube en modo activo utilizando el siguiente comando:
kalsoom@kalsoom-virtualbox> Minikube StartEsto activará el clúster de Minikube y hará que el entorno Kubernetes esté listo para usar las manchas en el nodo.
Paso # 2: Obtenga la lista de nodos
Como discutimos anteriormente, el entorno Kubernetes se basa en nodos, vainas y clústeres. Las vainas están programadas en los nodos y debemos definir la mancha de ese nodo para evitar que las cápsulas se programen en ese nodo. Entonces, aquí estamos mostrando la lista de nodos para verificar qué nodo ya tiene una mancha definida por la instalación predeterminada de Kubernetes. Además, usaremos el siguiente comando:
kalsoom@kalsoom-virtualbox> kubectl get nodos -o = custom-columns = nodoName:.metadatos.Nombre, Taintkey:.Especificaciones.manchas [*].clave, TaintValue:.Especificaciones.manchas [*].valor, tentecto:.Especificaciones.manchas [*].efectoDe la salida anterior, podemos notar que no se contamina la instalación predeterminada de Kubernetes para que podamos contaminar este nodo.
Paso # 3: Taintar el nodo
El nodo se puede contaminar usando el siguiente comando:
kalsoom@kalsoom-virtualbox> Kubectl Taint nodos minikube App = frontend: noscheduleComo puede ver en la salida, el nodo 'Minikube' se ha contaminado con el efecto 'Noschedule' que tiene el nombre de clave 'Aplicación' con un valor 'frontend'. Esto ha restringido las vainas para programarse en el nodo. Entonces, ahora, no se puede colocar una vaina en este nodo hasta que se haya definido una tolerancia contra la mancha.
Paso # 4: Programe las vainas en el nodo
En este paso, intentaremos programar la cápsula en el nodo que hemos contaminado en el paso anterior. Estamos implementando las cápsulas en el clúster que no tiene ninguna tolerancia definida en la especificación de implementación de la aplicación. Vea el proceso que se da a continuación:
Paso # 4a: Crea un espacio de nombres
Primero, use el comando dado aquí para crear un espacio de nombres:
kalsoom@kalsoom-virtualbox> kubectl crea ns frontendPaso # 4B: ejecute el archivo NGINX en el espacio de nombres
Ahora, ejecute el archivo nginx en el espacio de nombres que acabamos de crear usando el siguiente comando:
kalsoom@kalsoom -virtualbox> kubectl ejecutar nginx -image = nginx -namespace frontendPaso # 4C: Verifique el estado de las vainas
Ahora, verifique el estado de las cápsulas para ver si están programados en los nodos o no. Dado que no hay tolerancia definida para el clúster, el POD no debe programarse en ningún nodo en el clúster. Verifiquemos el estado de las cápsulas con el comando que se proporciona a continuación:
kalsoom@kalsoom -virtualbox> kubectl get pods -n frontendEl estado de la cápsula está 'pendiente', lo que significa que no se ha programado en ningún nodo. Podemos confirmar si está programado en cualquier nodo en el clúster o no verificar los eventos con el siguiente comando:
kalsoom@kalsoom -virtualbox> kubectl get events -n frontendDesde la salida, puede ver que no hay ningún nodo disponible para que los pods se programen porque no hay tolerancia definida para los nodos.
Conclusión
Aprendimos a usar las manchas en los nodos de Kubernetes. Exploramos qué es una mancha y qué función realiza en un entorno de Kubernetes. Aprendimos de este artículo que la tolerancia y las manchas van de la mano. Las manchas se definen para los nodos en la especificación del nodo, mientras que la tolerancia se define para los POD en la especificación POD. Las manchas restringen que las cápsulas se programen en el nodo mientras la tolerancia funciona contra la mancha y permite que los pods se programen en los nodos.