Mantener la infraestructura de contenedores en la nube actualizada es esencial para garantizar el rendimiento, la seguridad y la estabilidad de las aplicaciones. En el ecosistema de Azure Kubernetes Service (AKS), la actualización de Node Pools se convierte en una tarea clave para mantener nuestros clústeres Kubernetes al día.
En esta entrada, nos sumergiremos en el proceso detallado de actualizar un Node Pool en Azure AKS, centrándonos en la escalabilidad y la actualización de imágenes. A lo largo de esta guía, no solo exploraremos los pasos prácticos, sino que también desglosaremos los comandos de Azure CLI utilizados en cada etapa, proporcionando claridad sobre su propósito y cómo influyen en la gestión eficiente de nuestros clústeres.
Acompáñanos en este viaje donde desmitificaremos el proceso, haciéndolo accesible incluso para aquellos menos familiarizados con la administración de clústeres de contenedores en la nube. ¡Prepárate para potenciar tus habilidades de gestión en Azure AKS!
Escalabilidad y Actualización de Imágenes
Escalabilidad del Node Pool
Para adaptar la capacidad de tu clúster AKS, el comando az aks nodepool scale
te permite aumentar o disminuir el número de nodos en un Node Pool específico. Esto es útil para manejar cargas de trabajo cambiantes.
Desde el Portal:
- Seleccionar el Node Pool y ajustar la configuración de los nodos.
Powershell:
az aks nodepool scale --resource-group <RESOURCE GROUP> --cluster-name <NAME AKS> --name <NODE POOL NAME> --node-count <NEW NODE COUNT>
Este comando actualiza la cantidad de nodos en el Node Pool, lo que puede ser necesario para hacer frente a una mayor demanda de recursos.
Actualizar Imagen del Node Pool:
La actualización de la imagen del Node Pool es crucial para aplicar parches de seguridad y nuevas características. Utiliza el comando az aks nodepool update
para especificar la versión de Kubernetes deseada.
Desde el Portal:
- Seleccionar el Node Pool que desea actualizar y elegir «Update image.»
- Proceder con la actualización.
Powershell:
az aks nodepool scale --resource-group <RESOURCE GROUP> --cluster-name <NAME AKS> --name <NODE POOL NAME> --node-count <NEW NODE COUNT>
Este paso garantiza que tu clúster utilice la última versión de Kubernetes, mejorando la seguridad y el rendimiento.
Acceder al Clúster Kubernetes:
Establecer la conexión al clúster AKS es esencial para interactuar con él. Los comandos az account set
, az aks get-credentials
, y kubelogin convert-kubeconfig
facilitan el acceso desde la línea de comandos.
az account set --subscription XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXX
az aks get-credentials --resource-group <RESOURCE GROUP> --name <NAME AKS>
kubelogin convert-kubeconfig -l azurecli
Estos comandos te permiten autenticarte y acceder al clúster desde la interfaz de línea de comandos.
Verificar Nodos:
Utiliza kubectl get nodes
para confirmar que los nodos en tu clúster están en estado «Ready». Esto garantiza que los nodos estén listos para ejecutar cargas de trabajo.
kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-XXXXXXXX-vmss000001 Ready agent 2d v1.21.2
aks-nodepool1-XXXXXXXX-vmss000002 Ready agent 2d v1.21.2
aks-nodepool1-XXXXXXXX-vmss000003 Ready agent 2d v1.21.2
Cordon y Drenaje de Nodos Antiguos:
Antes de actualizar nodos, es necesario evitar que se programen nuevos pods en ellos y luego drenarlos.
kubectl cordon <NODO>
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.
Drenamos los nodos que previamente habíamos puesto en estado de cordon.
kubectl drain --ignore-daemonsets <NODO ORIGEN>
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.
Verificación y Eliminación de Nodos Antiguos
- Verificar la Migración de Pods: Asegúrate de que los pods se han migrado correctamente antes de proceder a eliminar los nodos antiguos. Utiliza
kubectl get pods -A -o wide
para revisar el estado de los pods.
kubectl get pods -A -o wide
Eliminar Nodos Antiguos: Utiliza la interfaz de Azure Portal para eliminar los nodos antiguos después de confirmar que los pods se han migrado. Esto se hace desde «Virtual Machine Scale Set.»
kubectl get nodes
Restaurar Configuración de Escalabilidad
- Restaurar Escalabilidad: Después de completar la actualización, vuelve a ajustar la configuración de nodos al estado original utilizando
az aks nodepool update
.
az aks nodepool update --resource-group <RESOURCE GROUP> --cluster-name <NAME AKS> --name <NODE POOL NAME> --node-count <ORIGINAL NODE COUNT>
Restaurar la escalabilidad garantiza que el clúster vuelva a su configuración deseada.
:wq!