🧩 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çãoDescriçãoPadrão
--cnDefine o nome do cluster (usado no contexto do kubeconfig).k8s-local
--cipDefine o IP do Cluster (IP Interno/VPN).Auto-detectado (VPN > Hostname IP)
--vpn-ifDefine o nome da interface VPN (ex: wt0, wg0).Auto-detectado
--pubipDefine o IP Público (para acesso externo).Auto-detectado (Amazon CheckIP > Rota)
--pathDefine o diretório de dados./mnt/data
--cleanupDesinstala o K3s e limpa os diretórios de dados.Opcional
--continueUsado com --cleanup para reinstalar imediatamente após a limpeza.Opcional
--helpExibe 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

  1. 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).
  2. 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.
  3. 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.
  4. 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: