Skip to main content

Kubectl Cheat Sheet

·1285 words·7 mins
timEU
Author
timEU

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