Kubernetes
16 de marzo de 2026Soy de la opinión de que si un informático quiere conocer y utilizar regularmente una tecnología de servidor, lo ideal es instalar él mismo el servidor con dicha tecnología. Así que vamos a instalar Kubernetes y luego realizar el primer despliegue.
Qué es Kubernetes
Kubernetes (K8S para abreviar) es una plataforma de gestión de contenedores que le permite proporcionar escalabilidad y alta disponibilidad a sus aplicaciones.
Dado que Kubernetes es una solución de código abierto, se ha convertido en el estándar de facto para ejecutar aplicaciones en la nube.
Kubernetes abstrae los recursos de hardware y proporciona una API de gestión de recursos unificada
Kubernetes implementa el principio de configuración declarativa.
Usted define el Estado Deseado en archivos YAML y Kubernetes trabaja continuamente para hacer coincidir el Estado Real con esta especificación.
Para qué sirve Kubernetes
Kubernetes es útil cuando se necesita escalar automáticamente,
proporcionar alta disponibilidad, y manejar los derechos de acceso para múltiples usuarios dentro de un único recurso de rendimiento.
Estas son exactamente las necesidades que tienen las corporaciones.
Para las pequeñas empresas, Kubernetes no es más que otra sobrecarga innecesaria.
Las medianas empresas pueden beneficiarse del escalado. No ejecutarán Kubernetes ellos mismos, pero comprarán infraestructura Kubernetes como servicio.
Kubernetes es muy adecuado para ejecutar arquitecturas de microservicios. Así que no solo moverás una aplicación típica a Kubernetes, sino que tendrás más o menos trabajo que hacer. Así que es conveniente pensar y evaluar si realmente vas a aprovechar Kubernetes.
Uno de los requisitos previos para utilizar Kubernetes es el conocimiento de la tecnología Docker y del sistema operativo Linux a un nivel avanzado. Porque para ejecutar aplicaciones en Kubernetes, necesitarás crear imágenes de Docker y utilizar contenedores Docker. También necesitará un buen conocimiento del sistema operativo Linux y de las redes para ser ser capaz de instalar Kubernetes en un servidor y luego administrar ese servidor Linux con Kubernetes.
Historia de Kubernetes
Kubernetes se originó como un sucesor de código abierto de un sistema interno de Google llamado Borg, que Google ha utilizado (y aún utiliza) para orquestar sus centros de datos masivos desde principios de la década de 2000.
- En 2014: Google anunció y liberó oficialmente el proyecto Kubernetes (K8s) como código abierto.
- En 2015: la versión 1.0 fue donada a la recién formada CNCF (Cloud Native Computing Foundation).
Hoy en día, Kubernetes ya no pertenece a Google, sino que es mantenido por la comunidad bajo los auspicios de la Linux Foundation, convirtiéndolo en el estándar global para aplicaciones en la nube.
Arquitectura de clústeres
Plano de control (maestro)
- kube-apiserver: Pasarela para todas las comunicaciones (REST).
- etcd: Base de datos
key-valuedistribuida para persistir el estado del clúster. - kube-scheduler: Algoritmo para seleccionar el nodo óptimo para nuevos Pods.
- kube-controller-manager: Ejecuta procesos como
Node ControlleroJob Controller.
Nodos de trabajo
- kubelet: El agente primario que ejecuta comandos desde el Maestro en una máquina concreta.
- kube-proxy: Gestiona las reglas de red (IPtables/IPVS) para enrutar el tráfico.
- Container Runtime: La capa que ejecuta los contenedores (por ejemplo,
containerd).
Conceptos
No podemos prescindir del conocimiento de los conceptos, así que primero familiaricémonos con los conceptos básicos:
Abstracciones clave (objetos)
| Objeto | Descripción |
|---|---|
Pod |
La unidad atómica más pequeña, un espacio de nombres de red y almacenamiento compartido para uno o más contenedores. |
Despliegue |
Controlador para aplicaciones sin estado, proporciona estrategia de actualización (RollingUpdate). |
Servicio |
Abstracción para identidad de red estable (ClusterIP, NodePort, LoadBalancer). |
ConfigMap/Secret |
Inyecta configuración y datos sensibles en el entorno del contenedor. |
¿Qué es un espacio de nombres?
Namespace le permite particionar virtualmente un clúster en múltiples partes.
Un namespace actúa como un entorno de trabajo aislado para diferentes proyectos o equipos.
Hipicamente, se crea un nuevo namespace separado para cada nuevo proyecto.
El espacio de nombres te permite:
- Separación: Evita conflictos de nombres (por ejemplo, múltiples aplicaciones "web").
- Cuotas: Capacidad de limitar CPU/RAM para un equipo específico.
- Ejemplo:
prod,staging,dev. - Derechos: establecer derechos por espacio de nombres.
¿Qué es Ingress?
Ingress es un Equilibrador de carga inteligente (Capa 7) que controla el acceso desde el mundo exterior a las aplicaciones dentro del clúster.
Ingress es un Ingress.
Ingress permite:
- Ruteo: Enruta el tráfico por URL (
dominio.cz/apivsdominio.cz/web). .
- SSL/TLS: Terminación centralizada de conexiones HTTPS. (La gestión de certificados la realiza cert-manager en un único lugar).
- Compartición de IPv4 pública: Docenas de aplicaciones pueden ejecutarse detrás de una dirección IPv4 pública. (Guardar IPv4 pública)
Normalmente, esta tarea puede ser proporcionada por Nginx ingress o Treafik ingress
Instalación de Kubernetes
Tenemos unas cuatro opciones principales para instalar Kubernetes fácilmente:
- Microk8s
- K3s
- K3d
- Minicube
Comparativa Microk8s vs K3s vs Minikube.
Personalmente, me anclé para una prueba básica con el K3s.
Sin embargo, para largo plazo (aunque de prueba) definitivamente recomiendo instalar Kubernetes de forma completamente manual
para que tengas el control total de la instalación resultante.
Microk8s
MicroK8s es una distribución de Kubernetes ligera y certificada de Canonical (los creadores de Ubuntu) que está diseñada para ejecutarse con unos requisitos mínimos de recursos pero con toda la potencia de un gran orquestador.
🚀 Rapidez y ligereza. Instalación en menos de 60 segundos. Mínimos requisitos de RAM y CPU, ideal para Edge e IoT.
🔌 Complementos con un solo clic. Fácil activación de funcionalidades (DNS, Dashboard, GPU, Istio) con un solo comando.
🛡️ Seguridad y aislamiento Se ejecuta como un paquete Snap - aislado del sistema con actualizaciones atómicas automáticas.
🔄 Funcionamiento en alta disponibilidad MicroK8s soporta el funcionamiento en cluster multinodo. Es decir, replicación automática del plano de control cuando se conectan 3 o más nodos.
MicroK8s suele ser la forma más popular para que los principiantes instalen Kubernetes en Linux u otros SO utilizando un PC virtual.
K3S
K3S es la distribución minimalista de Kubernetes totalmente certificada de Rancher Lab, diseñada para IoT, Edge y sistemas CI/CD.
📦 Un binario Todo lo que necesitas (incluyendo containerd y Flannel) está en un solo archivo de unos 100 MB.
📉 Baja sobrecarga Consume menos de 512 MB de RAM al eliminar el código innecesario y los controladores de la nube.
🗄️ SQL en lugar de etcd Utiliza SQLite ligero como base de datos predeterminada, pero también admite PostgreSQL o MySQL.
🛠️ Helm Ready Incluye el controlador Helm, que permite el despliegue automático de manifiestos y gráficos tras el arranque.
Por defecto, K3S utiliza Traefik como "Ingress" y "Proxy". Personalmente prefiero usar NGINX. No tengo experiencia con Traefik, así que prefiero usar NGINX, con el que tengo experiencia. Aunque desde una perspectiva de configuración, tendrás que reaprender la notación de todos modos, ya que la configuración se realiza sobre YAML.
Así es como he instalado k3s sin Treafik:
apt-get install curl iptables export INSTALL_K3S_EXEC=" --disable=traefik" curl -sfL https://get.k3s.io | sh - #iniciar servicios kubernetes systemctl status k3s.service #verificar funcionalidad k3s kubectl get node kubectl get subs -AA continuación puedes instalar Nginx como ingress.
Más información:
Cómo crear un clúster k3s con el controlador Nginx Ingress
Cómo ejecutar k3s en un contenedor LXC
K3d
K3d es una envoltura ligera para ejecutar K3s en Docker.
Características de K3d
🐳 Docker-nativo Cada nodo del clúster es un contenedor Docker independiente. Sólo es necesario tener instalado Docker.
⚡ Velocidad extrema Literalmente, se tarda unos segundos en crear y ejecutar un clúster multinodo completo.
💻 Múltiples nodos en un portátil. Simule fácilmente topologías complejas (múltiples maestros y trabajadores) sin necesidad de máquinas virtuales.
🛠️ Genial para CI/CD Ideal para pruebas automatizadas - creas el clúster, pruebas la aplicación y la eliminas inmediatamente.
🌐 Recarga en caliente Soporte para registros locales y fácil mapeo de puertos desde localhost directamente al clúster.
Minicube
Minicube puede ejecutarse con diferentes controladores, por lo que puede ejecutar Kubernetes sobre diferentes tecnologías.En concreto, puede utilizar las siguientes tecnologías para ejecutar Kubernetes con Minicube:
- docker
- kvm2
- qemu2
- podman
- virtualbox
Videotutoriales para instalar y usar Kubernetes por primera vez
Videotutorial sobre cómo instalar Kubenetes usando K3s incluyendo la instalación de Nginx ingress:
Primero despliega una aplicación web sencilla en Kubenetes para verificar la funcionalidad de Kubernetes:
PD: la imagen docker de ejemplo se puede ejecutar en un servidor con ARM CPU.
Vamos a cifrar los certificados SSL/TLS usando certmanager:
.
Otros servicios
Si ejecutas alguna aplicación,
necesitarás almacenar datos en disco o en una base de datos. Cómo hacerlo?
Una solución estándar y eficiente para ejecutar una base de datos para proyectos Kubernetes,
es ejecutar la base de datos como un servicio de sistema estándar, no en Kubernetes.
Si se trata de un almacenamiento y no se está utilizando un clúster multi nodo,
la solución más simple y eficiente para almacenamiento es utilizar almacenamiento local.
Sí, esto significa que no puedes escalar tu aplicación a través de múltiples nodos.
Una vez que tenga un clúster de varios nodos, puede utilizar NFS o almacenamiento distribuido como el almacenamiento
Longhorn o Ceph pero hay otros.
Conclusión
Kubernetes es una herramienta poderosa.
Sin embargo, debido a la complejidad de la administración de la instalación y no menos importante la complejidad de preparar una aplicación para ejecutarse en Kubernetes,
le recomiendo que primero considere y discuta con su consultor si realmente se beneficiará de Kubernetes.
Si quieres ejecutar aplicaciones en Kubernetes
ayuda estoy aquí para ti así que sólo contáctame y pide una consulta y luego podemos empezar a trabajar juntos.
Este artículo está pensado principalmente como una guía sobre cómo crear un entorno Kubernetes para realizar pruebas. Si necesitas una ejecución en producción te recomiendo que mires Kubernetes con más detalle y profundidad o que encargues un un especialista en servidores Linux.
Artículos sobre un tema similar
Base de datos SAP HANA
Comando AT
Docker build multiarch image
VMware frente a Proxmox: comparación de rendimiento
GitLab CI/CD: automatización de pruebas y despliegue de aplicaciones
Migración de VPS de VMware a Proxmox
Cambio en las licencias de VMware
Ejecución de Microsoft SQL Server en Linux
Copia de seguridad: el Proxmox Backup Server
Linux como router y cortafuegos
Cómo subir una imagen Docker al Registro Docker
Linux: gestión de volúmenes lógicos
Software RAID para Linux
Ejecutar una aplicación web detrás de un proxy
Migración de correo electrónico
Construcción multietapa Docker
Copia de seguridad de los datos al encender el ordenador
Podman
Importación de Windows a la virtualización Proxmox
Docker y correo PHP
Virtualización Proxmox
Docker y Cron
Lenovo ThinkPad X1 Carbon: puesta en servicio del módem LTE EM7544
Proyecto Yocto: Cree un sistema operativo personalizado para dispositivos integrados
Preparación de un servidor Linux para ejecutar una aplicación web en Python
Cómo solucionar el bajo rendimiento de los archivos compartidos en Docker
Cómo empezar a utilizar Docker correctamente
Instalación de Linux en un servidor HPE ProLiant DL320e dedicado
Cómo poner a prueba una aplicación web
Por qué utilizar el sistema de archivos JFS
Cómo arrancar desde un disco de 4TB con GTP usando UEFI
Sistema de archivos Btrfs
Raspberry PI
WINE - ejecución de programas Windous en Linux
Sistema operativo GNU/Linux
Boletin informativo
Si está interesado en recibir noticias puntuales por correo electrónico.
Puedes registrarte rellenando tu email
suscripción de noticias.
+