k3s Setup · Kubernetes Lightweight
k3s es Kubernetes empaquetado en un solo binario de menos de 100 MB. Certificado por la CNCF, diseniado para ARM64 y entornos con recursos limitados. La base sobre la que corre todo el observability stack.
Por que k3s y no kubeadm
k3s elimina la complejidad de instalacion de Kubernetes sin sacrificar compatibilidad. Un solo comando instala el cluster completo. Ideal para single-node labs donde kubeadm seria sobredimensionado.
Instalacion
El playbook de Ansible k3s.yml aplica el hardening base y luego instala k3s con un solo comando. La instalacion es idempotente: si k3s ya existe, Ansible no lo reinstala.
- name: Instalar k3s (single-node, ARM64)
shell: |
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.29.0+k3s1 sh -s - \
--write-kubeconfig-mode 644 \
--disable traefik \
--disable servicelb
args:
creates: /usr/local/bin/k3s
- name: Esperar a que k3s este listo
command: k3s kubectl get nodes
changed_when: false
retries: 10
delay: 10
register: result
until: result.rc == 0 Flags de instalacion
--write-kubeconfig-mode 644 --disable traefik --disable servicelb Componentes del Cluster
k3s incluye todo lo necesario para un cluster funcional sin dependencias externas. Estos son los componentes que corren en la VM.
Acceso Remoto
k3s guarda el kubeconfig en /etc/rancher/k3s/k3s.yaml. Para administrar el cluster desde la maquina local, se copia este archivo y se reemplaza la IP.
Namespace aiops
Todo el stack corre en el namespace aiops. Los manifiestos en k3s/manifests/ asumen este namespace como destino.
apiVersion: v1
kind: Namespace
metadata:
name: aiops
labels:
vault.hashicorp.com/agent-inject: "enabled" La label vault.hashicorp.com/agent-inject: "enabled" indica al Vault Agent Injector que los pods en este namespace son candidatos para la inyeccion de secrets. Sin esta label, el Injector ignora los pods del namespace.
Siguiente: Prometheus y Alertmanager
Con k3s corriendo, la primera capa del observability stack es Prometheus para metricas y Alertmanager para enrutar alertas a n8n.