🧩 Instalador K3s
Um instalador K3s Kubernetes inteligente e automatizado para sistemas Linux (testado com Ubuntu). Este script detecta automaticamente o seu ambiente de rede (VPN, IP Público, FQDN), instala o K3s com configurações seguras e configura o seu kubeconfig para uso imediato.
📥 Instalação
Opção 1 — Download manual e execução
curl -fsSL https://eliasmeireles.com.br/tools/k8s/k3s-install.sh -o k3s-install.sh
chmod +x k3s-install.sh
./k3s-install.sh [opções]
Opção 2 — Executar diretamente com curl | bash
curl -fsSL https://eliasmeireles.com.br/tools/k8s/k3s-install.sh | bash -s -- --cn my-cluster
🚀 Uso
O script suporta várias opções para personalização, embora tente detectar automaticamente a maioria das configurações:
./k3s-install.sh [--cn <nome>] [--cip <ip>] [--vpn-if <iface>] [--pubip <ip>] [--cleanup] [--continue]
Opções Disponíveis
| Opção | Descrição | Padrão |
|---|---|---|
--cn | Define o nome do cluster (usado no contexto do kubeconfig). | k8s-local |
--cip | Define o IP do Cluster (IP Interno/VPN). | Auto-detectado (VPN > Hostname IP) |
--vpn-if | Define o nome da interface VPN (ex: wt0, wg0). | Auto-detectado |
--pubip | Define o IP Público (para acesso externo). | Auto-detectado (Amazon CheckIP > Rota) |
--path | Define o diretório de dados. | /mnt/data |
--cleanup | Desinstala o K3s e limpa os diretórios de dados. | Opcional |
--continue | Usado com --cleanup para reinstalar imediatamente após a limpeza. | Opcional |
--help | Exibe informações de ajuda e uso. | — |
⚙️ Exemplos
1. Instalação Inteligente (Auto-detectar tudo)
./k3s-install.sh
2. Nome de Cluster Personalizado e Interface VPN Explícita
./k3s-install.sh --cn dev-cluster --vpn-if wg0
3. Limpar Instalação Existente
./k3s-install.sh --cleanup
4. Limpar e Reinstalar (Começo Limpo)
./k3s-install.sh --cleanup --continue
🧩 Funcionalidades
Detecção de Rede:
- Encontra automaticamente interfaces VPN (WireGuard, NetBird, etc.) para vincular tráfego interno.
- Detecta IP Público para configuração de acesso externo (
node-external-ip). - Detecta FQDN (via NetBird ou hostname).
Configuração Segura:
- Vincula o API Server e o Advertiser ao IP do Cluster/VPN.
- Adiciona FQDN, IP Público e Localhost aos SANs TLS para conectividade segura.
Configuração do Kubeconfig:
- Copia e ajusta permissões automaticamente do
~/.kube/config. - Atualiza a URL do servidor para usar o FQDN para acesso remoto.
- Define o nome do contexto para corresponder ao seu Nome de Cluster.
- Copia e ajusta permissões automaticamente do
Verificação:
- Aguarda o servidor API estar pronto.
- Verifica o status do nó.
- Fornece comandos para verificar a validade do certificado.
📋 Verificações Pós-Instalação
Após a instalação, verifique seu cluster:
# Verificar nós
kubectl get nodes -o wide
# Verificar certificado (de uma máquina remota)
openssl s_client -connect <FQDN>:6443 2>/dev/null | openssl x509 -noout -text | grep DNS: