Capitulo 1: Que es K3s

Por: Artiko
k3skubernetesintroduccionarquitectura

Capitulo 1: Que es K3s

< Volver al Indice del Tutorial

Que es K3s

K3s es una distribucion certificada de Kubernetes empaquetada en un solo binario de aproximadamente 70MB. A diferencia de un K8s completo que requiere multiples componentes separados, K3s incluye todo lo necesario para correr un cluster funcional con un solo comando.

curl -sfL https://get.k3s.io | sh -

En menos de 30 segundos tienes un cluster Kubernetes operativo con networking, DNS, storage y un ingress controller listo para usar.

K3s vs K8s Completo

Diferencias Clave

CaracteristicaK3sK8s Completo
Tamano binario~70MB~300MB+ (multiples)
Instalacion1 comandokubeadm + configuracion
RAM minima512MB2GB+
Base de datosSQLite embebidoetcd externo
CertificadosAuto-generadosConfiguracion manual
NetworkingFlannel incluidoPlugin CNI requerido
IngressTraefik incluidoSin ingress por defecto
DNSCoreDNS incluidoCoreDNS separado
Storagelocal-path incluidoSin provisioner
Load BalancerServiceLB incluidoRequiere MetalLB o cloud
CertificacionCNCF CertifiedCNCF Certified

Lo que K3s Remueve de K8s

K3s elimina componentes que la mayoria de usuarios no necesitan:

Esto no limita funcionalidad. Todo lo removido es reemplazable por plugins externos y la API de Kubernetes sigue siendo 100% compatible.

Arquitectura Server/Agent

K3s utiliza un modelo de dos roles: server y agent.

                    ┌─────────────────────────────┐
                    │         K3s Server           │
                    │                              │
                    │  ┌───────────┐ ┌──────────┐  │
                    │  │ API Server│ │Scheduler │  │
                    │  └───────────┘ └──────────┘  │
                    │  ┌───────────┐ ┌──────────┐  │
                    │  │Controller │ │ SQLite/  │  │
                    │  │ Manager   │ │  etcd    │  │
                    │  └───────────┘ └──────────┘  │
                    │  ┌───────────┐ ┌──────────┐  │
                    │  │  Kubelet  │ │ Kube-    │  │
                    │  │          │ │ proxy    │  │
                    │  └───────────┘ └──────────┘  │
                    └──────────┬──────────────────┘
                               │ Puerto 6443
                    ┌──────────┴──────────────────┐
          ┌─────────┤        Red del Cluster       ├─────────┐
          │         └──────────────────────────────┘         │
  ┌───────┴───────┐                                 ┌───────┴───────┐
  │   K3s Agent   │                                 │   K3s Agent   │
  │               │                                 │               │
  │ ┌───────────┐ │                                 │ ┌───────────┐ │
  │ │  Kubelet  │ │                                 │ │  Kubelet  │ │
  │ └───────────┘ │                                 │ └───────────┘ │
  │ ┌───────────┐ │                                 │ ┌───────────┐ │
  │ │ Kube-proxy│ │                                 │ │ Kube-proxy│ │
  │ └───────────┘ │                                 │ └───────────┘ │
  │ ┌───────────┐ │                                 │ ┌───────────┐ │
  │ │Containerd │ │                                 │ │Containerd │ │
  │ └───────────┘ │                                 │ └───────────┘ │
  └───────────────┘                                 └───────────────┘

Server (Nodo Control Plane)

El server ejecuta todos los componentes del control plane en un solo proceso:

El server tambien puede ejecutar workloads (pods de usuario) a menos que se configure como nodo dedicado al control plane.

Agent (Nodo Worker)

El agent se conecta al server y ejecuta los pods asignados:

Componentes Integrados

K3s viene con componentes preinstalados que en K8s estandar requieren instalacion separada.

Traefik (Ingress Controller)

Expone servicios HTTP/HTTPS al exterior. Soporta routing basado en host y path, SSL automatico con Let’s Encrypt y middleware para headers, redirects y rate limiting.

CoreDNS

Resolucion DNS interna del cluster. Permite que los pods se comuniquen entre si usando nombres de servicio en lugar de IPs.

Flannel (CNI)

Plugin de red que crea la red overlay entre nodos. Cada pod recibe su propia IP y puede comunicarse con cualquier otro pod del cluster sin NAT.

local-path Provisioner

Provisiona volumenes persistentes usando directorios locales del nodo. Ideal para desarrollo y entornos single-node.

ServiceLB (antes Klipper)

Load balancer ligero para entornos bare-metal. En cloud se reemplazaria por el load balancer del proveedor, pero para VPS y homelab, ServiceLB permite exponer servicios tipo LoadBalancer sin infraestructura adicional.

Casos de Uso

Homelab

K3s corre comodamente en hardware modesto. Una Raspberry Pi 4 con 2GB de RAM puede ejecutar un cluster con multiples servicios. Es la opcion preferida para homelabs porque consume pocos recursos y la instalacion es trivial.

Edge Computing

Dispositivos en ubicaciones remotas con conectividad limitada. K3s puede operar de forma autonoma y sincronizar cuando hay conexion. Su bajo consumo de recursos lo hace ideal para gateways industriales y puntos de venta.

IoT

Clusters distribuidos en dispositivos ARM. K3s soporta nativamente arquitecturas ARM64 y ARMv7, lo que permite correr Kubernetes en dispositivos como Raspberry Pi, NVIDIA Jetson y similares.

CI/CD

Clusters efimeros para pipelines de integracion continua. K3s arranca en segundos, ejecuta los tests en un entorno Kubernetes real y se destruye al terminar. Herramientas como k3d y k3s-in-docker facilitan este patron.

VPS y Servidores Modestos

Un VPS con 1 CPU y 1GB de RAM puede correr K3s con varios servicios. Comparado con K8s completo que necesitaria 2GB solo para el control plane, K3s deja mas recursos para tus aplicaciones.

Raspberry Pi

K3s fue disenado pensando en Raspberry Pi. El binario ARM esta optimizado y el consumo de RAM base es de ~300MB. Un cluster de 3 Raspberry Pi es un laboratorio de Kubernetes economico y funcional.

Historia

K3s fue creado por Darren Shepherd en Rancher Labs y lanzado en febrero de 2019. El nombre es un juego de palabras: si Kubernetes (K8s) tiene 8 letras entre K y s, K3s tiene 3 — la mitad, representando que es la mitad del tamano.

Linea de tiempo:

La graduacion en la CNCF significa que K3s cumple con los estandares mas altos de madurez, gobernanza y adopcion. Es software listo para produccion respaldado por la misma fundacion que gobierna Kubernetes.


Siguiente: Capitulo 2: Conceptos de Kubernetes —>