Introducción
En este laboratorio, aprenderás cómo utilizar el comando kubectl taint, que es una herramienta poderosa en Kubernetes para agregar, modificar y eliminar taints (manchas) en los nodos. Los taints se utilizan para indicar que un nodo tiene ciertas restricciones o requisitos, y esto puede ayudar a controlar la programación de pods en un clúster de Kubernetes.
Iniciar el clúster de Minikube
Antes de crear recursos, necesitas un clúster de Kubernetes en ejecución. Minikube es un entorno ligero de Kubernetes que se ejecuta en tu máquina local.
Navegar a tu directorio de trabajo:
Abre la terminal y navega hasta la carpeta de proyecto predeterminada:
cd /home/labex/projectIniciar Minikube:
Inicia Minikube para inicializar un clúster de Kubernetes:
minikube start- Este comando configura un clúster de Kubernetes de un solo nodo en tu máquina local.
- Minikube puede tardar unos minutos en iniciar, dependiendo del rendimiento de tu sistema.
Verificar que Minikube esté en ejecución:
Comprueba el estado del clúster de Minikube:
minikube status- Busca componentes como
kubeletyapiserverlistados comoRunning(En ejecución). - Si el clúster no está en ejecución, vuelve a ejecutar
minikube start.
- Busca componentes como
Si encuentras problemas al iniciar Minikube, utiliza minikube delete para restablecer el entorno si es necesario.
Explorar el comando kubectl taint
El comando kubectl taint se utiliza para agregar, modificar o eliminar taints (manchas) en los nodos de Kubernetes. Los taints son pares clave-valor con efectos que influyen en la programación de pods (contenedores) al restringir qué pods se pueden colocar en nodos específicos.
Ejecuta el siguiente comando para ver las opciones disponibles para kubectl taint:
kubectl taint -h
Verás la siguiente salida:
Actualiza las taints en uno o más nodos.
* Una taint consiste en una clave, un valor y un efecto. Como argumento aquí, se expresa como clave=valor:efecto.
* La clave debe comenzar con una letra o un número y puede contener letras, números, guiones, puntos y guiones bajos, hasta
253 caracteres.
* Opcionalmente, la clave puede comenzar con un prefijo de subdominio DNS y una sola '/', como example.com/my-app.
* El valor es opcional. Si se proporciona, debe comenzar con una letra o un número y puede contener letras, números, guiones,
puntos y guiones bajos, hasta 63 caracteres.
* El efecto debe ser NoSchedule, PreferNoSchedule o NoExecute.
* Actualmente, las taints solo se pueden aplicar a nodos.
Ejemplos:
## Actualiza el nodo 'foo' con una taint con clave 'dedicated' y valor 'special-user' y efecto 'NoSchedule'
## Si una taint con esa clave y efecto ya existe, su valor se reemplaza como se especifica
kubectl taint nodes foo dedicated=special-user:NoSchedule
## Elimina del nodo 'foo' la taint con clave 'dedicated' y efecto 'NoSchedule' si existe
kubectl taint nodes foo dedicated:NoSchedule-
## Elimina del nodo 'foo' todas las taints con clave 'dedicated'
kubectl taint nodes foo dedicated-
## Agrega una taint con clave 'dedicated' en los nodos que tienen la etiqueta mylabel=X
kubectl taint node -l myLabel=X dedicated=foo:PreferNoSchedule
## Agrega al nodo 'foo' una taint con clave 'bar' y sin valor
kubectl taint nodes foo bar:NoSchedule
Agregar una Taint a un Nodo
En este paso, aprenderás cómo agregar una taint (mancha) a un nodo utilizando el comando kubectl taint. Las taints se utilizan para marcar un nodo con ciertas restricciones o requisitos, lo que puede afectar la programación de pods (contenedores) en ese nodo.
Para agregar una taint a un nodo, puedes utilizar el siguiente comando:
kubectl taint nodes minikube app=prod:NoSchedule
Esto agregará una taint con la clave app y el valor prod a un nodo llamado minikube, con el efecto NoSchedule. Esto evitará que se programen pods en el nodo a menos que toleren la taint.
Luego, puedes ver las taints que se aplican actualmente a los nodos en tu clúster de Kubernetes utilizando el comando kubectl describe node.
Para ver las taints en un nodo, puedes utilizar el siguiente comando:
kubectl describe node minikube
Las taints aplicadas al nodo se enumerarán en la sección "Taints" de la salida. Puedes utilizar esta información para verificar que la taint que agregaste en el paso anterior se haya aplicado al nodo.
Eliminar una Taint de un Nodo
In this step, you will learn how to remove a taint from a node using the kubectl taint command. This can be useful if you need to update the restrictions or requirements of a node, or if you want to allow pods to be scheduled on a previously tainted node.
To remove a taint from a node, you can use the following command:
kubectl taint nodes minikube app-
It will remove the app=prod:NoSchedule taint from the minikube node. This will allow pods to be scheduled on the node without needing to tolerate the previously applied taint.
Modificar una Taint en un Nodo
En este paso, aprenderás cómo modificar una taint (mancha) en un nodo utilizando el comando kubectl taint. Esto puede ser útil si necesitas actualizar las restricciones o requisitos de un nodo, pero deseas conservar la clave y el efecto de la taint existente.
- Agrega una nueva taint con el siguiente contenido:
kubectl taint nodes minikube app=uat:NoSchedule
- Utiliza la opción
overwritepara forzar las actualizaciones
kubectl taint nodes minikube app=dev:NoSchedule --overwrite=true
Esto actualizará el valor de la taint app de prod a dev en el nodo minikube. Esto actualizará la taint en el nodo mientras se conserva la misma clave y efecto de la taint.
Resumen
En este laboratorio, aprendiste cómo usar el comando kubectl taint en Kubernetes. Comenzaste agregando una taint (mancha) a un nodo utilizando el comando kubectl taint con una clave, un valor y un efecto específicos. Luego, aprendiste cómo ver las taints aplicadas a un nodo utilizando el comando kubectl describe node.


