Comandos útiles para la gestión de nodos en Kubernetes

En esta entrada os traigo algunos de los comandos más útiles para la gestión de nodos en Kubernetes. Estos comandos te permitirán obtener información detallada sobre los nodos, programar y desprogramar pods, agregar etiquetas y restricciones así como realizar tareas de mantenimiento en los nodos.

Así que si eres un administrador de sistemas, un desarrollador o simplemente alguien interesado en aprender más sobre Kubernetes, estos comandos seguro que te serán de gran utilidad.

Listado de comandos

kubectl get nodes: Este comando se utiliza para obtener una lista de los nodos en el clúster de Kubernetes.

$ kubectl get nodes
NAME          STATUS   ROLES                  AGE   VERSION
node-1        Ready    <none>                 5d    v1.18.6
node-2        Ready    <none>                 5d    v1.18.6

kubectl describe node [node-name]: Este comando se utiliza para obtener información detallada sobre un nodo en particular.

$ kubectl describe node node-1
Name:               node-1
Roles:              <none>
Labels:             beta.kubernetes.io/arch=amd64
                    beta.kubernetes.io/os=linux
                    kubernetes.io/arch=amd64
                    kubernetes.io/hostname=node-1
                    kubernetes.io/os=linux
Annotations:        node.alpha.kubernetes.io/ttl=0
                    volumes.kubernetes.io/controller-managed-attach-detach=true
...

kubectl drain [node-name]: Este comando se utiliza para drenar un nodo antes de realizar tareas de mantenimiento. Drenar un nodo significa que se evita que se planifiquen nuevos pods en ese nodo y se eliminan los pods que ya se están ejecutando en ese nodo.

$ kubectl drain node-1
node/node-1 cordoned
evicting pod "nginx-6d4cf8b94d-cwvhd"
evicting pod "nginx-6d4cf8b94d-fkjtd"
pod/nginx-6d4cf8b94d-cwvhd evicted
pod/nginx-6d4cf8b94d-fkjtd evicted
node/node-1 evicted

kubectl cordon [node-name]: Este comando se utiliza para evitar que se programen nuevos pods en un nodo en particular. Es útil cuando se desea realizar algún tipo de mantenimiento en el nodo, pero no se desea eliminar los pods que se están ejecutando actualmente.

$ kubectl cordon node-1
node/node-1 cordoned

kubectl uncordon [node-name]: Este comando se utiliza para restaurar la capacidad de programación de un nodo después de que se haya realizado el mantenimiento.

$ kubectl uncordon node-1
node/node-1 uncordoned

kubectl label nodes [node-name] [label-key]= [label-value]: Este comando se utiliza para agregar etiquetas a un nodo.

$ kubectl label nodes node-1 environment=production
node/node-1 labeled

kubectl taint nodes [node-name] [taint-key]=[taint-effect]: Este comando se utiliza para aplicar una restricción a un nodo, lo que significa que solo se programarán pods que tengan la tolerancia adecuada.

$ kubectl taint nodes node-1 production=true:NoSchedule
node/node-1 tainted

kubectl top node: Este comando se utiliza para obtener estadísticas de uso de recursos para los nodos del clúster.

$ kubectl top node
NAME          CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
node-1        217m         10%    1431Mi          75%
node-2        280m         14%    1429Mi          75%

kubectl edit node [node-name]: Este comando se utiliza para editar la configuración de un nodo en particular.

$ kubectl edit node node-1

kubectl delete node [node-name]: Este comando se utiliza para eliminar un nodo del clúster.

$ kubectl delete node node-1

Como siempre espero que os haya sido de utilidad y si queréis seguir aprendiendo sobre Kubernetes estaros atentos a próximas entradas ya que seguiré haciendo recopilatorios de comandos para la gestión de pods, namespaces, servicios, etc…

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.