StackOpsys: Parte 3 Automatización de Kubernetes en Proxmox con Packer, Terraform y Ansible

Automatización de Kubernetes en Proxmox con Packer, Terraform y Ansible para desplegar un clúster con kubeadm y containerd en Ubuntu 24.04. Conoce StackOpsys.

5 sept 2025 • 4 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

StackOpsys Parte 3 Automatización de la infraestructura de Kubernetes en Proxmox con Packer Terraform y Ansible. En esta entrega mostramos cómo desplegar de forma reproducible un clúster Kubernetes con kubeadm y containerd sobre Ubuntu Server 24.04 LTS, orquestado con Ansible y tareas automatizadas con go-task. En Q2BSTUDIO empresa de desarrollo de software y aplicaciones a medida especialistas en inteligencia artificial ciberseguridad servicios cloud aws y azure y servicios inteligencia de negocio aplicamos estas prácticas para entregar plataformas escalables y seguras alineadas con objetivos de negocio. Si buscas acelerar tu adopción de Kubernetes y optimizar procesos, descubre nuestra automatización de procesos software y nuestros servicios cloud Azure y AWS.

Qué incluye esta fase

- Instalación automatizada del clúster Kubernetes con kubeadm. - Configuración de nodos master y worker con runtime containerd. - Preparación de módulos de red para Istio. - Gestión de claves SSH y autenticación sin contraseña. - Verificación del clúster y configuración de kubeconfig. - Automatización de tareas con go-task para operaciones simplificadas.

Tecnologías

- Ansible 2.9 o superior. - Kubernetes kubeadm. - Runtime containerd. - Task go-task para automatización. - Ubuntu Server 24.04 LTS. - Python 3.13.

Visión general de StackOpsys

Automatizamos el ciclo completo desde la preparación de nodos hasta la unión al clúster, asegurando que la red, el runtime y kubeadm queden coherentes y listos para Istio y futuras capas como observabilidad o Kubeflow.

Estructura del proyecto

ansible/ ansible.cfg configuración de Ansible site.yaml playbook principal Taskfile.yml tareas automatizadas con Task inventory/ hosts.ini inventario de hosts inventory/group_vars/all.yaml variables globales roles/ prepare-nodes preparación de nodos configure-master-node configuración del master configure-worker-node configuración de workers kubeconfig distribución de kubeconfig reset-vm reseteo opcional del clúster collections/ requirements.yaml colecciones de Ansible output/ registros y ficheros generados

Flujo de trabajo detallado

1 Preparación de nodos y sistema operativo. 2 Instalación y configuración de containerd. 3 Instalación de kubeadm kubelet y kubectl. 4 Inicialización del control plane y configuración de red. 5 Generación de tokens de unión y alta de workers. 6 Copia y preparación de kubeconfig para acceso.

Ejemplos de configuración

Inventario de hosts [k8s_master] cluster-kubeadm-k8s-master-01 ansible_host=192.168.100.220 [k8s_worker] cluster-kubeadm-k8s-worker-01 ansible_host=192.168.100.223 cluster-kubeadm-k8s-worker-02 ansible_host=192.168.100.224

Variables globales os linux arch amd64 ansible_user usuario ansible_ssh_private_key_file ~/.ssh/ansible ansible_become true

Arquitectura del clúster

- Nodo master 1 nodo 192.168.100.220. - Nodos worker 2 nodos 192.168.100.223 y 192.168.100.224. - Runtime containerd. - Red preparada para Istio.

Pasos de uso

1 Prerrequisitos Instalar Task en macOS brew install go-task/tap/go-task Instalar colecciones de Ansible ansible-galaxy collection install -r collections/requirements.yaml Configurar claves SSH ssh-copy-id -i ~/.ssh/ansible.pub usuario@192.168.100.220 ssh-copy-id -i ~/.ssh/ansible.pub usuario@192.168.100.223 ssh-copy-id -i ~/.ssh/ansible.pub usuario@192.168.100.224

2 Pruebas en modo simulación Probar configuración completa task test:all Probar solo master task test:site:master Probar solo workers task test:site:worker

3 Despliegue completo Ejecutar toda la configuración task apply:all O paso a paso task apply:site task apply:kubeconfig

4 Alternativa con Ansible directo Verificar conectividad ansible all -i inventory/hosts.ini -m ping Despliegue completo ansible-playbook site.yaml -i inventory/hosts.ini

Desglose de roles Ansible

- prepare-nodes desactiva swap permanentemente, configura módulos del kernel overlay y br_netfilter, instala y ajusta containerd, prepara módulos para Istio y Kubeflow, instala kubeadm kubelet y kubectl. - configure-master-node inicializa el clúster con kubeadm, configura la red del clúster, genera tokens de unión para los workers. - configure-worker-node une los nodos worker al clúster y configura kubelet. - kubeconfig copia el kubeconfig desde el master y deja listo el acceso local al clúster.

Salidas y verificación

Archivos generados output ansible-2025-01-XX_XX-XX-XX.log registros de ejecución kubeconfig configuración de Kubernetes

Comandos de verificación del clúster Copiar kubeconfig local scp usuario@192.168.100.220:~/.kube/config ~/.kube/config Comprobar estado kubectl get nodes kubectl get pods -A kubectl cluster-info

Salida esperada NAME STATUS ROLES AGE VERSION cluster-kubeadm-k8s-master-01 Ready control-plane 5m v1.28.x cluster-kubeadm-k8s-worker-01 Ready ninguno 3m v1.28.x cluster-kubeadm-k8s-worker-02 Ready ninguno 3m v1.28.x

Automatización con Task

Tareas disponibles task init inicializa directorios de logs task test:all ejecuta pruebas en modo simulación task apply:all despliegue completo task apply:site ejecución del playbook principal task apply:kubeconfig configuración de kubeconfig. Registro automatizado con ficheros con sello temporal, estructura de salida clara y trazabilidad detallada.

Resolución de problemas y reseteo

- Probar conectividad SSH ansible all -i inventory/hosts.ini -m ping. - Si swap está activa sudo swapoff -a y editar fstab para comentar la línea de swap. - Ejecución con más detalle ansible-playbook site.yaml -i inventory/hosts.ini -vvv. - Reseteo opcional del clúster activar el rol de reset y ejecutar ansible-playbook site.yaml -i inventory/hosts.ini --tags reset.

Qué sigue

Con el clúster listo, despliega un CNI como Calico, configura el service mesh con Istio e integra observabilidad y políticas de seguridad. Si además buscas potenciar tus aplicaciones a medida con analítica y cuadros de mando, explora nuestros servicios de inteligencia de negocio y power bi en la página de Business Intelligence y Power BI.

Trayecto completo de StackOpsys

Parte 1 plantillas de VM personalizadas con Packer. Parte 2 aprovisionamiento de infraestructura con Terraform. Parte 3 automatización del clúster con Ansible. Proyecto completo disponible en el repositorio en GitHub.

Sobre Q2BSTUDIO

Somos una empresa de desarrollo de software a medida y aplicaciones a medida que combina ingeniería de plataformas con prácticas de ciberseguridad y servicios cloud aws y azure. Entregamos soluciones con inteligencia artificial ia para empresas, desplegamos agentes IA y aceleramos el acceso a datos con servicios inteligencia de negocio y power bi. Si quieres transformar tu plataforma con automatización Kubernetes y modernización cloud, podemos acompañarte desde la arquitectura hasta la operación continua.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.