Ir para o conteúdo principal

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