Cómo desplegar un clúster de Kubernetes en servidores dedicados

calendar_month 16 de marzo de 2026 schedule 13 min de lectura visibility 13 vistas
person
Valebyte Team
Cómo desplegar un clúster de Kubernetes en servidores dedicados

Desplegar un clúster de Kubernetes en servidores dedicados implica una preparación meticulosa del sistema operativo, la instalación de componentes de contenerización y la inicialización del clúster utilizando la utilidad kubeadm en un mínimo de tres nodos, lo que proporciona un control total sobre la infraestructura y un ahorro significativo en comparación con las soluciones en la nube.

En un entorno de crecientes demandas de escalabilidad, fiabilidad y rendimiento de las aplicaciones, Kubernetes se ha convertido en el estándar de facto para la orquestación de contenedores. Aunque los proveedores de la nube ofrecen servicios K8s gestionados, el despliegue de kubernetes on dedicated servers, o el llamado kubernetes bare metal, abre las puertas a un rendimiento, ahorro y control total de la infraestructura sin precedentes. Este artículo le ayudará a comprender cómo configurar un clúster k8s dedicated server eficiente y por qué puede ser la opción óptima para su negocio.

¿Por qué elegir K8s en servidores dedicados (Bare Metal Kubernetes)?

La elección de kubernetes bare metal para su clúster K8s ofrece una serie de ventajas significativas que a menudo superan la comodidad de las soluciones en la nube, especialmente para proyectos medianos y grandes:

  • Eficiencia económica: Con volúmenes significativos de recursos, los servidores dedicados se vuelven considerablemente más baratos que los de la nube. La ausencia de tarifas por hora por virtualización, tráfico de red y operaciones de E/S permite reducir los gastos operativos a largo plazo. Usted paga una cantidad fija por el hardware, obteniendo el máximo rendimiento.
  • Máximo rendimiento: El despliegue de Kubernetes directamente en hardware físico elimina la sobrecarga de la virtualización. Esto significa que sus aplicaciones obtienen acceso completo a todos los recursos de CPU, RAM y E/S de disco, lo que garantiza latencias mínimas y el máximo ancho de banda. Esto es fundamental para servicios de alta carga, bases de datos y cálculos.
  • Control total y personalización: Al poseer un servidor físico, obtiene un control total sobre el sistema operativo, la configuración de red, los controladores y el hardware. Esto le permite ajustar el entorno a los requisitos específicos de sus aplicaciones, utilizar hardware especializado (por ejemplo, FPGA, GPU) e implementar cualquier parche o modificación necesaria.
  • Previsibilidad de los recursos: A diferencia de los entornos en la nube, donde los recursos pueden ser "bursty" o compartidos con otros clientes (efecto de vecino ruidoso), en un servidor dedicado siempre sabe qué cantidad de recursos está disponible para sus aplicaciones. Esto garantiza un rendimiento estable y predecible.
  • Seguridad: El aislamiento físico de otros clientes del proveedor reduce los riesgos asociados con las vulnerabilidades comunes de la infraestructura en la nube. Usted controla toda la pila, desde el hardware hasta las aplicaciones, lo que simplifica el cumplimiento de estrictos requisitos de seguridad y regulaciones.

¿Qué servidores se necesitan para un clúster de Kubernetes en servidores dedicados?

Para crear una configuración de kubernetes cluster setup estable y de alto rendimiento en servidores dedicados, es necesario abordar cuidadosamente la elección del hardware. Los requisitos mínimos pueden ser bajos, pero para un entorno de producción y para garantizar una alta disponibilidad (HA), se deben considerar configuraciones más potentes.

¿Busca un servidor fiable para sus proyectos?

Valebyte ofrece VPS y servidores dedicados con recursos garantizados y activación rápida.

Ver ofertas →

Requisitos mínimos para cada nodo (control plane y worker):

  • Procesador (CPU): Mínimo 2 núcleos. Para nodos de control con alta carga o para nodos worker que realizan tareas que consumen muchos recursos, se recomiendan 4+ núcleos.
  • Memoria RAM: Mínimo 2 GB para cada nodo. Para nodos worker de producción y nodos de control, se recomiendan 4-8 GB de RAM o más, dependiendo de la cantidad y los requisitos de sus pods.
  • Subsistema de disco: Mínimo 20 GB de espacio libre. Para el SO y los componentes principales de K8s. Se recomienda utilizar discos SSD o NVMe para todos los nodos, especialmente para el control plane, donde se almacena etcd. Los NVMe proporcionan una velocidad de E/S significativamente mayor, lo cual es crítico para el rendimiento de etcd y las aplicaciones.
  • Red: Cada nodo debe tener una conexión de red estable. Se recomienda Ethernet de 1 Gbit/s, y para clústeres de alta carga, 10 Gbit/s. Todos los nodos deben estar en la misma red plana o configurados para interactuar a través de VPN/túneles.

Recomendaciones para un entorno de producción:

  • Nodos Control Plane (Nodos maestros): Se recomiendan al menos 3 nodos para garantizar la alta disponibilidad de etcd (base de datos distribuida de K8s) y los componentes de gestión. Cada uno de estos nodos debe tener al menos 4 vCPU, 8-16 GB de RAM y discos NVMe SSD rápidos (100-200 GB).
  • Nodos Worker (Nodos de trabajo): La cantidad y configuración de estos nodos dependen de sus cargas de trabajo. Para empezar, puede usar 2-3 nodos con 4-8 vCPU, 16-32 GB de RAM y discos NVMe SSD (200-500 GB). A medida que crezcan sus necesidades, podrá añadir nuevos nodos worker.
  • Equipo de red: Para un rendimiento óptimo y minimizar la latencia entre nodos, especialmente en clústeres grandes, considere el uso de tarjetas de red con soporte para 10 Gbit/s o incluso 25/40 Gbit/s.

¿Por qué un clúster de K8s necesita un mínimo de 3 nodos?

Para garantizar la alta disponibilidad y la tolerancia a fallos de una configuración de kubernetes cluster setup, especialmente de su capa de control (control plane), es fundamental utilizar un mínimo de tres nodos. Este requisito está relacionado con el funcionamiento de la base de datos distribuida etcd, que almacena todo el estado del clúster.

  • Quórum de etcd: etcd utiliza el algoritmo Raft para garantizar la consistencia de los datos. Para tomar una decisión (por ejemplo, sobre un nuevo estado de un pod), se requiere un quórum, es decir, la mayoría de los votos del número total de participantes del clúster.
    • En un clúster de 1 nodo: Si el nodo falla, se pierde el quórum y el clúster deja de funcionar.
    • En un clúster de 2 nodos: Si un nodo falla, solo queda uno, lo que representa el 50% del total. No se alcanza el quórum (la mayoría, es decir, 2 de 2) y el clúster vuelve a perder su funcionalidad. Este es un escenario de "split-brain", donde dos nodos no pueden ponerse de acuerdo sobre quién es el líder.
    • En un clúster de 3 nodos: Si un nodo falla, quedan dos nodos (2 de 3), lo que constituye la mayoría y permite que etcd mantenga el quórum y siga funcionando. El clúster permanece operativo.
  • Tolerancia a fallos: Con tres nodos control plane, el clúster puede sobrevivir al fallo de uno de ellos sin perder funcionalidad. Esto garantiza la continuidad del funcionamiento de sus aplicaciones.
  • Fiabilidad: Un mayor número de nodos maestros aumenta la fiabilidad general del sistema, reduciendo la probabilidad de un fallo total debido a errores de hardware o problemas de software en uno de los nodos.

Aunque teóricamente es posible ejecutar K8s en uno o dos nodos (por ejemplo, para desarrollo), para cualquier entorno de producción de kubernetes en servidores con recursos dedicados, se recomienda encarecidamente utilizar un mínimo de tres nodos para el control plane.

Preparación de servidores dedicados para la instalación de Kubernetes

Antes de proceder con la configuración de kubernetes cluster setup utilizando kubeadm, es necesario realizar una serie de pasos preparatorios en cada uno de sus nodos dedicados (tanto control plane como worker). Utilizaremos Ubuntu Server como ejemplo de sistema operativo.

1. Actualización del sistema e instalación de dependencias

sudo apt update
sudo apt upgrade -y
sudo apt install -y apt-transport-https ca-certificates curl gnupg lsb-release

2. Desactivación de Swap

Kubernetes requiere la desactivación de Swap para el correcto funcionamiento de kubelet.

sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. Configuración de parámetros del kernel (sysctl)

Es necesario habilitar el reenvío de tráfico IPv4 y permitir que la interfaz de puente vea el tráfico entrante.

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
br_netfilter
EOF

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

sudo sysctl --system

4. Instalación del runtime de contenedores (Containerd)

Kubernetes utiliza Container Runtime Interface (CRI) para interactuar con los runtimes de contenedores. Containerd es la opción recomendada.

# Añadir la clave GPG del repositorio de Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Añadir el repositorio de Docker
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt update
sudo apt install -y containerd.io

# Configuración de containerd
sudo mkdir -p /etc/containerd
sudo containerd config default | sudo tee /etc/containerd/config.toml

# Reemplazar el driver cgroup del sistema por systemd
sudo sed -i 's/SystemdCgroup = false/SystemdCgroup = true/g' /etc/containerd/config.toml

sudo systemctl restart containerd
sudo systemctl enable containerd

5. Instalación de kubeadm, kubelet y kubectl

Estas herramientas son necesarias para desplegar y gestionar kubernetes en servidores.

# Añadir la clave GPG de Kubernetes
sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg

# Añadir el repositorio de Kubernetes
echo "deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

6. Configuración del Firewall (UFW)

Es necesario abrir los puertos para los componentes de Kubernetes. En cada nodo:

sudo ufw disable # O configure las reglas de UFW
# Para nodos control plane:
# 6443/tcp (Kubernetes API server)
# 2379-2380/tcp (etcd server client API)
# 10250/tcp (Kubelet API)
# 10259/tcp (kube-scheduler)
# 10257/tcp (kube-controller-manager)

# Para nodos worker:
# 10250/tcp (Kubelet API)
# 30000-32767/tcp (NodePort Services - rango por defecto)

Importante: Asegúrese de que todos los nodos puedan intercambiar tráfico a través de estos puertos.

Despliegue de un clúster de Kubernetes con kubeadm: guía paso a paso

Después de preparar todos los servidores dedicados, se puede proceder con la inicialización de la configuración de kubernetes cluster setup utilizando kubeadm.

En el nodo Control Plane (primer nodo maestro):

1. Inicialización del clúster

Ejecute este comando en uno de los nodos maestros que haya elegido. Reemplace <IP_АДРЕС_МАСТЕР_НОДЫ> por la dirección IP real de su nodo maestro. --pod-network-cidr especifica el rango de direcciones IP para los pods, que será utilizado por el plugin de red (CNI), por ejemplo, Calico.

sudo kubeadm init --apiserver-advertise-address=<IP_АДРЕС_МАСТЕР_НОДЫ> --pod-network-cidr=192.168.0.0/16

Después de ejecutar el comando, verá una salida que contiene los comandos para configurar kubectl y el comando para unir los nodos worker. Guarde estos comandos.

2. Configuración de kubectl para el usuario actual

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. Instalación de la red (CNI)

Para el correcto funcionamiento de la red entre los pods, es necesario instalar un plugin CNI. Recomendamos Calico debido a su fiabilidad y flexibilidad.

kubectl apply -f https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

Espere hasta que todos los pods en el namespace kube-system pasen al estado Running.

kubectl get pods --all-namespaces

En los nodos Worker:

1. Unirse al clúster

En cada nodo worker, ejecute el comando que recibió después de inicializar el clúster en el nodo control plane. Se verá aproximadamente así:

sudo kubeadm join <IP_АДРЕС_МАСТЕР_НОДЫ>:6443 --token <TOKEN> \
    --discovery-token-ca-cert-hash sha256:<HASH>

Si ha perdido el token o el hash, puede obtenerlos en el nodo control plane:

# Obtener el token
sudo kubeadm token create --print-join-command

# Obtener el hash
openssl x509 -pubkey -in /etc/kubernetes/pki/ca.crt | openssl rsa -pubin -outform der 2>/dev/null | openssl dgst -sha256 | cut -d' ' -f2

Verificación del clúster

Vuelva al nodo control plane y verifique el estado de todos los nodos:

kubectl get nodes

Todos los nodos deben estar en estado Ready.

Configuraciones óptimas de servidores dedicados Valebyte para K8s

Valebyte ofrece una amplia selección de servidores dedicados, ideales para el despliegue de kubernetes cluster setup en kubernetes bare metal. A continuación, se presentan algunas configuraciones recomendadas que garantizarán un alto rendimiento y fiabilidad para sus clústeres K8s, desde soluciones iniciales hasta empresariales.

Configuración Procesador (CPU) Memoria RAM Disco (Almacenamiento) Tarjeta de red Costo aproximado/mes.* Recomendaciones para K8s
K8s Start Intel Xeon E3-1505M v5 (4 núcleos/8 hilos @ 2.8 GHz) 32 GB DDR4 ECC 2 x 500 GB NVMe SSD 1 Gbit/s desde $79 Ideal para un solo nodo control plane o nodos worker pequeños. Adecuado para desarrollo y pruebas.
K8s Pro Intel Xeon E-2388G (8 núcleos/16 hilos @ 3.2 GHz) 64 GB DDR4 ECC 2 x 1 TB NVMe SSD 1 Gbit/s (opcionalmente 10 Gbit/s) desde $139 Excelente opción para nodos control plane en un clúster HA o nodos worker potentes. Adecuado para cargas de trabajo de producción medias.
K8s Enterprise 2 x Intel Xeon E5-2690 v4 (28 núcleos/56 hilos @ 2.6 GHz) 128 GB DDR4 ECC 4 x 2 TB NVMe SSD 10 Gbit/s desde $299 Nodos worker de alto rendimiento para grandes clústeres de producción. Ideal para aplicaciones de alta carga, bases de datos y tareas de ML.
K8s Scale AMD EPYC 7302P (16 núcleos/32 hilos @ 3.0 GHz) 256 GB DDR4 ECC 2 x 4 TB NVMe SSD 10 Gbit/s desde $399 Para nodos worker escalables con enormes requisitos de RAM y E/S. Adecuado para plataformas en la nube y sistemas analíticos.

*Los precios son orientativos y pueden variar. Consulte la información actualizada en el sitio web Valebyte.com.

Al elegir la configuración para su clúster k8s dedicated server, le recomendamos:
Para los nodos control plane: orientarse a las configuraciones "K8s Start" o "K8s Pro" con discos NVMe rápidos.
Para los nodos worker: elegir "K8s Pro", "K8s Enterprise" o "K8s Scale" según los requisitos de CPU, RAM y subsistema de disco de sus aplicaciones.

Recomendaciones para la operación de Kubernetes en servidores dedicados

El despliegue exitoso de kubernetes on dedicated servers es solo el comienzo. Para garantizar un funcionamiento estable, seguro y eficiente del clúster, es necesario seguir una serie de recomendaciones:

  1. Monitorización de recursos: Implemente un sistema de monitorización integral (por ejemplo, Prometheus + Grafana) para rastrear el estado de los nodos, pods, uso de CPU, RAM, disco y tráfico de red. Esto permitirá identificar problemas a tiempo y optimizar el uso de los recursos.
  2. Registro centralizado: Configure un sistema centralizado de recopilación de logs (por ejemplo, ELK Stack o Loki + Grafana) para todos los pods y componentes del sistema. Esto simplificará la depuración y el análisis del comportamiento de las aplicaciones.
  3. Estrategia de copia de seguridad: Realice copias de seguridad periódicas del estado de etcd (utilizando etcdctl snapshot save) y de los archivos de configuración del clúster. Para datos persistentes, utilice Volume Snapshots si su driver CSI los soporta.
  4. Actualización y mantenimiento: Desarrolle una estrategia para la actualización regular de Kubernetes, el sistema operativo y el runtime de contenedores. Utilice herramientas como Kured para el reinicio automático de los nodos después de las actualizaciones del kernel.
  5. Seguridad del clúster:
    • Utilice RBAC (Role-Based Access Control) para limitar el acceso a la API de Kubernetes.
    • Implemente políticas de red (Network Policies) para controlar el tráfico entre los pods.
    • Escanee regularmente las imágenes de contenedores en busca de vulnerabilidades.
    • Restrinja el acceso a los nodos control plane solo desde direcciones IP de confianza.
  6. Soluciones para almacenamiento persistente (Persistent Storage): Dado que los servidores dedicados proporcionan almacenamiento local, para garantizar la persistencia de los datos entre los pods y su migración, considere el uso de soluciones como Ceph (con Rook) o Longhorn. Estas permiten crear almacenamiento distribuido sobre los discos locales de sus nodos.
  7. Automatización del despliegue: Utilice Ansible, Terraform u otras herramientas de IaC (Infrastructure as Code) para automatizar el despliegue y la configuración de los nodos. Esto garantizará la repetibilidad y reducirá la probabilidad de errores.
  8. Optimización de la interacción de red: Si su clúster tiene una alta carga de red, considere el uso de tarjetas de red de 10 Gbit/s y plugins CNI optimizados.

Conclusiones

El despliegue de kubernetes on dedicated servers ofrece una alternativa potente, flexible y económicamente ventajosa a las soluciones en la nube para la orquestación de contenedores. Mediante una preparación meticulosa de la infraestructura, el uso de la utilidad kubeadm y el cumplimiento de las recomendaciones de operación, puede crear un clúster k8s dedicated server de alto rendimiento y tolerante a fallos, totalmente adaptado a sus necesidades. Valebyte proporciona los servidores dedicados ideales para construir dicha infraestructura, asegurando una base sólida para sus proyectos ambiciosos.

¿Listo para elegir un servidor?

Compare VPS y servidores dedicados de proveedores de confianza en Valebyte.

Empezar ahora →

Share this post: