
🌐 También en: English · Deutsch · Français
Este artículo es la continuación directa de la guía anterior. Si aún no la has leído, empieza aquí: Configuración inicial: WordPress en K3s (gestionado con Ansible).
Esta guía describe un pipeline de actualización limpio y determinista para un stack de WordPress que corre en Kubernetes mediante K3s, orquestado con Ansible. Piensa en ello como una cebolla de actualizaciones: cada capa se mantiene de forma independiente, pero todas encajan perfectamente entre sí. También me sirve de referencia personal —una especie de documentación viva— hasta que estos flujos de trabajo se me queden grabados a fuego 😉
🧱 Capa 1 — Sistema operativo (AlmaLinux 9)
Los parches de seguridad se aplican automáticamente con dnf-automatic. Para intervenir a mano:
dnf upgrade
Si incluye una actualización del kernel:
reboot
- Las reglas del cortafuegos se vuelven a aplicar mediante tareas cron @reboot
- K3s y todas las cargas de trabajo se recuperan solas
⚙️ Capa 2 — K3s (Kubernetes ligero)
Comprobar la versión actual:
k3s --version
Actualizar K3s:
curl -sfL https://get.k3s.io | sh -
Verificar el clúster:
kubectl get pods -A
📦 Capa 3 — Charts de Helm (ingress-nginx, cert-manager)
Actualizar las variables:
ingress_nginx_chart_version: "4.11.0" cert_manager_chart_version: "1.17.0"
Desplegar:
ansible-playbook blog.yml --limit test
🐳 Capa 4 — Imágenes de contenedor
Actualizar las etiquetas de las imágenes:
blog_image_wordpress: "wordpress:6.8-fpm" blog_image_mariadb: "mariadb:11.5" blog_image_nginx: "nginx:1.28-alpine"
Desplegar:
ansible-playbook blog.yml --limit test
⚠️ Nota: antes de una actualización mayor de MariaDB, haz una copia de seguridad.
🧩 Capa 5 — Núcleo de WordPress y plugins
Buscar actualizaciones:
kubectl exec deployment/wordpress -n wordpress -c wordpress-fpm -- \ php /var/www/html/wp-cli.phar core check-update \ --path=/var/www/html --allow-root
kubectl exec deployment/wordpress -n wordpress -c wordpress-fpm -- \ php /var/www/html/wp-cli.phar plugin list --update=available \ --path=/var/www/html --allow-root
Actualizar el núcleo:
kubectl exec deployment/wordpress -n wordpress -c wordpress-fpm -- \ php /var/www/html/wp-cli.phar core update \ --path=/var/www/html --allow-root
Actualizar los plugins:
kubectl exec deployment/wordpress -n wordpress -c wordpress-fpm -- \ php /var/www/html/wp-cli.phar plugin update --all \ --path=/var/www/html --allow-root
Corregir los permisos:
kubectl exec deployment/wordpress -n wordpress -c wordpress-fpm -- \ chown -R www-data:www-data /var/www/html/wp-content
🚀 Pipeline de actualización recomendado
- dnf upgrade
- reinicio (si hace falta)
- actualización de K3s
- actualización del inventario (Helm + imágenes)
- ansible-playbook
- wp-cli core update
- wp-cli plugin update –all
- corrección de los permisos
💡 Consejo de pro: los pasos 3 a 5 se pueden automatizar por completo en una sola ejecución de Ansible.
🧬 Reflexiones finales
Esta configuración sigue una filosofía de infraestructura declarativa e inmutable. Cada capa se actualiza de forma independiente y, aun así, el sistema sigue siendo totalmente reproducible y predecible.
Menos caos. Más control. Modo friki a tope. 🧠




