Introducing ZYNOO General Purpose & CPU Optimized Servers   Learn More >

Cómo instalar Kubernetes en Ubuntu con K3s

¿Quieres instalar Kubernetes en Ubuntu sin configurar desde cero un clúster complicado? K3s es una distribución ligera de Kubernetes que simplifica el proceso, por lo que resulta una opción práctica para desarrolladores que están aprendiendo a usar Kubernetes en un VPS.

En esta guía aprenderás a instalar Kubernetes en Ubuntu 24.04 con K3s, crear un clúster de un solo nodo, desplegar una aplicación Nginx y comprobar que todo funciona.

No necesitarás instalar Docker ni configurar por separado un entorno de ejecución de contenedores.

¿Qué es K3s y por qué utilizarlo?

K3s es una distribución ligera de Kubernetes, certificada por la CNCF, diseñada para reducir la complejidad de instalar y administrar Kubernetes.

Reúne componentes esenciales, como un entorno de ejecución de contenedores y las funciones de red del clúster, en una instalación simplificada.

A diferencia de una instalación tradicional de Kubernetes con kubeadm, K3s se encarga automáticamente de gran parte de la configuración inicial.

Una instalación de K3s en un solo nodo constituye un clúster de Kubernetes funcional, adecuado para desarrollar, hacer pruebas y aprender.

Si no conoces conceptos de Kubernetes como los pods y los Deployments, lee primero nuestra guía ¿Qué es Kubernetes?.

Instalar Kubernetes en Ubuntu con K3s

Requisitos previos

Antes de empezar, necesitarás:

  • Un servidor con Ubuntu 24.04 LTS.
  • Acceso SSH con privilegios sudo.
  • Al menos 2 núcleos de CPU y 2 GB de RAM.
  • Preferiblemente, 4 GB de RAM o más para disponer de un entorno de aprendizaje cómodo.
  • Suficiente almacenamiento SSD y acceso a internet para descargar imágenes de contenedores.

K3s establece oficialmente un mínimo de 2 núcleos de CPU y 2 GB de RAM para un nodo servidor. Los requisitos reales de las cargas de trabajo pueden ser mayores.

¿Necesitas un VPS con Ubuntu para Kubernetes?
Despliega K3s con acceso root y recursos de servidor flexibles.
Descubre los VPS con Ubuntu →

Nota de seguridad: Mantén el acceso SSH y restringe el acceso a la API de Kubernetes en el puerto 6443. Para este tutorial no necesitas abrir ese puerto al público. Si utilizas UFW u otro cortafuegos, consulta los requisitos oficiales de red de K3s antes de instalarlo.

Paso 1: Actualiza tu servidor Ubuntu

Conéctate a tu servidor Ubuntu mediante SSH y actualiza la información de sus paquetes:

sudo apt update
sudo apt upgrade -y

Comprueba la versión de Ubuntu:

lsb_release -a

Deberías ver Ubuntu 24.04 LTS.

Si las actualizaciones del sistema requieren reiniciar el servidor, hazlo y vuelve a conectarte mediante SSH.

K3s instalará su propio entorno de ejecución de contenedores, por lo que no es necesario instalar Docker Engine.

Paso 2: Instala Kubernetes en Ubuntu con K3s

K3s proporciona un script de instalación oficial.

El comando de instalación estándar es:

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

Este comando descarga y ejecuta el instalador de K3s. Revisa las instrucciones oficiales de instalación y el instalador antes de ejecutarlo, especialmente en un servidor de producción.

La instalación configura K3s como servicio de systemd e instala herramientas de administración de Kubernetes.

Cuando termine el proceso, comprueba el estado del servicio:

sudo systemctl status k3s

Busca:

Active: active (running)

Pulsa q para salir de la pantalla de estado.

Si el servicio está en ejecución, la instalación de Kubernetes se ha iniciado correctamente.

Paso 3: Comprueba tu clúster de Kubernetes

K3s incluye su propia herramienta de línea de comandos kubectl para gestionar recursos de Kubernetes.

Ejecuta:

sudo k3s kubectl get nodes

Cuando se inicialice el clúster, verás una salida similar a esta:

NAME        STATUS   ROLES                  AGE   VERSION
ubuntu-vps  Ready    control-plane,master   2m    v1.xx.x+k3s1

El nombre de tu servidor y la versión de Kubernetes serán diferentes.

El valor importante es Ready, que indica que Kubernetes considera que el nodo está disponible para ejecutar cargas de trabajo.

A continuación, comprueba los pods del sistema:

sudo k3s kubectl get pods -A

Esto muestra los pods de todos los espacios de nombres, incluidos los servicios del sistema de Kubernetes.

Algunos componentes pueden tardar un poco en inicializarse. Vuelve a comprobar su estado si aún se están iniciando.

Ahora que has instalado Kubernetes en Ubuntu con K3s, tu clúster está listo para ejecutar aplicaciones en contenedores. Vamos a desplegar Nginx para confirmar que todo funciona.

Paso 4: Despliega tu primera aplicación

Ahora que el clúster está en funcionamiento, vamos a desplegar un sencillo servidor web Nginx.

Crea un Deployment:

sudo k3s kubectl create deployment demo-nginx --image=nginx:stable

Kubernetes crea un Deployment que gestiona un contenedor de Nginx.

Comprueba su progreso:

sudo k3s kubectl get deployments

Espera hasta que el Deployment muestre una réplica disponible.

También puedes inspeccionar su pod:

sudo k3s kubectl get pods

El pod debería acabar mostrando el estado Running y su contenedor debería estar listo.

Si ves ContainerCreating, es posible que la imagen del contenedor aún se esté descargando.

Paso 5: Crea un Service de Kubernetes

Un Service de Kubernetes proporciona un punto de acceso de red estable para acceder a una aplicación, aunque se sustituyan sus pods.

Haz accesible el Deployment de Nginx dentro del clúster:

sudo k3s kubectl expose deployment demo-nginx --type=ClusterIP --port=80

Comprueba el Service:

sudo k3s kubectl get services

Deberías ver un Service llamado demo-nginx, con una dirección ClusterIP y el puerto 80.

El tipo ClusterIP hace que la aplicación esté disponible dentro del clúster de Kubernetes. No expone Nginx directamente a internet.

Paso 6: Prueba tu aplicación Nginx

Utilizaremos el reenvío de puertos de Kubernetes para probar la aplicación sin configurar un balanceador de carga público.

Ejecuta:

sudo k3s kubectl port-forward service/demo-nginx 8080:80

Deja abierta esta sesión SSH.

El comando reenvía el puerto 8080 de la interfaz de loopback del servidor al puerto 80 del Service de Nginx.

Abre una segunda conexión SSH al mismo servidor y ejecuta:

curl http://127.0.0.1:8080

Deberías recibir código HTML que contiene la página de bienvenida predeterminada de Nginx.

¡Lo has conseguido! Has instalado Kubernetes en Ubuntu con K3s, desplegado una aplicación en contenedores y accedido a ella a través de un Service de Kubernetes.

Pulsa Ctrl+C en la primera sesión para detener el reenvío de puertos.

Esta prueba solo verifica el acceso local. Para publicar una aplicación en internet es necesario configurar aspectos adicionales de red, DNS, TLS y seguridad.

Problemas habituales al instalar K3s

El servicio K3s no se inicia

Consulta los registros del servicio:

sudo journalctl -u k3s -n 50

Busca problemas de permisos o de red, o componentes que hayan fallado.

El nodo de Kubernetes muestra NotReady

Consulta los detalles del nodo:

sudo k3s kubectl describe node

Investiga las condiciones notificadas, el uso de recursos del sistema y la red.

El pod de Nginx no está en ejecución

Inspecciona el pod:

sudo k3s kubectl get pods

Después, revisa los eventos del Deployment:

sudo k3s kubectl describe deployment demo-nginx

Los errores al descargar imágenes, la falta de recursos o los problemas de red del clúster pueden impedir que los pods se inicien.

El reenvío de puertos no funciona

Asegúrate de que el pod de Nginx esté listo y de que el Service exista.

Recuerda que el comando de reenvío de puertos debe seguir ejecutándose mientras pruebas la aplicación desde la segunda sesión SSH.

¿Necesitas Docker para ejecutar K3s?

No. K3s incluye containerd, un entorno de ejecución de contenedores que se utiliza para ejecutar cargas de trabajo de Kubernetes.

Puedes desplegar imágenes de contenedores compatibles, incluidas las creadas con Docker, sin instalar Docker Engine en el servidor K3s.

¿Qué puedes hacer a continuación?

Tu clúster de un solo nodo es adecuado para experimentar con los conceptos de Kubernetes, pero no constituye automáticamente un entorno listo para producción y de alta disponibilidad.

Antes de desplegar aplicaciones críticas para tu negocio, planifica:

  • El control de acceso al clúster y las actualizaciones de seguridad.
  • El almacenamiento persistente y los procedimientos de copia de seguridad.
  • La supervisión y los límites de recursos.
  • La exposición segura de las aplicaciones mediante HTTPS.
  • La recuperación ante fallos del nodo o del servidor.

Recuerda que un clúster de un solo nodo sigue dependiendo de una única máquina física o virtual. Kubernetes no puede eliminar ese punto único de fallo.

Preguntas frecuentes

¿K3s es lo mismo que Kubernetes?

K3s es una distribución certificada de Kubernetes. Ofrece las funcionalidades de Kubernetes, pero simplifica la instalación y reduce la carga de administración.

¿Puedo instalar Kubernetes en un VPS?

Sí. Puedes ejecutar K3s en un VPS Linux que disponga de suficiente CPU, RAM, almacenamiento y acceso de administrador.

¿Es K3s adecuado para producción?

K3s puede utilizarse en producción, pero su fiabilidad depende de la arquitectura del clúster, la capacidad, la red, la seguridad y la configuración de las copias de seguridad.

¿Puedo desinstalar K3s más adelante?

Sí. K3s proporciona un script de desinstalación, pero al eliminarlo pueden borrarse recursos del clúster y datos locales de las cargas de trabajo. Haz una copia de seguridad de todo lo importante antes de desinstalarlo.

Conclusión

Ahora ya sabes cómo instalar Kubernetes en Ubuntu con K3s, comprobar tu clúster de un solo nodo y desplegar una aplicación Nginx.

Con K3s has creado un entorno de Kubernetes funcional de un solo nodo, desplegado Nginx, hecho que sea accesible a través de un Service y comprobado la aplicación mediante el reenvío de puertos.

A medida que adquieras experiencia, podrás explorar los Deployments, el escalado, la configuración y la gestión del clúster.

Table of Content

Un proxy inverso de Nginx recibe las solicitudes de los visitantes de un sitio web

Un error 502 Bad Gateway en Nginx suele significar que Nginx no ha podido recibir

El error 504 Gateway Timeout se produce cuando un servidor que actúa como puerta de

Build your next project with ZYNOO

From your first website to demanding applications, choose the resources and control you need.

Shared Hosting

Start your blog or business website with cPanel, LiteSpeed and CloudLinux.

VPS Hosting

Grow your websites and applications with NVMe storage, KVM virtualization and full root access.

Dedicated Servers

Power demanding projects with your own physical server, dedicated resources and control over your environment.

Scroll al inicio