--- title: "Cómo instalar Rancher en K3s con Helm en Ubuntu 24.04" description: "Instala Rancher sobre K3s en Ubuntu 24.04 con Helm, cert-manager y un certificado de Let's Encrypt, y conecta tu primer clúster Kubernetes para gestionarlo." category: "Kubernetes Avanzado" language: es source: https://cubepath.com/es/docs/kubernetes-avanzado/instalacion-de-rancher-para-gestion-de-kubernetes updated: 2026-09-25 --- # Cómo instalar Rancher en K3s con Helm en Ubuntu 24.04 Rancher es una plataforma de código abierto para gestionar varios clústeres Kubernetes desde una única interfaz web: usuarios y permisos, despliegue de aplicaciones, catálogo de charts de Helm y creación de clústeres nuevos. Rancher se ejecuta a su vez dentro de un clúster Kubernetes. En este tutorial montarás un clúster K3s de un nodo en Ubuntu 24.04, instalarás Rancher con Helm y un certificado de Let's Encrypt, y conectarás un clúster existente para gestionarlo. ## Requisitos previos Para seguir esta guía necesitas: - Un servidor con Ubuntu 24.04 LTS dedicado a Rancher, con al menos 4 vCPU y 8 GB de RAM, por ejemplo un VPS de CubePath. - Un usuario no root con privilegios `sudo`. - Un nombre de dominio con un registro DNS A, por ejemplo `rancher.your_domain`, apuntando a la IP pública del servidor (`your_server_ip`). Let's Encrypt lo necesita para emitir el certificado. - Los puertos 80 y 443 accesibles desde Internet. - Opcional: otro clúster Kubernetes que quieras gestionar desde Rancher (paso 7). > Nota: Cada versión de Rancher soporta un rango concreto de versiones de Kubernetes. Esta guía usa K3s 1.33, soportado por las versiones actuales de Rancher. Antes de instalar, revisa la matriz de soporte de Rancher en su web y ajusta el canal de K3s si hace falta. ## Paso 1: Configurar el cortafuegos Abre SSH, HTTP y HTTPS en UFW. K3s también necesita que el tráfico entre pods (`10.42.0.0/16`) y servicios (`10.43.0.0/16`) no se bloquee: ```bash sudo ufw allow OpenSSH sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw allow from 10.42.0.0/16 to any sudo ufw allow from 10.43.0.0/16 to any sudo ufw enable ``` Si vas a administrar este K3s con `kubectl` desde tu equipo, abre también el puerto de la API solo para tu IP: ```bash sudo ufw allow from your_admin_ip to any port 6443 proto tcp ``` Comprueba las reglas: ```bash sudo ufw status ``` ## Paso 2: Instalar K3s K3s es una distribución ligera de Kubernetes que se instala con un único binario e incluye Traefik como controlador de Ingress, que Rancher usará para publicarse. Descarga el instalador y revísalo antes de ejecutarlo: ```bash curl -sfL https://get.k3s.io -o k3s-install.sh less k3s-install.sh ``` Ejecuta el instalador fijando el canal de versiones 1.33: ```bash sudo INSTALL_K3S_CHANNEL=v1.33 sh k3s-install.sh ``` El instalador crea el servicio `k3s` en systemd y lo arranca. Configura `kubectl` para tu usuario copiando el kubeconfig de K3s: ```bash mkdir -p ~/.kube sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config sudo chown "$USER": ~/.kube/config chmod 600 ~/.kube/config echo 'export KUBECONFIG=$HOME/.kube/config' >> ~/.bashrc source ~/.bashrc ``` Comprueba que el nodo está listo: ```bash kubectl get nodes ``` ```output NAME STATUS ROLES AGE VERSION rancher Ready control-plane,master 1m v1.33.4+k3s1 ``` ## Paso 3: Instalar Helm Rancher y cert-manager se distribuyen como charts de Helm. Instala Helm desde Snap: ```bash sudo snap install helm --classic ``` Comprueba la versión: ```bash helm version --short ``` ```output v3.18.6+g... ``` ## Paso 4: Instalar cert-manager Rancher delega en cert-manager la solicitud y renovación del certificado de Let's Encrypt. Añade el repositorio de Jetstack e instala el chart con sus CRD: ```bash helm repo add jetstack https://charts.jetstack.io helm repo update helm install cert-manager jetstack/cert-manager \ --namespace cert-manager \ --create-namespace \ --set crds.enabled=true ``` Comprueba que los tres componentes están en ejecución: ```bash kubectl get pods -n cert-manager ``` ```output NAME READY STATUS RESTARTS AGE cert-manager-5c9d8879fd-7xk2p 1/1 Running 0 60s cert-manager-cainjector-6cc9b5f678-jq4zl 1/1 Running 0 60s cert-manager-webhook-7bb7b75848-mrt6d 1/1 Running 0 60s ``` ## Paso 5: Instalar Rancher Añade el repositorio estable de Rancher y crea su namespace: ```bash helm repo add rancher-stable https://releases.rancher.com/server-charts/stable helm repo update kubectl create namespace cattle-system ``` Instala Rancher. Sustituye `rancher.your_domain` por tu dominio, `your_email` por un correo donde recibir avisos de Let's Encrypt y `your_bootstrap_password` por una contraseña temporal que solo usarás en el primer acceso: ```bash helm install rancher rancher-stable/rancher \ --namespace cattle-system \ --set hostname=rancher.your_domain \ --set bootstrapPassword=your_bootstrap_password \ --set replicas=1 \ --set ingress.tls.source=letsEncrypt \ --set letsEncrypt.email=your_email \ --set letsEncrypt.ingress.class=traefik ``` Estas opciones hacen lo siguiente: - `replicas=1`: el chart despliega 3 réplicas por defecto, pensadas para un clúster de 3 nodos. En un solo nodo basta con una. - `ingress.tls.source=letsEncrypt`: cert-manager pide el certificado a Let's Encrypt mediante el reto HTTP-01. - `letsEncrypt.ingress.class=traefik`: el reto HTTP-01 se sirve a través del Traefik que incluye K3s. Espera a que el despliegue termine. Rancher tarda unos minutos en arrancar: ```bash kubectl -n cattle-system rollout status deploy/rancher ``` ```output deployment "rancher" successfully rolled out ``` Comprueba que el certificado se ha emitido: ```bash kubectl get certificate -n cattle-system ``` ```output NAME READY SECRET AGE tls-rancher-ingress True tls-rancher-ingress 3m ``` Por último, prueba el acceso HTTPS desde el propio servidor: ```bash curl -sI https://rancher.your_domain | head -n 1 ``` ```output HTTP/2 200 ``` ## Paso 6: Acceder a Rancher por primera vez Abre `https://rancher.your_domain` en el navegador. Rancher pide la contraseña de arranque que definiste con `bootstrapPassword`. Si no la recuerdas, recupérala del Secret que crea el chart: ```bash kubectl get secret bootstrap-secret -n cattle-system -o go-template='{{.data.bootstrapPassword | base64decode}}{{"\n"}}' ``` Tras iniciar sesión, el asistente te pide: 1. Una contraseña nueva y robusta para el usuario `admin`. La de arranque deja de ser válida. 2. Confirmar la **Server URL** (`https://rancher.your_domain`). Los clústeres gestionados usarán esta URL para conectarse a Rancher, así que debe ser accesible desde ellos. 3. Aceptar los términos de uso. Al terminar verás el panel **Home** con un clúster llamado `local`: es el propio K3s donde corre Rancher. No despliegues cargas de trabajo en él; úsalo solo para Rancher. ## Paso 7: Importar un clúster existente Rancher puede gestionar cualquier clúster Kubernetes que tenga salida a Internet hacia `rancher.your_domain` por el puerto 443. Para importarlo: 1. En el menú lateral, abre **Cluster Management**. 2. Pulsa **Import Existing** y elige **Generic**. 3. Escribe un nombre para el clúster, por ejemplo `produccion`, y pulsa **Create**. 4. Rancher muestra un comando `kubectl apply` con una URL de registro única. Cópialo. Ejecuta ese comando con un `kubectl` que apunte al clúster que quieres importar (no al K3s de Rancher). Tendrá esta forma: ```bash kubectl apply -f https://rancher.your_domain/v3/import/your_import_token.yaml ``` El manifiesto crea el namespace `cattle-system` en el clúster importado y despliega el agente que abre una conexión saliente hacia Rancher. Comprueba que el agente arranca: ```bash kubectl get pods -n cattle-system ``` ```output NAME READY STATUS RESTARTS AGE cattle-cluster-agent-6d8c5b7c9f-2hl4w 1/1 Running 0 90s ``` En la interfaz de Rancher, el clúster pasará de `Pending` a `Active` en uno o dos minutos. Desde ese momento puedes ver sus nodos, desplegar cargas de trabajo, instalar charts desde **Apps** y dar acceso a otros usuarios con roles por clúster o por proyecto. ## Solución de problemas - **El certificado se queda en `READY False`**: Let's Encrypt no llega al reto HTTP-01. Revisa que el registro A apunta a `your_server_ip`, que el puerto 80 está abierto y el detalle del reto con `kubectl describe challenge -A`. - **`helm install` falla con un error de `kubeVersion`**: la versión de K3s no está soportada por esa versión de Rancher. Reinstala K3s con un canal soportado según la matriz de Rancher. - **El navegador muestra `404 page not found`**: Traefik no encuentra un Ingress para ese nombre. Comprueba que el dominio que usas coincide exactamente con el `hostname` del chart con `kubectl get ingress -n cattle-system`. - **El clúster importado se queda en `Pending`**: el agente no llega a Rancher. Revisa `kubectl logs -n cattle-system deploy/cattle-cluster-agent` en el clúster importado; suele ser un problema de DNS o de salida al puerto 443. ## Conclusión Tienes Rancher funcionando sobre K3s con un certificado válido de Let's Encrypt y un primer clúster importado bajo su gestión. Como siguientes pasos, instala el operador **Rancher Backups** desde **Apps** para programar copias de seguridad de Rancher, conecta un proveedor de identidad (LDAP, GitHub u OIDC) en **Users & Authentication**, y si Rancher pasa a ser crítico, migra a un clúster K3s de 3 nodos con `replicas=3`.