Esta página contém uma lista dos comandos kubectl mais utilizados e suas flags.
Nodes (Nós) #
kubectl get no # Exibir informações de todos os nós
kubectl get no -o wide # Mostrar mais informações sobre todos os nós
kubectl describe no # Exibir detalhes dos nós
kubectl get no -o yaml # Exibir detalhes dos nós em formato yaml
kubectl get node --selector=[label_name] # Filtrar nós com o label especificado
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type="ExternalIP")].address}'
# Saída com informações definidas pela expressão jsonpath
kubectl top node [node_name] # Exibir uso do nó (CPU/memória/armazenamento)
Nome do recurso: nodes, Abreviação: no
Pods (Containers) #
kubectl get po # Exibir informações de todos os pods
kubectl get po -o wide # Mostrar mais informações sobre todos os pods
kubectl describe po # Exibir detalhes dos pods
kubectl get po --show-labels # Visualizar os labels dos pods
kubectl get po -l app=nginx # Filtrar pods por label
kubectl get po -o yaml # Exibir detalhes dos pods em formato yaml
kubectl get pod [pod_name] -o yaml --export # Exportar informações do pod em yaml
kubectl get pod [pod_name] -o yaml --export > nameoffile.yaml
# Exportar informações do pod para arquivo yaml
kubectl get pods --field-selector status.phase=Running
# Usar field selector para filtrar pods
Nome do recurso: pods, Abreviação: po
Namespaces #
kubectl get ns # Listar todos os namespaces
kubectl get ns -o yaml # Exibir namespaces em formato yaml
kubectl describe ns # Exibir detalhes dos namespaces
Nome do recurso: namespaces, Abreviação: ns
Deployments #
kubectl get deploy # Listar todos os deployments
kubectl describe deploy # Exibir detalhes dos deployments
kubectl get deploy -o wide # Mostrar mais informações dos deployments
kubectl get deploy -o yaml # Exibir deployments em formato yaml
Nome do recurso: deployments, Abreviação: deploy
Services (Serviços) #
kubectl get svc # Listar todos os serviços
kubectl describe svc # Exibir detalhes dos serviços
kubectl get svc -o wide # Mostrar mais informações dos serviços
kubectl get svc -o yaml # Exibir serviços em formato yaml
kubectl get svc --show-labels # Mostrar labels dos serviços
Nome do recurso: services, Abreviação: svc
DaemonSets #
kubectl get ds # Listar todos os daemonsets
kubectl describe ds --all-namespaces # Descrever daemonsets em todos os namespaces
kubectl describe ds [daemonset_name] -n [namespace_name]
# Descrever daemonset específico
kubectl get ds [ds_name] -n [ns_name] -o yaml # Exibir daemonset em formato yaml
Nome do recurso: daemonsets, Abreviação: ds
Events (Eventos) #
kubectl get events # Listar todos os eventos
kubectl get events -n kube-system # Listar eventos de um namespace específico
kubectl get events -w # Monitorar eventos em tempo real
Nome do recurso: events, Abreviação: ev
Logs #
kubectl logs [pod_name] # Exibir logs do pod
kubectl logs --since=1h [pod_name] # Logs da última hora
kubectl logs --tail=20 [pod_name] # Últimas 20 linhas de log
kubectl logs -f -c [container_name] [pod_name] # Follow logs de container específico
kubectl logs [pod_name] > pod.log # Salvar logs em arquivo
Service Accounts #
kubectl get sa # Listar service accounts
kubectl get sa -o yaml # Exibir service accounts em yaml
kubectl get serviceaccounts default -o yaml > ./sa.yaml
# Exportar service account para arquivo
kubectl replace serviceaccount default -f ./sa.yaml
# Substituir service account
Nome do recurso: serviceaccounts, Abreviação: sa
ReplicaSets #
kubectl get rs # Listar todos os replicasets
kubectl describe rs # Descrever replicasets
kubectl get rs -o wide # Mais informações dos replicasets
kubectl get rs -o yaml # Exibir replicasets em yaml
Nome do recurso: replicasets, Abreviação: rs
Roles & Permissions #
kubectl get roles --all-namespaces # Listar roles em todos os namespaces
kubectl get roles --all-namespaces -o yaml # Exibir roles em formato yaml
Secrets #
kubectl get secrets # Listar secrets
kubectl get secrets --all-namespaces # Secrets em todos os namespaces
kubectl get secrets -o yaml # Exibir secrets em yaml
ConfigMaps #
kubectl get cm # Listar configmaps
kubectl get cm --all-namespaces # ConfigMaps em todos os namespaces
kubectl get cm --all-namespaces -o yaml # Exibir configmaps em yaml
Nome do recurso: configmaps, Abreviação: cm
Ingress #
kubectl get ing # Listar ingresses
kubectl get ing --all-namespaces # Ingresses em todos os namespaces
Nome do recurso: ingresses, Abreviação: ing
Persistent Volumes #
kubectl get pv # Listar persistent volumes
kubectl describe pv # Descrever persistent volumes
Nome do recurso: persistentvolumes, Abreviação: pv
Persistent Volume Claims #
kubectl get pvc # Listar persistent volume claims
kubectl describe pvc # Descrever persistent volume claims
Nome do recurso: persistentvolumeclaims, Abreviação: pvc
Storage Classes #
kubectl get sc # Listar storage classes
kubectl get sc -o yaml # Exibir storage classes em yaml
Nome do recurso: storageclasses, Abreviação: sc
Comandos Múltiplos #
kubectl get svc,po # Listar serviços e pods
kubectl get deploy,no # Listar deployments e nós
kubectl get all # Listar todos os recursos
kubectl get all --all-namespaces # Listar todos os recursos em todos os namespaces
Operações de Nós #
kubectl taint [node_name] [taint_name] # Aplicar taint ao nó
kubectl label [node_name] disktype=ssd # Adicionar label ao nó
kubectl cordon [node_name] # Marcar nó como não agendável (manutenção)
kubectl uncordon [node_name] # Marcar nó como agendável
kubectl drain [node_name] # Esvaziar o nó
kubectl delete node [node_name] # Deletar nó
Operações de Pods #
kubectl delete pod [pod_name] # Deletar pod
kubectl edit pod [pod_name] # Editar pod
kubectl label [pod_name] env=prod # Adicionar label ao pod
kubectl annotate po [pod_name] [annotation] # Adicionar anotação ao pod
Operações de Deployments #
kubectl edit deploy [deploy_name] # Editar deployment
kubectl delete deploy [deploy_name] # Deletar deployment
kubectl expose deploy [deploy_name] --port=80 --type=NodePort
# Expor deployment
kubectl scale deploy [deploy_name] --replicas=5 # Escalar deployment
Operações de Namespaces #
kubectl delete ns [ns_name] # Deletar namespace
kubectl edit ns [ns_name] # Editar namespace
Operações de Services #
kubectl edit svc [svc_name] # Editar serviço
kubectl delete svc [svc_name] # Deletar serviço
Operações de DaemonSets #
kubectl edit ds [ds_name] -n kube-system # Editar daemonset
kubectl delete ds [ds_name] # Deletar daemonset
Operações de Service Accounts #
kubectl edit sa [sa_name] # Editar service account
kubectl delete sa [sa_name] # Deletar service account
Criação e Aplicação #
kubectl create -f [name_of_file] # Criar recurso a partir de arquivo
kubectl apply -f [name_of_file] # Aplicar configuração de arquivo
kubectl run [pod_name] --image=nginx --restart=Never
# Executar pod
kubectl run [pod_name] --generator=run-pod/v1 --image=nginx
# Executar pod com generator
kubectl create svc nodeport [svc_name] --tcp=8080:80
# Criar serviço NodePort
kubectl create deploy [deploy_name] --image=nginx
# Criar deployment
Comandos de Debug e Teste #
kubectl run [pod_name] --image=busybox --rm -it --restart=Never -- sh
# Executar pod temporário para debug
kubectl create deploy [deploy_name] --image=nginx --dry-run=client -o yaml > deploy.yaml
# Gerar yaml de deployment
kubectl get po [pod_name] -o yaml --export > pod.yaml
# Exportar pod para yaml
Ajuda e Documentação #
kubectl -h # Ajuda geral do kubectl
kubectl create -h # Ajuda do comando create
kubectl run -h # Ajuda do comando run
kubectl explain deploy.spec # Explicar especificação do deployment
kubectl api-resources # Listar todos os recursos da API
kubectl version # Versão do kubectl e do cluster
Contexts e Configuração #
kubectl config get-contexts # Listar contextos disponíveis
kubectl config current-context # Mostrar contexto atual
kubectl config use-context [context_name] # Trocar contexto
kubectl config set-context --current --namespace=[namespace]
# Definir namespace padrão
Comandos Avançados #
kubectl port-forward [pod_name] 8080:80 # Port forward do pod
kubectl exec -it [pod_name] -- /bin/bash # Executar comando no pod
kubectl cp [pod_name]:/path/to/file ./file # Copiar arquivo do pod
kubectl patch deployment [deploy_name] -p '{"spec":{"replicas":3}}'
# Fazer patch no deployment
kubectl rollout status deployment/[deploy_name] # Status do rollout
kubectl rollout history deployment/[deploy_name] # Histórico de rollout
kubectl rollout undo deployment/[deploy_name] # Fazer rollback do deployment