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.