Shell remoto no cluster Kubernetes pelo Tailscale
Em breve: o Kubepier instala um pod de shell no seu cluster e o liga ao seu tailnet Tailscale. Você abre o shell do celular, do notebook ou do navegador, com Tailscale SSH, ACL do seu tailnet e nenhuma porta aberta para a internet. A função ainda não está disponível: entre na lista de espera do beta.
Status: em desenvolvimento
Em breve: o Shell remoto via Tailscale está em desenvolvimento e vai abrir primeiro como beta fechado, por lista de espera. O que está aqui descreve como ele vai funcionar e pode mudar até a liberação. Hoje, para shell, use o Shell no pod e no nó e o Bastion.
Para que serve
- Abrir um shell no cluster de qualquer lugar, inclusive do celular, sem VPN corporativa, sem bastion com IP público e sem abrir a API do Kubernetes para a internet.
- Alcançar clusters privados (AKS e EKS com endpoint privado, on-premises): o pod sai para o Tailscale e você entra pelo seu tailnet, sem nada de entrada liberado no firewall.
- Ter kubectl, helm, k9s e ferramentas de rede (curl, nc, dig, ssh) já instalados, com o RBAC que você escolher.
Como vai funcionar
- Um item próprio, Shell, no menu do Kubepier Web e do Kubepier Desktop, separado dos clientes e dos clusters.
- Um assistente instala no cluster o Deployment kubepier-shell, no namespace kubepier-shell, com o Tailscale em modo userspace (sem privilégio e sem hostNetwork).
- O pod entra no SEU tailnet com uma tag (tag:kubepier-shell) e uma chave de autenticação de uso único, tagueada e pré-aprovada, gerada no seu Tailscale. Nunca uma chave da TR99.
- Quem pode entrar é decidido pela ACL do seu tailnet (grants e regras ssh), com a opção check, que pede novo login no Tailscale de tempos em tempos.
- No celular: app do Tailscale (iOS e Android) e um cliente SSH, como Termius, Blink Shell ou JuiceSSH. No Linux, Windows e macOS: tailscale ssh ou o ssh do sistema.
- No navegador (opcional): o Kubepier Web abre o mesmo pod num terminal, pela API do Kubernetes, como o shell no pod de hoje.
- Revogar é um clique: o Kubepier apaga o pod e os Secrets e, com um OAuth client do seu tailnet, remove também a máquina do tailnet.
Segurança
- Sem portas públicas: o pod só faz conexões de saída para o Tailscale.
- Perfis de RBAC na instalação: só leitura (view), operação em namespaces escolhidos, admin do cluster (com confirmação digitada) ou sem acesso à API (só rede).
- Pod sem privilégio, perfil PodSecurity restricted, imagem fixada por digest.
- Instalar, trocar o perfil, revogar e desinstalar vão para a auditoria do Kubepier. As conexões SSH ficam registradas do lado do seu Tailscale; o Kubepier não grava o que é digitado.
- Ação de admin no Kubepier Web, com confirmação digitada, como as outras ações perigosas.
Planos
Previsto para os planos Pro e Team, na web e no desktop, com os mesmos limites. No Free, o menu Shell aparece com cadeado, como as outras funções pagas. O Tailscale é contratado por você, direto com o Tailscale. No plano Personal (gratuito) do Tailscale, o Tailscale SSH vale para até 5 hosts, ou seja, até 5 clusters com o shell; acima disso, é um plano pago do Tailscale. Preço e limites podem mudar até a liberação.
Entrar na lista de espera
Mande um e-mail para contato@kubepier.com.br com o assunto "Lista de espera: Shell remoto via Tailscale", dizendo a nuvem (Azure, AWS, outra), se o cluster é privado e de quais dispositivos você quer entrar. Avisamos quando o beta abrir.