Clusters · Pro e Team

Shell no pod e no nó (node shell)

Shell num container e shell no nó (node shell) para acessar o nó do Kubernetes, do navegador ou do desktop. Os dois são dos planos Pro e Team e só admin abre (no desktop, a partir da 2.7.0); o shell no nó pede que você digite o nome do nó.

Onde
Web e Desktop
Planos
Pro e Team
Papel
Só admin (no desktop, a partir da 2.7.0)

O que faz

  • Web, pod: abra o pod e escolha o container; o terminal abre no painel inferior, ligado ao exec do Kubernetes.
  • Web, nó: no nó, Shell abre um terminal no próprio nó depois que você digita o nome do node para confirmar. Só admin de organização Pro ou Team.
  • Desktop, pod: os menus Shell e Attach do pod, do Freelens.
  • Desktop, nó: no menu do nó, Shell abre um terminal no próprio nó. No mesmo menu ficam Cordon, Uncordon e Drain, que continuam só no desktop.

Limites e tempos

LimiteValor
Web: duração de uma sessão (pod ou nó)2 horas
Web: sessões por pessoa3 terminais ao mesmo tempo, somando shell no pod, shell no nó e bastion
Web, nó: sessões por pessoa e cluster1
Web, nó: espera o pod do shell subiraté 120 s; depois, o pod é apagado
Web, nó: confirmaçãodigitar o nome do node
Web: tamanho de cada mensagem do terminal64 KB
Desktop, nó: espera o pod do shell ficar Runningaté 2 minutos

O que não é aceito

  • Web: membro, plano Free, ou conexão vinda de outro site (a origem é conferida).
  • Web, nó: nome digitado diferente do nome do node; um segundo shell seu no mesmo cluster; nodes Windows (use o desktop), Fargate e virtual-kubelet.
  • Desktop: plano Free (a partir da 2.4.0, os menus aparecem com cadeado e um aviso para assinar; até a 2.3.0, ficam escondidos) e, a partir da 2.7.0, membro de organização Team.
  • Shell no nó, na web e no desktop, quando o cluster bloqueia pod privilegiado no kube-system: Pod Security Admission, Azure Policy, Gatekeeper ou Kyverno. Na web, a mensagem de erro explica como liberar no AKS e no EKS.

Como o shell no nó funciona (acessar o nó do Kubernetes)

  • Web: o servidor do Kubepier cria, com a credencial do cluster, um pod efêmero kubepier-shell-no-* no kube-system, fixo no node escolhido, com a imagem alpine fixada por digest, privilegiado e sem token de service account. O terminal entra no node com nsenter (no Bottlerocket, pelo apiclient).
  • Web: o pod é apagado ao fechar o terminal, em erro, se a conexão cai, se não sobe em 120 s ou ao fim de 2 horas.
  • Desktop: o app cria um pod no namespace kube-system, fixo no nó escolhido, com privileged, hostPID, hostIPC e hostNetwork, prioridade system-node-critical e tolerância a qualquer taint.
  • Desktop: até a 2.6.0, a imagem padrão é docker.io/library/alpine, sem prazo para o pod; a partir da 2.7.0, alpine:3.24.2 fixada por digest, o pod dura no máximo 2 horas e não recebe token de ServiceAccount, e abrir pede o nome do nó digitado (só admin). Em nós Windows, mcr.microsoft.com/powershell. Dá para trocar a imagem e informar um imagePullSecret nas configurações do cluster.
  • Desktop: o terminal entra no pod com kubectl attach. Ao fechar, o pod é apagado.

Auditoria

  • Web, pod: cada sessão aberta vai para a auditoria da organização, com quem, quando, cluster, pod, container e se abriu.
  • Web, nó: "Abriu shell no node" e "Fechou shell no node", com quem, quando, cluster, node, pod e duração.
  • Desktop: cada sessão de shell no pod e no nó vai para o arquivo kubepier-audit.log, na pasta de dados do app, na abertura e no fechamento, com quem, quando, cluster, alvo e a duração. Até a 2.6.0, terminais locais (da sua máquina) não são registrados; a partir da 2.7.0, a abertura e o fechamento do terminal local também vão para o kubepier-audit.log.
  • O que é digitado e o que aparece no terminal nunca é gravado.

Permissões necessárias do seu lado

FunçãoPermissão do Kubernetes (RBAC)
Shell no pod (web e desktop)create em pods/exec (e get no pod)
Attach (desktop)create em pods/attach
Shell no nó (web)create e delete em pods e create em pods/exec no kube-system; get em nodes; admissão que aceite pod privilegiado no kube-system
Shell no nó (desktop)create, get, list, watch e delete em pods no kube-system; create em pods/attach no kube-system; admissão que aceite pod privilegiado com hostPID, hostIPC e hostNetwork no kube-system
Cordon e Uncordon (desktop)patch em nodes
Drain (desktop)patch em nodes, list em pods e create em pods/eviction

Erros comuns

  • "Too Many Requests" ao abrir o shell na web: você já tem 3 terminais abertos, ou já tem um shell no nó nesse cluster.
  • Shell no nó recusado pela admissão (PodSecurity, Azure Policy, Gatekeeper, Kyverno): o cluster bloqueia pod privilegiado no kube-system. Siga a mensagem para liberar no AKS ou no EKS, ou use outro acesso ao nó.
  • Shell no nó num node Windows, Fargate ou virtual-kubelet: não é aceito na web; para Windows, use o desktop.
  • "Pod creation timed out" no shell do nó (desktop): o pod não ficou Running em 2 minutos: confira se a imagem é baixável no nó e se a admissão aceita pod privilegiado.
  • 403: falta o verbo da tabela acima na credencial.