Tutorial — Acessar o cluster Kubernetes pelo seu PC
Tutorial — Acessar o cluster Kubernetes pelo seu PC
Este tutorial ensina a instalar as ferramentas necessárias, configurar o acesso ao cluster e usar os comandos do dia a dia para inspecionar e interagir com os projetos.
O que você vai precisar
| Ferramenta | Para que serve |
|---|---|
glab |
CLI do GitLab — faz login e gera o acesso ao cluster |
kubectl |
CLI do Kubernetes — roda os comandos dentro do cluster |
As duas ferramentas trabalham juntas: o glab cuida da autenticação com o GitLab, e o kubectl usa essa autenticação para falar com o cluster.
Parte 1 — Instalação
Instalar glab e kubectl (Debian / Ubuntu)
sudo apt update && sudo apt install -y glab kubectl
Verificar se instalou corretamente
glab version
kubectl version --client
Se os dois comandos retornarem uma versão, a instalação está OK.
Parte 2 — Configuração (feita uma única vez)
Passo 1 — Fazer login no GitLab
glab auth login --hostname gitlab.setic.ufsc.br
O comando vai pedir um token de acesso pessoal.
GitLab → Avatar (canto superior direito)
→ Edit Profile
→ Access Tokens
→ Add new token
Na criação do token marque:
api
write_repository
Copie o token gerado e cole no terminal quando o glab solicitar.
Passo 2 — Gerar o arquivo de acesso ao cluster
glab cluster agent update-kubeconfig \
--repo 'gitlab.setic.ufsc.br/dtr/k8s-agents' \
--agent 1 \
--use-context
Saída esperada:
Updated context gitlab_setic_ufsc_br-dtr_k8s-agents-sites-k8s-0.
Using context gitlab_setic_ufsc_br-dtr_k8s-agents-sites-k8s-0.
Esse comando grava as informações de acesso em:
~/.kube/config
A autenticação continua sendo feita pelo GitLab usando tokens temporários renovados automaticamente.
⚠️ Se você trabalha com mais de um cluster (UFSC, homelab etc.), sempre confirme qual contexto está ativo antes de executar comandos destrutivos.
Passo 3 — Confirmar que está tudo certo
kubectl config current-context
Saída esperada:
gitlab_setic_ufsc_br-dtr_k8s-agents-sites-k8s-0
Teste de acesso:
kubectl get pods -n gl-1568
Exemplo:
NAME READY STATUS RESTARTS AGE
meditation-timer-6bb7458cf9-d69gl 1/1 Running 0 5m
Se aparecer Forbidden, seu usuário GitLab provavelmente não possui papel Developer, Maintainer ou Owner no projeto.
Parte 3 — Entrar dentro do pod (kubectl exec)
Para abrir um terminal interativo:
kubectl exec -n gl-1568 -it deploy/meditation-timer -- sh
Exemplo de prompt:
/app #
Para sair:
exit
⚠️ Alterações feitas dentro do pod não persistem após reinicialização ou novo deploy.
Parte 4 — Referência de comandos
glab
| Comando | O que faz |
|---|---|
glab auth login --hostname gitlab.setic.ufsc.br |
Faz login na instância GitLab da UFSC |
glab auth status |
Mostra autenticação atual |
glab auth logout --hostname gitlab.setic.ufsc.br |
Remove autenticação salva |
glab cluster agent list --repo 'gitlab.setic.ufsc.br/dtr/k8s-agents' |
Lista os agentes disponíveis |
glab cluster agent update-kubeconfig --repo 'gitlab.setic.ufsc.br/dtr/k8s-agents' --agent 1 --use-context |
Gera/atualiza o kubeconfig |
kubectl — contexto e cluster
| Comando | O que faz |
|---|---|
kubectl config current-context |
Mostra o cluster ativo |
kubectl config get-contexts |
Lista os contextos configurados |
kubectl config use-context <nome> |
Troca de contexto |
kubectl cluster-info |
Mostra informações do cluster |
kubectl — pods
| Comando | O que faz |
|---|---|
kubectl get pods -n gl-1568 |
Lista pods |
kubectl get pods -n gl-1568 -o wide |
Lista pods com IP e node |
kubectl describe pod <nome-do-pod> -n gl-1568 |
Detalhes completos do pod |
kubectl logs <nome-do-pod> -n gl-1568 |
Mostra logs |
kubectl logs <nome-do-pod> -n gl-1568 -f |
Logs em tempo real |
kubectl logs <nome-do-pod> -n gl-1568 --previous |
Logs da execução anterior |
kubectl delete pod <nome-do-pod> -n gl-1568 |
Remove o pod (Deployment recria) |
kubectl — exec
| Comando | O que faz |
|---|---|
kubectl exec -n gl-1568 -it deploy/meditation-timer -- sh |
Terminal dentro do Deployment |
kubectl exec -n gl-1568 -it deploy/meditation-timer -c app -- sh |
Terminal em container específico |
kubectl exec -n gl-1568 <nome-do-pod> -- env |
Executa comando único |
kubectl exec -n gl-1568 <nome-do-pod> -- cat /etc/os-release |
Exemplo de comando único |
kubectl — deployments
| Comando | O que faz |
|---|---|
kubectl get deployments -n gl-1568 |
Lista Deployments |
kubectl describe deployment meditation-timer -n gl-1568 |
Detalhes do Deployment |
kubectl rollout status deployment/meditation-timer -n gl-1568 |
Acompanha rollout |
kubectl rollout restart deployment/meditation-timer -n gl-1568 |
Reinicia pods |
kubectl rollout undo deployment/meditation-timer -n gl-1568 |
Volta para versão anterior |
kubectl scale deployment meditation-timer --replicas=0 -n gl-1568 |
Para o serviço |
kubectl scale deployment meditation-timer --replicas=1 -n gl-1568 |
Inicia o serviço |
kubectl — services e ingress
| Comando | O que faz |
|---|---|
kubectl get services -n gl-1568 |
Lista Services |
kubectl get ingress -n gl-1568 |
Lista Ingresses |
kubectl describe ingress meditation-timer -n gl-1568 |
Mostra detalhes do Ingress |
kubectl — verificação de permissões
| Comando | O que faz |
|---|---|
kubectl auth can-i get pods -n gl-1568 |
Verifica acesso aos pods |
kubectl auth can-i exec pods -n gl-1568 |
Verifica acesso ao exec |
kubectl auth can-i create rolebindings -n gl-1568 |
Verifica acesso a RoleBindings |
kubectl auth whoami |
Mostra identidade atual |
Resumo do fluxo completo
Primeira vez na máquina
sudo apt update && sudo apt install -y glab kubectl
glab auth login --hostname gitlab.setic.ufsc.br
glab cluster agent update-kubeconfig \
--repo 'gitlab.setic.ufsc.br/dtr/k8s-agents' \
--agent 1 \
--use-context
Uso do dia a dia
kubectl config current-context
kubectl get pods -n gl-1568
kubectl logs <nome-do-pod> -n gl-1568 -f
kubectl exec -n gl-1568 -it deploy/meditation-timer -- sh
Nenhum comentário para exibir
Nenhum comentário para exibir