🧩 Instalador K3s
Un instalador de K3s Kubernetes inteligente y automatizado para sistemas Linux (probado con Ubuntu). Este script detecta automáticamente su entorno de red (VPN, IP pública, FQDN), instala K3s con configuraciones seguras y configura su kubeconfig para uso inmediato.
📥 Instalación
Opción 1 — Descarga manual y ejecución
curl -fsSL https://eliasmeireles.com.br/tools/k8s/k3s-install.sh -o k3s-install.sh
chmod +x k3s-install.sh
./k3s-install.sh [opciones]
Opción 2 — Ejecutar directamente con curl | bash
curl -fsSL https://eliasmeireles.com.br/tools/k8s/k3s-install.sh | bash -s -- --cn my-cluster
🚀 Uso
El script admite múltiples opciones de personalización, aunque intenta detectar automáticamente la mayoría de las configuraciones:
./k3s-install.sh [--cn <nombre>] [--cip <ip>] [--vpn-if <iface>] [--pubip <ip>] [--cleanup] [--continue]
Opciones Disponibles
| Opción | Descripción | Predeterminado |
|---|---|---|
--cn | Establece el nombre del clúster (usado en el contexto kubeconfig). | k8s-local |
--cip | Establece la IP del Clúster (IP Interna/VPN). | Auto-detectado (VPN > Hostname IP) |
--vpn-if | Establece el nombre de la interfaz VPN (ej. wt0, wg0). | Auto-detectado |
--pubip | Establece la IP Pública (para acceso externo). | Auto-detectado (Amazon CheckIP > Route) |
--path | Establece el directorio de datos. | /mnt/data |
--cleanup | Desinstala K3s y limpia los directorios de datos. | Opcional |
--continue | Usado con --cleanup para reinstalar inmediatamente después de limpiar. | Opcional |
--help | Muestra información de ayuda y uso. | — |
⚙️ Ejemplos
1. Instalación Inteligente (Auto-detectar todo)
./k3s-install.sh
2. Nombre de Clúster Personalizado e Interfaz VPN Explícita
./k3s-install.sh --cn dev-cluster --vpn-if wg0
3. Limpiar Instalación Existente
./k3s-install.sh --cleanup
4. Limpiar y Reinstalar (Inicio Fresco)
./k3s-install.sh --cleanup --continue
🧩 Características
Detección de Red:
- Encuentra automáticamente interfaces VPN (WireGuard, NetBird, etc.) para vincular tráfico interno.
- Detecta IP Pública para configuración de acceso externo (
node-external-ip). - Detecta FQDN (vía NetBird o hostname).
Configuración Segura:
- Vincula el API Server y el Advertiser a la IP del Clúster/VPN.
- Añade FQDN, IP Pública y Localhost a los SANs de TLS para conectividad segura.
Configuración de Kubeconfig:
- Copia y ajusta permisos automáticamente de
~/.kube/config. - Actualiza la URL del servidor para usar el FQDN para acceso remoto.
- Establece el nombre del contexto para que coincida con su Nombre de Clúster.
- Copia y ajusta permisos automáticamente de
Verificación:
- Espera a que el API server esté listo.
- Verifica el estado del nodo.
- Proporciona comandos para verificar la validez del certificado.
📋 Verificaciones Post-Instalación
Después de la instalación, verifique su clúster:
# Verificar nodos
kubectl get nodes -o wide
# Verificar certificado (desde máquina remota)
openssl s_client -connect <FQDN>:6443 2>/dev/null | openssl x509 -noout -text | grep DNS: