Menú de navegaciónMenú
Categorías
Logo campusMVP.es

La mejor forma de Aprender Programación online y en español www.campusmvp.es

Kubernetes In-Place Resize: cómo escalar pods en Kubernetes sin tener que reiniciarlos

Kubernetes 1.35 revoluciona la gestión de infraestructuras críticas permitiendo redimensionar CPU y memoria en caliente, algo antes imposible. Te contamos en qué consiste esta funcionalidad y cómo ponerla en marcha paso a paso.

Escalar cargas de trabajo con estado en Kubernetes ya no requiere interrumpir el servicio. Hasta ahora, cualquier cambio en los recursos de un pod implicaba su desalojo y recreado, algo poco conveniente y crítico para aplicaciones importantes con estado, como bases de datos.

La última versión de Kubernetes, la 1.35, incluye la versión definitiva (GA) de la función In-Place Pod Resize, que permite modificar CPU y memoria de los pods en caliente.

Esta actualización es un salvavidas para los equipos de DevOps. Gracias al nuevo modo InPlaceOrRecreate del Vertical Pod Autoscaler (VPA), el sistema intenta ajustar los recursos editando directamente la especificación del pod en ejecución. Si el nodo tiene espacio, el pod se redimensiona sin cambiar su ID ni reiniciarse.

Imagen ornamental

Aquí te dejamos los pasos básicos para implementar esta mejora en tu entorno local y poder probarlo:

  1. Configura tu clúster: inicia Minikube reservándole al menos 4 CPUs y 4 GB de RAM para soportar el VPA y las métricas, sino se quedará corto.

    • Usa el comando minikube start --cpus=4 --memory=4096.
    • Comprueba que el clúster está funcionando: kubectl cluster-info.
  2. Activa las métricas: el VPA necesita datos reales de consumo a través de la API de métricas de Kubernetes.

    • Habilita el servidor de métricas con minikube addons enable metrics-server y espera alrededor de un minuto a que empiece a recoger datos.
    • Comprueba que está funcionando, por ejemplo consultando el uso de CPU y memoria de tu nodo: kubectl top nodes. Si da un error espera un poco más e inténtalo de nuevo.
  3. Instala los componentes del VPA: aunque Kubernetes dispone de los mecanismos para hacer el escalado vertical, necesitas instalar los controladores específicos para lograrlo, ya que no vienen de serie. Sigue estos pasos:

    • Clona el repositorio oficial de autoscaler de Kubernetes y ejecuta el script de instalación que viene en el repo: ./vertical-pod-autoscaler/hack/vpa-up.sh. Esto creará la definición personalidad del recurso VPA, desplegará los controladores Recommender, Updater y Admission Controller y configiurará el Webhook necesario para lanzar los cambios.
    • Comprueba que todos esos componentes están funcionando localizando con kubectl get pods -n kube-system | grep vpa- los pods que empiezan con el nombre vpa- y comprobando que están en ejecución.
  4. Despliega tu aplicación: crea un despliegue cualquiera (por ejemplo, un NGINX básico con un par de réplicas) con solicitudes de recursos muy bajas para forzar al VPA a actuar.

  5. Configura el modo de recomendación del VPA: antes de automatizar, aplica un objeto VPA con updateMode: "Off". Esto te permitirá ver qué sugiere el sistema en la sección status.recommendation sin que cambie nada todavía.

  6. Activa el redimensionamiento en vivo: cambia el modo a InPlaceOrRecreate. Al aplicar esta configuración, el VPA detectará si el pod necesita más recursos y parcheará el pod actual. Es importante destacar que el campo controlledValues debe configurarse como RequestsAndLimits. Esto garantiza que el VPA mantenga la proporción original entre lo que el pod solicita y el máximo que puede consumir, evitando cuellos de botella inesperados durante picos de tráfico.

  7. Prueba de carga: genera tráfico hacia tu aplicación. Verás cómo el VPA aumenta los límites de CPU y memoria mientras el pod sigue funcionando con la misma antigüedad y sin reinicios.

  8. Mira las recomendaciones: puedes localizarlas con un comando similar a este kubectl get vpa nginx-vpa -n vpa-demo -o yaml y localizar en la salida la sección status.recommendation

Esta es la idea general. Si quieres ver los detalles a fondo puedes ver la documentación de Kubernetes al respecto.

La verdadera magia de esta versión es que elimina la fricción operativa en sistemas de Día 2. Ya no tienes que elegir entre desperdiciar dinero con recursos sobredimensionados o arriesgarte a una caída del servicio por un reinicio automático. Kubernetes finalmente se comporta como una infraestructura elástica de verdad, tratando a los contenedores no solo como piezas efímeras, sino como entidades capaces de evolucionar según la demanda del negocio.

Recuerda que te podemos ayudar si de verdad quieres aprender bien Kubernetes.

campusMVP campusMVP es la mejor forma de aprender a programar online y en español. En nuestros cursos solamente encontrarás contenidos propios de alta calidad (teoría+vídeos+prácticas) creados y tutelados por los principales expertos del sector. Nosotros vamos mucho más allá de una simple colección de vídeos colgados en Internet porque nuestro principal objetivo es que tú aprendas. Ver todos los posts de campusMVP
Archivado en: Herramientas

Boletín campusMVP.es

Solo cosas útiles. Una vez al mes.

🚀 Únete a miles de desarrolladores

DATE DE ALTA

x No me interesa | x Ya soy suscriptor

La mejor formación online para desarrolladores como tú

Agregar comentario

Los datos anteriores se utilizarán exclusivamente para permitirte hacer el comentario y, si lo seleccionas, notificarte de nuevos comentarios en este artículo, pero no se procesarán ni se utilizarán para ningún otro propósito. Lee nuestra política de privacidad.