Servidor en la nube para Kubernetes en Europa
Kubernetes es la plataforma de orquestación estándar para cargas de trabajo en contenedores a escala. Ejecutarlo bien requiere más que simplemente instalar k8s: necesita hardware suficiente por nodo, redes confiables entre nodos y comprender como es un cluster mínimo viable.
Alojar su cluster de Kubernetes en Europa es un requisito práctico si sus usuarios o datos están aquí. Las redes privadas de baja latencia entre nodos, el cumplimiento del GDPR y la proximidad física a su equipo de ingeniería favorecen el alojamiento en la UE.
Por que el alojamiento en la UE importa para Kubernetes
Un cluster de Kubernetes es un sistema distribuido. Los componentes del plano de control se comunican constantemente con los nodos trabajadores. La latencia de red entre nodos afecta directamente la estabilidad del cluster. Etcd requiere escrituras de baja latencia para mantener la coherencia.
Colocar todos los nodos en el mismo centro de datos de la UE mantiene la latencia entre nodos por debajo de 1 ms.
Requisitos mínimos del servidor
Kubernetes tiene requisitos de hardware reales.
Para el nodo del plano de control:
- RAM: 4 GB mínimo (8 GB recomendado para clusters con más de 10 trabajadores)
- CPU: 2 núcleos mínimo (4 núcleos recomendado)
- Disco: 40 GB SSD
Para cada nodo trabajador:
- RAM: 4 GB mínimo por nodo
- CPU: 2 núcleos mínimo por nodo
- Disco: 40 GB SSD por nodo
Una configuración mínima lista para producción es 1 nodo de plano de control más 2 nodos trabajadores.
Configuración recomendada de DCXV
Las instancias cloud DCXV en https://dcxv.com/data-center#cloud comienzan desde 15 EUR/mes. Para un cluster Kubernetes de 3 nodos, tres instancias con 4 GB RAM y 4 vCPUs cada una es un buen punto de partida.
Las instancias cloud DCXV en el mismo centro de datos comparten una red privada con muy baja latencia entre instancias. El soporte de ingenieros 24/7 esta incluido sin coste adicional.
Para clusters más grandes, los servidores dedicados DCXV comienzan desde 49 EUR/mes.
Guía de configuración
Despliegue de un cluster k3s en tres instancias DCXV:
# En el nodo del plano de control: instalar k3s
curl -sfL https://get.k3s.io | sh -
# Obtener el token de union del plano de control
cat /var/lib/rancher/k3s/server/node-token
# En cada nodo trabajador: unirse al cluster
curl -sfL https://get.k3s.io | K3S_URL=https://<control-plane-ip>:6443 K3S_TOKEN=<token> sh -
# Verificar que todos los nodos están listos
kubectl get nodes
Cuántos nodos de plano de control
Esta es la decisión que conviene acertar antes de que algo se ejecute en el clúster, porque etcd mantiene un quórum y un quórum necesita mayoría. La fila sorprendente es la segunda:
| Plano de control | Sobrevive a perder | El quórum necesita | Elíjalo cuando |
|---|---|---|---|
| 1 nodo | Nada - la API desaparece | 1 de 1 | Desarrollo, CI, staging, cualquier cosa reconstruible |
| 2 nodos | Nada, y cuesta el doble | 2 de 2 | Nunca - es estrictamente peor que un nodo |
| 3 nodos | Un nodo, sin perder escrituras | 2 de 3 | Producción, y el mínimo que merece la palabra |
| 5 nodos | Dos nodos | 3 de 5 | Clústeres grandes, o cuando puede caer un rack entero |
Dos nodos es la trampa: con un número par no hay mayoría posible, así que perder cualquiera de los dos tumba el servidor de API igual que un solo nodo, y ha pagado el doble. Con los workers es lo contrario: son ganado, añádalos y quítelos con libertad, y su número no sostiene nada.
Expectativas de rendimiento
En un cluster k3s de 3 nodos con instancias de 4 GB / 4 vCPU:
- Latencia de programación de pods inferior a 2 segundos para cargas de trabajo típicas
- Rendimiento de red entre pods de 1-5 Gbps dentro del mismo centro de datos
- Ingress manejando 1.000-3.000 solicitudes HTTP por segundo
- Tiempos de respuesta de la API del plano de control inferiores a 50 ms
- Latencia de escritura de etcd inferior a 5 ms con almacenamiento SSD
Son expectativas para hardware de esta clase, no mediciones de nuestro propio laboratorio. Tómalas como punto de partida para dimensionar y mide tu propia carga: los números reales dependen de tus datos, tus consultas y tu ajuste mucho más que del proveedor.
