Ir al contenido
  1. Posts/

Homelab: Inicializar Kubernetes con Talos

Homelab: Proxmox, Talos, y Flux - Este artículo es parte de una serie.
Parte 2: Este artículo

Con Terraform habiendo aprovisionado las VMs, el siguiente paso es convertirlas en un cluster de Kubernetes. Uso Talos Linux — un SO inmutable y minimalista diseñado desde cero para Kubernetes. Este post cubre inicializar un cluster Talos en esas VMs de Proxmox.

¿Por qué Talos?
#

Talos Linux elimina el sistema operativo Linux tradicional, dejando solo lo esencial para ejecutar Kubernetes. No hay acceso SSH, no hay gestor de paquetes, no hay servicios innecesarios. En su lugar, administras tu cluster a través de la API de Talos y talosctl. Este diseño hace que tus nodos sean resilientes y predecibles — sin config drift, sin actualizaciones de paquetes sorpresa que rompan tu cluster.

Prerequisitos
#

  • VMs Talos aprovisionadas vía Terraform (desde la Parte 1)
  • CLI talosctl instalado localmente
  • kubectl instalado localmente
  • Direcciones IP estáticas asignadas a tus VMs (o DHCP con reserva conocida)

Descripción general del bootstrap del cluster
#

El proceso de bootstrap tiene tres pasos principales:

  1. Generar configuración de Talos — Crea una configuración de máquina para nodos de plano de control y trabajo usando talosctl gen config.
  2. Aplicar la configuración a cada VM — Arranca las VMs y aplica su configuración de máquina vía la API de Talos.
  3. Inicializar el cluster — Elige un líder del plano de control e une nodos de trabajo. Una vez hecho, tendrás un kubeconfig funcional.

Paso 1: Generar configuración de Talos
#

Primero, genera la configuración base del cluster:

talosctl gen config totorolab https://controlplane-ip:6443 \
  --output-dir ./out

Esto crea tres archivos en ./out/:

  • controlplane.yaml — Plantilla de configuración para nodos de plano de control
  • worker.yaml — Plantilla de configuración para nodos de trabajo
  • talosconfig — Archivo de configuración para conectarte a tu cluster vía talosctl

Personaliza estos archivos YAML si es necesario (nombre del cluster, nombres de nodos, etc.), luego estás listo para aplicarlos.

Paso 2: Aplicar configuración a nodos
#

Para cada nodo de plano de control, aplica su configuración usando su IP:

talosctl apply-config --insecure \
  --nodes <control-plane-ip> \
  --file ./out/controlplane.yaml

Haz lo mismo para nodos de trabajo con worker.yaml. El flag --insecure es necesario en el primer arranque ya que el cluster aún no está arriba para verificar certificados.

Paso 3: Inicializar y obtener kubeconfig
#

Una vez que todos los nodos tienen su configuración:

talosctl bootstrap --nodes <any-control-plane-ip>
talosctl kubeconfig --nodes <any-control-plane-ip>

Después de unos momentos, tu cluster estará arriba. Verifica con:

kubectl get nodes

Deberías ver todos tus nodos de plano de control y trabajo en estado Ready.

¿Qué sigue?
#

Tu cluster de Kubernetes está ejecutándose, pero está vacío — sin red, sin ingress, sin almacenamiento. La Parte 3 cubre Flux CD, una herramienta GitOps que administra todo eso automáticamente al reconciliar manifiestos de Kubernetes desde un repositorio de Git.

Homelab: Proxmox, Talos, y Flux - Este artículo es parte de una serie.
Parte 2: Este artículo

Relacionados