Skip to content

Comandos kubectl explicados

Os comandos kubectl usados no dia a dia, agrupados por função: ler o cluster, inspecionar workloads, aplicar e reverter alterações, expor serviços, gerir nós e criar objetos de configuração. Cada linha emparelha o comando com uma invocação realista.

O kubectl é o seu ponto de contacto com um cluster Kubernetes. O modelo é declarativo: normalmente aplica um manifest (apply -f) em vez de criar coisas de forma imperativa e depois lê o resultado (get, describe, logs). Os comandos abaixo cobrem a operação diária; junte-lhes uma flag de namespace (-n nome) quando não está no namespace predefinido.

Tabela de referência · 59 entradas
59 of 59 rows
Cluster e contexto
Mostra onde correm o control plane e os serviços principais.kubectl cluster-info
Lista os clusters e namespaces entre os quais pode alternar.kubectl config get-contexts
Muda para um contexto de cluster ou namespace diferente.kubectl config use-context my-prod
Define o namespace predefinido do contexto atual.kubectl config set-context --current --namespace=staging
Renomeia um contexto guardado no seu kubeconfig.kubectl config rename-context old-name prod
Lista todos os tipos de recursos que o cluster conhece.kubectl api-resources
Imprime as versões de Kubernetes do cliente e do servidor.kubectl version
Mostra os campos que um recurso suporta, lidos do esquema da API.kubectl explain pod.spec.containers
Verifica se o utilizador atual pode executar uma dada ação.kubectl auth can-i delete pods
Inspecionar workloads
Lista pods e o seu estado; acrescente -o wide para nó e IP.kubectl get pods -A
Lista os recursos comuns de um namespace numa única chamada.kubectl get all
Acrescenta colunas de nó e IP a qualquer comando get.kubectl get pods -o wide
Imprime um recurso como o manifest YAML completo que o sustenta.kubectl get deploy/web -o yaml
Lista deployments e quantas réplicas estão prontas.kubectl get deployments
Lista stateful sets e as suas réplicas prontas.kubectl get statefulsets
Lista jobs de lote e cron jobs agendados.kubectl get jobs,cronjobs
Mostra eventos, labels e estado de um pod.kubectl describe pod web-abc
Mostra a capacidade, condições e pods em execução de um nó.kubectl describe node node-1
Imprime o stdout de um pod; -f para seguir, --previous para o último crash.kubectl logs -f web-abc
Executa um comando dentro de um pod em execução.kubectl exec -it web-abc -- sh
CPU e memória em direto de pods ou nós (requer metrics-server).kubectl top pods
Lista eventos recentes como pulls falhados e backoffs.kubectl get events -A --sort-by=.lastTimestamp
Lista regras de ingress e os seus endereços de load balancer.kubectl get ingress
Copia ficheiros entre a sua máquina e um pod em execução.kubectl cp web-abc:/var/log/app.log ./app.log
Bloqueia até um recurso cumprir uma condição.kubectl wait --for=condition=ready pod -l app=web
Arranca um pod descartável a partir de uma imagem, sem manifest.kubectl run debug --rm -it --image=busybox -- sh
Aplicar, escalar, lançar
Mostra o que o apply mudaria, sem mudar nada.kubectl diff -f deploy.yaml
Cria ou atualiza recursos a partir de um ficheiro manifest.kubectl apply -f deploy.yaml
Aplica manifests e elimina objetos que deles saíram.kubectl apply -f dir/ --prune -l app=web
Abre um recurso vivo no seu editor e aplica ao guardar.kubectl edit deploy/web
Altera alguns campos num recurso vivo.kubectl patch deploy/web --patch-file fix.json
Aponta os contentores de um deployment para uma nova imagem.kubectl set image deploy/web web=nginx:1.27
Substitui um objeto, eliminando-o e recriando-o quando necessário.kubectl replace --force -f deploy.yaml
Remove os recursos declarados num ficheiro manifest.kubectl delete -f deploy.yaml
Altera a contagem de réplicas de um deployment.kubectl scale deploy/web --replicas=4
Observa um rollout terminar ou falhar.kubectl rollout status deploy/web
Lista as revisões pelas quais um rollout passou.kubectl rollout history deploy/web
Reinicia todos os pods de um deployment, um de cada vez.kubectl rollout restart deploy/web
Reverte um deployment para a revisão anterior.kubectl rollout undo deploy/web
Serviços e rede
Lista serviços com o seu tipo e IP de cluster.kubectl get svc
Mostra que IPs de pods sustentam atualmente cada serviço.kubectl get endpoints web
Cria um serviço à frente de um conjunto de pods; --type=NodePort ou LoadBalancer alcança o exterior do cluster.kubectl expose deploy/web --port=80
Mostra o endereço do load balancer por trás de cada ingress (alfa).kubectl ingress status -A
Lista as políticas que restringem o tráfego de pods.kubectl get networkpolicies
Encaminha um port local para um pod ou serviço.kubectl port-forward svc/web 8080:80
Nós e manutenção
Lista os nós do cluster e o seu estado.kubectl get nodes -o wide
Marca um nó como não agendável (sem novos pods).kubectl cordon node-1
Volta a marcar um nó como agendável.kubectl uncordon node-1
Despeja os pods de um nó e marca-o como não agendável.kubectl drain node-1 --ignore-daemonsets
Adiciona ou remove um taint que afasta pods de um nó.kubectl taint node node-1 key=value:NoSchedule
Elimina de imediato um pod bloqueado, saltando o encerramento gracioso.kubectl delete pod web-abc --grace-period=0 --force
Objetos e configuração
Cria um novo namespace onde enquadrar recursos.kubectl create namespace staging
Lista namespaces e o seu estado.kubectl get namespaces
Guarda chaves ou ficheiros de configuração como objeto do cluster.kubectl create configmap app --from-file=config.yaml
Lista os config maps no namespace.kubectl get configmaps
Guarda uma palavra-passe ou certificado como secret.kubectl create secret generic db --from-literal=password=s3cret
Lista os secrets no namespace.kubectl get secrets
Anexa ou remove uma label num recurso.kubectl label pod web-abc tier=backend
Anexa metadados que os seletores não conseguem comparar.kubectl annotate deploy/web release=july