Olá, seja bem-vindo! Reunimos para você os comandos mais usados do Kubernetes, tudo em um cheat sheet de kubectl pronto para usar. O cheat sheet traz instruções passo a passo de como gerenciar seu cluster Kubernetes usando a ferramenta de linha de comando kubectl.
Abaixo, um resumo rápido dos comandos mais importantes. Pule para o cheat sheet completo logo abaixo.
Contexto e configuração do cluster:
- Listar contextos:
kubectl config get-contexts - Trocar o contexto ativo:
kubectl config use-context <context-name> - Ver detalhes do cluster:
kubectl cluster-info - Verificar a versão:
kubectl version
Deployments e gerenciamento de aplicações:
- Fazer deploy a partir de um manifesto:
kubectl apply -f <filename.yaml> - Excluir recursos a partir de um manifesto:
kubectl delete -f <filename.yaml> - Escalar um deployment:
kubectl scale deployment <deployment-name> --replicas=<N> - Verificar o status do rollout de um deployment:
kubectl rollout status deployment/<deployment-name> - Reverter um deployment:
kubectl rollout undo deployment/<deployment-name>
Inspeção e debugging:
- Ver todos os recursos em todos os namespaces:
kubectl get all -A - Ver status e detalhes de um pod:
kubectl describe pod <pod-name> - Acompanhar os logs de um pod:
kubectl logs -f <pod-name> - Executar comandos dentro de um contêiner:
kubectl exec -it <pod-name> -- <command> - Abrir um shell em um pod:
kubectl exec -it <pod-name> -- /bin/bash - Encaminhar uma porta local para um pod:
kubectl port-forward <pod-name> <local-port>:<container-port>
Dicas de produtividade e flags:
- Definir um alias:
alias k=kubectl - Configurar o autocomplete:
source <(kubectl completion bash) - Filtrar recursos por namespace: use a flag
-n <namespace> - Testar mudanças sem aplicá-las:
kubectl apply -f <filename.yaml> --dry-run=client - Ver recursos em YAML:
kubectl get pod <pod-name> -o yaml
O que é o kubectl?
O kubectl é a ferramenta de CLI do Kubernetes que permite interagir com seus clusters e criar, gerenciar, editar e excluir recursos com facilidade. Ele se comunica com o servidor de API do Kubernetes para que você possa monitorar e controlar suas aplicações.
Como o kubectl funciona?

O kubectl funciona enviando comandos ao servidor de API do Kubernetes, que então executa as operações solicitadas dentro do cluster. Quando você executa um comando kubectl, como fazer o deploy de uma aplicação ou consultar o status de recursos, o kubectl se comunica com o servidor de API via HTTP, transmitindo suas instruções. O servidor de API processa essas solicitações, atualiza o estado do cluster no etcd (um armazenamento distribuído de chave-valor) e orienta outros componentes, como o scheduler ou o controller manager, a executar as ações necessárias para atingir o estado desejado. Essa interação permite gerenciar e monitorar seus recursos do Kubernetes de forma eficiente pela linha de comando.
Observação: em versões anteriores do Kubernetes, o kubectl usava geradores (generators) para criar configurações de recursos com base em entradas específicas. Esses geradores permitiam especificar o tipo de recurso a ser criado, como um Pod, Deployment ou Job, usando a flag --generator. Por exemplo, kubectl run nginx --image=nginx --generator=run-pod/v1 criaria um recurso do tipo Pod. Essa abordagem permitia criar scripts e automatizar a criação de recursos com resultados previsíveis. No entanto, é importante destacar que a flag --generator foi descontinuada no Kubernetes v1.12 e removida na v1.18. A partir da v1.18, o kubectl run foi simplificado para criar apenas Pods, e o uso de geradores foi substituído por comandos mais explícitos e declarativos, como kubectl create e kubectl apply
Agora, vamos começar:
Configurando o kubectl: versão, informações do cluster e autocomplete
O primeiro passo depois de instalar o kubectl é verificar se ele foi instalado corretamente e se consegue se comunicar com o seu cluster. O comando a seguir exibe a versão do cliente e, se houver um cluster configurado, também mostra a versão do servidor:
kubectl versionPara confirmar que o kubectl está conectado ao cluster correto, use:
kubectl cluster-infoEsse comando exibe os endereços do control plane do Kubernetes e dos serviços principais. Se o comando retornar um erro, verifique se o seu arquivo kubeconfig está configurado corretamente e se o cluster de destino está acessível.
Você também pode inspecionar a configuração atual e os contextos disponíveis com:
kubectl config get-contextskubectl config current-contextSe você trabalha com vários clusters, alternar entre eles é simples:
kubectl config use-context <context-name>Ao substituir <context-name> pelo contexto desejado, o cluster ativo é atualizado para todos os comandos kubectl subsequentes.
Para ganhar produtividade, habilite o autocomplete do shell. Isso permite que o shell complete automaticamente comandos, nomes de recursos, namespaces e outros argumentos quando você pressiona a tecla Tab. Para Bash, execute:
echo 'source <(kubectl completion bash)' >> ~/.bashrcsource ~/.bashrcPara Zsh, use:
echo 'source <(kubectl completion zsh)' >> ~/.zshrcsource ~/.zshrcUm atalho útil é criar um alias para o kubectl e habilitar o autocomplete para ele:
alias k=kubectlcomplete -o default -F __start_kubectl kSe você usa Zsh, substitua a última linha por:
compdef __start_kubectl kCom a verificação de versão, a conectividade com o cluster, o gerenciamento de contextos e o autocomplete configurados, seu ambiente está pronto para a administração do Kubernetes no dia a dia.
O cheat sheet definitivo de kubectl

Flags opcionais
O kubectl oferece flags opcionais que melhoram a saída dos comandos e o gerenciamento de recursos. Por exemplo:
Formatos de saída:
Saída em JSON:
Você pode usar a flag -o=json para formatar a saída do comando como JSON.
kubectl get pods -o=jsonSaída em YAML:
Você pode usar a flag -o=yaml para formatar a saída do comando como YAML.
kubectl get pods -o=yamlSaída ampliada (wide):
A opção -o=wide fornece uma saída detalhada em texto simples (por exemplo, exibe o nome do node para cada pod).
kubectl get pods -o=widePara saídas mais personalizadas, o kubectl oferece a flag --custom-columns, que permite definir colunas específicas para exibição.
Por exemplo, para listar os pods com seus nomes e os nodes em que estão rodando:
kubectl get pods -o=custom-columns="POD NAME:.metadata.name,NODE:.spec.nodeName"Esse comando terá a seguinte saída:
POD NAME NODEnginx-deployment-1 node-1nginx-deployment-2 node-2Especificação de namespace:
Por padrão, os comandos kubectl operam no namespace definido pelo contexto atual. Para apontar para um namespace específico, use a flag -n ou --namespace:
kubectl get pods -n <namespace_name>Para ver recursos em todos os namespaces, use a flag -A ou --all-namespaces:
kubectl get pods -AE para definir um namespace padrão para o contexto atual:
kubectl config set-context --current --namespace=ns_nameEntrada por arquivo:
A flag -f é usada para especificar um arquivo, diretório ou URL ao criar um recurso.
kubectl create -f ./file_nameFiltragem por labels:
Você pode usar a flag -l para filtrar recursos com base em labels específicos.
kubectl get pods -l name=label_nameOpção de ajuda:
Para exibir a ajuda dos comandos kubectl, use a flag -h.
kubectl -hModo watch:
Você pode monitorar continuamente mudanças nos recursos com a flag --watch (ou -w):
kubectl get pods -wOrdenação da saída:
Você pode ordenar a saída com base em um campo específico usando a flag --sort-by:
kubectl get pods --sort-by=.metadata.nameUsando o kubectl com aliases
Trabalhar com o kubectl envolve digitar comandos longos, o que pode consumir tempo e gerar erros. Para ganhar eficiência, muitos desenvolvedores criam aliases para os comandos mais usados.
Configurando um alias básico
alias k=kubectlecho 'alias k=kubectl' >> ~/.bashrcIsso permite usar k no lugar de kubectl.
Você pode usar o repositório kubectl-aliases, que oferece centenas de aliases predefinidos para executar comandos mais rapidamente.
Gerenciamento de cluster, contexto e configuração
Gerenciamento de cluster significa configurar, visualizar e modificar o seu cluster.
| Comando | Descrição |
|---|---|
kubectl cluster-info |
Exibe os endpoints e informações básicas sobre o seu cluster Kubernetes. |
kubectl config get-contexts |
Lista todos os contextos definidos no seu arquivo kubeconfig. |
kubectl config current-context |
Mostra o contexto ativo atual. |
kubectl config use-context <context> |
Troca o contexto ativo para o que você especificar. |
kubectl config delete-context <context> |
Remove um contexto do seu arquivo kubeconfig. |
kubectl api-versions |
Lista todas as versões de API disponíveis no cluster. |
kubectl api-resources |
Lista todos os tipos de recursos disponíveis no seu cluster, com detalhes sobre grupos de API e namespaces. |
kubectl config view |
Exibe os detalhes de configuração do seu arquivo kubeconfig (clusters, contextos, configurações de usuário). |
kubectl version |
Imprime as informações de versão tanto do cliente kubectl quanto do servidor Kubernetes. |
Gerenciamento de pods
Atalho: po
Um Pod é a menor unidade do Kubernetes e representa uma única instância de um processo em execução no seu cluster. Ele pode conter um ou mais contêineres que compartilham recursos de armazenamento e rede.
| Comando | Descrição |
|---|---|
kubectl get pods |
Lista todos os pods no namespace atual. |
kubectl describe pod <pod-name> |
Fornece informações detalhadas sobre o pod especificado, incluindo status, eventos e detalhes dos contêineres. |
kubectl exec -it <pod-name> <command> |
Executa o comando informado dentro do pod especificado de forma interativa (as flags -it permitem acesso interativo ao terminal). |
kubectl delete pod <pod-name> |
Exclui o pod especificado do cluster. |
kubectl run <pod-name> --image=<image_name> |
Cria e executa um pod com a imagem especificada. |
kubectl get pod -n <namespace_name> |
Lista todos os pods no namespace especificado. |
kubectl exec <pod-name> -c <container-name> <command> |
Executa um comando dentro de um contêiner específico de um pod. |
kubectl top pod |
Exibe o uso de recursos (como CPU e memória) dos pods. |
kubectl annotate pod <pod-name> <annotation> |
Adiciona ou atualiza uma annotation no pod especificado. |
kubectl get pods --field-selector=status.phase=Running |
Lista os pods que estão atualmente na fase Running, filtrando pelo status do pod. |
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount' |
Ordena a lista de pods pela contagem de reinicializações do primeiro contêiner de cada pod. |
Para ReplicaSets
Atalho: rs
Um ReplicaSet garante que um número especificado de réplicas de pods esteja em execução. A principal diferença é que os ReplicaSets dão suporte a seletores de labels baseados em conjuntos.
| Comando | Descrição |
|---|---|
kubectl get rs |
Lista todos os ReplicaSets no namespace atual. |
kubectl get rs <replicaset_name> -o yaml |
Exibe a configuração do ReplicaSet especificado em formato YAML. |
kubectl get rs <replicaset_name> -o json |
Exibe a configuração do ReplicaSet especificado em formato JSON. |
kubectl describe rs <rs_name> |
Fornece informações detalhadas sobre o ReplicaSet especificado. |
kubectl get rs --namespace=<ns_name> |
Lista todos os ReplicaSets no namespace especificado. |
kubectl delete rs <rs_name> --cascade=orphan |
Exclui o ReplicaSet especificado, mas mantém os pods gerenciados por ele em execução (os pods ficam órfãos). |
kubectl delete rs <rs_name> |
Exclui o ReplicaSet especificado junto com todos os pods que ele gerencia. |
kubectl scale rs <rs_name> --replicas=<count> |
Ajusta (escala) o número de pods gerenciados pelo ReplicaSet especificado para a quantidade informada. |
kubectl edit rs <rs_name> |
Abre a configuração do ReplicaSet no seu editor padrão, permitindo fazer alterações em tempo real. |
kubectl replace -f <rs_file.yaml> |
Substitui a configuração existente do ReplicaSet pela fornecida no arquivo YAML. |
Para DaemonSets
Atalho: ds
Um DaemonSet garante que um pod específico seja executado em todos (ou em alguns) nodes do cluster. Isso é útil para tarefas como executar um agente de monitoramento em cada node.
| Comando | Descrição |
|---|---|
kubectl get daemonset |
Lista todos os DaemonSets no namespace atual. |
kubectl describe daemonset <ds_name> |
Fornece informações detalhadas sobre um DaemonSet específico. |
kubectl get daemonset <daemonset_name> -o yaml |
Exibe a configuração do DaemonSet especificado em formato YAML. |
kubectl get daemonset <ds_name> -o json |
Exibe a configuração do DaemonSet especificado em formato JSON. |
kubectl delete daemonset <ds_name> |
Exclui o DaemonSet especificado do cluster. |
kubectl label daemonset <ds_name> <key>=<value> |
Adiciona ou atualiza um label no DaemonSet especificado. |
kubectl annotate daemonset <ds_name> <key>=<value> |
Adiciona ou atualiza uma annotation no DaemonSet especificado. |
kubectl rollout status daemonset <ds_name> |
Verifica o status do rollout de um DaemonSet. |
kubectl rollout history daemonset <ds_name> |
Exibe o histórico de rollouts de um DaemonSet. |
Para StatefulSets
Atalho: sts
StatefulSets gerenciam o deploy e o escalonamento de pods, garantindo que cada um tenha uma identidade única e estável e armazenamento persistente. Isso é importante para aplicações com estado (stateful).
| Comando | Descrição |
|---|---|
kubectl get statefulset |
Lista todos os StatefulSets no namespace atual. |
kubectl describe statefulset <statefulset_name> |
Fornece informações detalhadas sobre o StatefulSet especificado. |
kubectl get statefulset <sts_name> -o yaml |
Exibe a configuração do StatefulSet especificado em formato YAML. |
kubectl get statefulset <sts_name> -o json |
Exibe a configuração do StatefulSet especificado em formato JSON. |
kubectl edit statefulset <sts_name> |
Abre a configuração do StatefulSet especificado no seu editor de texto padrão, permitindo fazer alterações em tempo real. |
kubectl scale statefulset <sts_name> --replicas=<number> |
Ajusta o número de réplicas de pods gerenciadas pelo StatefulSet especificado para o número informado. |
kubectl rollout status statefulset <statefulset_name> |
Verifica e exibe o status do rollout do StatefulSet especificado. |
Para namespaces
Atalho: ns
Namespaces oferecem uma forma de dividir os recursos do cluster entre vários usuários ou aplicações.
| Comando | Descrição |
|---|---|
kubectl get namespace |
Lista todos os namespaces do seu cluster (os namespaces do contexto atual). |
kubectl create namespace <namespace_name> |
Cria um novo namespace com o nome especificado. |
kubectl describe namespace <namespace_name> |
Fornece informações detalhadas sobre o namespace especificado. |
kubectl edit namespace <namespace_name> |
Abre a configuração do namespace especificado no seu editor de texto padrão para que você possa fazer edições em tempo real. |
kubectl delete namespace <namespace_name> |
Exclui o namespace especificado do seu cluster junto com todos os recursos contidos nele. |
Para Services
Atalho: svc
Um Service define um conjunto lógico de pods e uma política para acessá-los. Ele permite a comunicação entre diferentes partes da sua aplicação e pode expor sua aplicação ao tráfego externo.
| Comando | Descrição |
|---|---|
kubectl get services |
Lista todos os services no namespace atual |
kubectl create service <svc-type> <svc-name> --tcp=<port> |
Cria um novo service do tipo especificado (por exemplo, clusterip, nodeport ou loadbalancer) com o nome informado, mapeando TCP em uma determinada porta |
kubectl edit service <svc-name> |
Abre um editor para editar a configuração do service especificado |
kubectl describe service <svc-name> |
Fornece informações detalhadas sobre o service especificado |
kubectl delete service <svc-name> |
Exclui o service especificado do cluster |
kubectl get endpoints <svc-name> |
Lista os endpoints (ou seja, os endereços IP dos pods) que sustentam o service especificado |
kubectl expose deployment [deploy_name] |
Cria um service que expõe o deployment especificado; os recursos possíveis para expose incluem pod (po), service (svc) e replicaset (rs) |
Para Service Accounts
Atalho: sa
Um ServiceAccount fornece uma identidade para os processos em execução em um pod, permitindo que eles interajam com a API do Kubernetes com segurança.
| Comando | Descrição |
|---|---|
kubectl get serviceaccounts |
Lista todas as service accounts no namespace atual |
kubectl describe serviceaccount <sa-name> |
Exibe informações detalhadas sobre a service account especificada |
kubectl replace -f <sa.yaml> |
Substitui (atualiza) uma service account com uma nova configuração |
kubectl delete serviceaccount <sa_name> |
Exclui a service account especificada do cluster. |
Para Deployments
Atalho: deploy
Um Deployment fornece atualizações declarativas para pods e ReplicaSets. Você define o estado desejado da sua aplicação e o controller do Deployment altera o estado real para o estado desejado em um ritmo controlado.
| Comando | Descrição |
|---|---|
kubectl get deployment |
Lista todos os deployments no namespace atual. |
kubectl describe deployment <deployment_name> |
Exibe informações detalhadas sobre o deployment especificado |
kubectl create deployment <deployment-name> --image=<img-name> |
Cria um novo deployment chamado <deployment-name> usando a imagem de contêiner especificada |
kubectl edit deployment <deployment_name> |
Abre a configuração do deployment no seu editor de texto padrão para edição em tempo real |
kubectl scale deployment <deployment-name> --replicas=<replica-count> |
Ajusta o número de réplicas de pods gerenciadas pelo deployment para a quantidade especificada. |
kubectl set image deployment/<deployment-name> <container-name>=<new-image-name> |
Atualiza a imagem de um contêiner específico dentro do deployment |
kubectl rollout status deployment/<deployment-name> |
Mostra o status atual do rollout do deployment |
kubectl rollout pause deployment/<deployment-name> |
Pausa o processo de rollout, impedindo novas atualizações até que seja retomado |
kubectl rollout resume deployment/<deployment-name> |
Retoma um rollout de deployment pausado |
kubectl rollout undo deployment/<deployment-name> |
Reverte o deployment para a revisão anterior |
kubectl rollout undo deployment/<deployment-name> --to-revision=<revision-number> |
Reverte o deployment para um número de revisão específico |
kubectl delete deployment <deployment-name> |
Exclui o deployment especificado junto com os pods gerenciados por ele |
Para Jobs e CronJobs
Atalho: job, cj
Um Job executa um ou mais pods até que uma tarefa seja concluída com sucesso. Um CronJob cria Jobs de acordo com um agendamento, sendo útil para backups, relatórios e outras tarefas recorrentes.
| Comando | Descrição |
|---|---|
kubectl get jobs |
Lista todos os Jobs no namespace atual. |
kubectl describe job <job-name> |
Exibe informações detalhadas sobre o Job especificado. |
kubectl create job <job-name> --image=<image-name> |
Cria um Job que executa a imagem de contêiner especificada. |
kubectl delete job <job-name> |
Exclui o Job especificado. |
kubectl get cronjobs |
Lista todos os CronJobs no namespace atual. |
kubectl describe cronjob <cronjob-name> |
Exibe informações detalhadas sobre o CronJob especificado. |
kubectl create cronjob <cronjob-name> --image=<image-name> --schedule="<cron-expression>" |
Cria um CronJob com o agendamento especificado. |
kubectl create job --from=cronjob/<cronjob-name> <job-name> |
Cria um Job único a partir de um CronJob existente. |
kubectl patch cronjob <cronjob-name> -p '{"spec":{"suspend":true}}' |
Suspende as execuções futuras do CronJob. |
kubectl delete cronjob <cronjob-name> |
Exclui o CronJob especificado. |
Para Horizontal Pod Autoscalers
Atalho: hpa
Um Horizontal Pod Autoscaler (HPA) ajusta automaticamente o número de réplicas de pods com base em métricas como uso de CPU ou memória.
| Comando | Descrição |
|---|---|
kubectl get hpa |
Lista todos os Horizontal Pod Autoscalers. |
kubectl describe hpa <hpa-name> |
Exibe informações detalhadas sobre o HPA especificado. |
kubectl autoscale deployment <deployment-name> --cpu-percent=<target> --min=<min> --max=<max> |
Cria um HPA para o deployment especificado. |
kubectl edit hpa <hpa-name> |
Abre a configuração do HPA para edição em tempo real. |
kubectl delete hpa <hpa-name> |
Exclui o HPA especificado. |
kubectl get hpa -w |
Monitora métricas do HPA e eventos de escalonamento em tempo real. |
kubectl top pods |
Exibe o uso de recursos dos pods fornecido pelo Metrics Server. |
kubectl top nodes |
Exibe o uso de CPU e memória dos nodes. |
Para RBAC e verificações de permissões
O controle de acesso baseado em funções (RBAC) controla quais usuários e service accounts podem acessar os recursos do Kubernetes.
| Comando | Descrição |
|---|---|
kubectl get roles |
Lista todas as Roles no namespace atual. |
kubectl get rolebindings |
Lista todos os RoleBindings no namespace atual. |
kubectl get clusterroles |
Lista todas as ClusterRoles. |
kubectl get clusterrolebindings |
Lista todos os ClusterRoleBindings. |
kubectl describe role <role-name> |
Exibe informações detalhadas sobre a Role especificada. |
kubectl describe clusterrole <clusterrole-name> |
Exibe informações detalhadas sobre a ClusterRole especificada. |
kubectl auth can-i <verb> <resource> |
Verifica se o usuário atual pode executar uma ação em um recurso. |
kubectl auth can-i <verb> <resource> --as=<user> |
Verifica as permissões de outro usuário. |
kubectl auth can-i --list |
Lista todas as permissões disponíveis para o usuário atual. |
Para recursos de Ingress
Atalho: ing
Um Ingress gerencia o acesso externo via HTTP e HTTPS aos services em um cluster Kubernetes. Normalmente requer um Ingress controller.
| Comando | Descrição |
|---|---|
kubectl get ingress |
Lista todos os recursos de Ingress no namespace atual. |
kubectl describe ingress <ingress-name> |
Exibe informações detalhadas sobre o Ingress especificado. |
kubectl create ingress <ingress-name> --rule="<host>/<path>=<service>:<port>" |
Cria um Ingress com uma regra de roteamento. |
kubectl edit ingress <ingress-name> |
Abre a configuração do Ingress para edição em tempo real. |
kubectl delete ingress <ingress-name> |
Exclui o Ingress especificado. |
kubectl get ingress -A |
Lista os recursos de Ingress em todos os namespaces. |
kubectl get ingress <ingress-name> -o yaml |
Exibe a configuração do Ingress em formato YAML. |
Para debugging avançado
Esses comandos ajudam a solucionar problemas de aplicações, rede e recursos em um cluster Kubernetes.
| Comando | Descrição |
|---|---|
kubectl logs <pod-name> |
Exibe os logs do pod especificado. |
kubectl logs <pod-name> -c <container-name> |
Exibe os logs de um contêiner específico em um pod com vários contêineres. |
kubectl logs -f <pod-name> |
Transmite os logs do pod especificado em tempo real. |
kubectl logs <pod-name> --previous |
Exibe os logs da instância anterior de um contêiner que falhou. |
kubectl exec -it <pod-name> -- /bin/sh |
Abre um shell interativo dentro de um contêiner em execução. |
kubectl port-forward pod/<pod-name> <local-port>:<pod-port> |
Encaminha uma porta local para um pod para fins de debugging. |
kubectl debug <pod-name> -it --image=busybox |
Cria um contêiner efêmero de debug anexado ao pod especificado. |
kubectl get events --sort-by=.metadata.creationTimestamp |
Lista os eventos do cluster em ordem cronológica. |
kubectl describe node <node-name> |
Exibe as condições do node, os recursos alocados e os eventos recentes. |
kubectl cp <pod-name>:<remote-path> <local-path> |
Copia arquivos de um pod para a máquina local. |
Para eventos
Atalho: ev
Eventos são registros do que aconteceu no seu cluster, como criações de pods, exclusões ou erros.
| Comando | Descrição |
|---|---|
kubectl get events |
Lista todos os eventos no namespace atual |
kubectl get events --field-selector type!=Normal |
Exibe os eventos que não são do tipo Normal |
kubectl get events --field-selector type=Warning |
Filtra e exibe apenas os eventos do tipo Warning |
kubectl get events -w |
Monitora novos eventos em tempo real |
kubectl get events --field-selector involvedObject.name=<object_name> |
Mostra eventos relacionados a um objeto específico, como um pod ou node |
Logs
Logs são a saída das suas aplicações em execução e dos componentes do sistema.
| Comando | Descrição |
|---|---|
kubectl logs <pod_name> |
Recupera e exibe os logs do contêiner principal do pod especificado |
kubectl logs -f <pod_name> |
Transmite os logs do pod especificado em tempo real |
kubectl logs --since=6h <pod_name> |
Exibe os logs do pod especificado gerados nas últimas 6 horas |
kubectl logs --tail=50 <pod_name> |
Mostra as últimas 50 linhas de logs do pod especificado |
kubectl logs -f <pod_name> -c <container_name> |
Transmite em tempo real os logs de um contêiner específico dentro de um pod |
kubectl logs <pod_name> > podfile.log |
Salva os logs de um pod em um arquivo chamado podfile.log |
kubectl logs --previous <pod_name> |
Exibe os logs da instância anterior de um contêiner no pod especificado |
Para Secrets e ConfigMaps
Atalho para ConfigMaps: cm
Secrets armazenam informações sensíveis, como senhas ou chaves, enquanto ConfigMaps guardam dados de configuração não sensíveis. Ambos permitem desacoplar artefatos de configuração do conteúdo da imagem para manter suas aplicações portáveis.
| Comando | Descrição |
|---|---|
kubectl get secrets |
Lista todos os secrets no namespace atual |
kubectl get configmaps |
Lista todos os ConfigMaps no namespace atual |
kubectl describe secret <secret-name> |
Fornece informações detalhadas sobre o secret especificado |
kubectl delete secret <secret-name> |
Exclui o secret especificado do cluster |
kubectl describe configmap <configmap-name> |
Fornece informações detalhadas sobre o ConfigMap especificado |
kubectl create configmap <config-map-name> --from-file=<path-to-file> |
Cria um novo ConfigMap com o nome informado usando o conteúdo do arquivo especificado |
kubectl create secret <secret-type> <secret-name> --from-literal=key=value |
Cria um novo secret do tipo especificado usando um par chave-valor |
Para gerenciamento de nodes
Atalho: no
Um Node é uma máquina worker no Kubernetes.
| Comando | Descrição |
|---|---|
kubectl get nodes |
Lista todos os nodes do seu cluster |
kubectl describe node <node-name> |
Fornece informações detalhadas sobre o node especificado |
kubectl drain <node-name> |
Prepara o node para manutenção removendo todos os pods e marcando o node como não agendável |
kubectl uncordon <node-name> |
Marca um node previamente isolado (não agendável) como agendável novamente, permitindo que novos pods sejam agendados nele |
kubectl label node <node_name> <key>=<value> |
Adiciona ou atualiza um label no node especificado |
kubectl cordon <node_name> |
Marca o node especificado como não agendável |
kubectl taint node <node_name> <key>=<value>:<taint-effect> |
Aplica um taint ao node especificado |
kubectl top node <node_name> |
Exibe métricas de uso de recursos (como CPU e memória) do node especificado |
kubectl annotate node <node_name> <key>=<value> |
Adiciona ou atualiza uma annotation no node especificado |
Para armazenamento (PV, PVC)
Atalho para Persistent Volume: pv
Atalho para Persistent Volume Claim: pvc
PersistentVolumes são recursos de armazenamento no seu cluster, e PersistentVolumeClaims são solicitações de armazenamento feitas pelos usuários.
| Comando | Descrição |
|---|---|
kubectl get pv |
Lista todos os Persistent Volumes do cluster |
kubectl describe pv <pv-name> |
Fornece informações detalhadas sobre um Persistent Volume específico |
kubectl get pvc |
Lista todos os Persistent Volume Claims no namespace atual |
kubectl describe pvc <pvc-name> |
Exibe informações detalhadas sobre um Persistent Volume Claim específico |
Para copiar arquivos e diretórios
Você pode transferir arquivos entre o seu sistema local e o contêiner de um pod, o que ajuda em debugging ou backup de dados.
| Comando | Descrição |
|---|---|
kubectl cp <local-path> <namespace>/<pod-name>:<container-path> |
Copia um arquivo ou diretório da sua máquina local para um contêiner no pod e namespace especificados. |
kubectl cp <source-pod-name>:<source-container-path> <local-path> -n <namespace> |
Copia um arquivo ou diretório de um contêiner dentro de um pod (no namespace informado) para a sua máquina local. |
kubectl cp <local-path> <destination-namespace>/<destination-pod-name>:<destination-container-path> |
Copia um arquivo ou diretório da sua máquina local para o pod e namespace de destino. |
Para verbosidade de saída e debugging
Verbosidade se refere ao nível de detalhe incluído nos logs gerados por componentes como o kubectl e o kubelet. Você pode ajustar a verbosidade dos comandos kubectl.
| Comando | Descrição |
|---|---|
kubectl get <resource-type> --v=<verbosity-level> |
Esta é a forma geral de definir o nível de verbosidade. Ela indica ao kubectl quanta saída de debug incluir ao executar o comando no tipo de recurso especificado. |
kubectl get <resource-type> --v=0 |
Executa o comando com saída de debug mínima (o nível padrão). |
kubectl get <resource-type> --v=7 |
Oferece um nível de verbosidade mais alto, em que informações adicionais de debug são impressas, incluindo os cabeçalhos das requisições HTTPS enviadas pelo cliente. |
kubectl get <resource-type> --v=8 |
Aumenta ainda mais a verbosidade. No nível 8, o conteúdo das requisições e respostas HTTP (dados do corpo) também é exibido. |
FAQ
O que é o kubectl? kubectl é a ferramenta de linha de comando do Kubernetes. Ela envia seus comandos ao servidor de API do Kubernetes, que executa a solicitação no cluster, permitindo criar, gerenciar, editar e excluir recursos e monitorar suas aplicações.
Como alternar entre clusters com o kubectl?
Execute kubectl config get-contexts para listar os contextos do seu arquivo kubeconfig e, em seguida, execute kubectl config use-context <context-name> para ativar um deles. Todos os comandos kubectl posteriores passam a ser executados nesse cluster.
Como listar pods em todos os namespaces?
Adicione a flag -A (ou --all-namespaces), por exemplo kubectl get pods -A. Para apontar para apenas um namespace, use -n <namespace_name>.
Como ver os logs de um contêiner que falhou?
Execute kubectl logs <pod-name> --previous para ver os logs da instância anterior do contêiner. Adicione -c <container-name> se o pod tiver mais de um contêiner.
Como reverter um deployment?
Execute kubectl rollout undo deployment/<deployment-name> para voltar à revisão anterior. Para escolher uma revisão específica, adicione --to-revision=<revision-number>.
Como configurar um alias e o autocomplete do kubectl?
Execute alias k=kubectl para usar k no lugar de kubectl e adicione-o ao seu ~/.bashrc para mantê-lo. Para o autocomplete no Bash, adicione source <(kubectl completion bash) ao ~/.bashrc. O cheat sheet também cobre Zsh.
Reduza seus custos de nuvem em até 50% com a PerfectScale
A PerfectScale é uma ferramenta poderosa projetada para funcionar perfeitamente com o Kubernetes. Ao integrar a PerfectScale ao seu ambiente Kubernetes, você pode simplificar e otimizar a orquestração dos seus contêineres. Essa integração aumenta a eficiência do gerenciamento dos seus clusters, permitindo alocar recursos de forma mais eficaz, reduzir custos operacionais e melhorar a estabilidade e a resiliência gerais das suas aplicações. Os insights baseados em IA da PerfectScale oferecem visibilidade completa do desempenho do seu sistema, possibilitando ajustes proativos para atender a demandas dinâmicas. Isso significa que você pode garantir desempenho máximo enquanto corta custos em até 50% por meio de ações autônomas e orientadas por dados, que otimizam continuamente cada camada da sua stack Kubernetes. Para conhecer na prática os benefícios da PerfectScale, agende uma demonstração e comece um teste gratuito hoje mesmo!