Commands You Need to Know
20/01/2025
|
5 min de leitura
|
Compartilhar o artigo
Domine o Kubernetes: Comandos Essenciais que Você Precisa Saber 🚀
Kubernetes, carinhosamente apelidado de K8s, tornou-se uma ferramenta indispensável para orquestração de contêineres. Ele automatiza a implantação, o escalonamento e o gerenciamento de aplicações em contêineres, agrupando-as em unidades lógicas para facilitar a administração e a descoberta. O Kubernetes opera com base em um modelo declarativo: você especifica o estado desejado para o seu cluster e ele trabalha para mantê-lo.
Para interagir com um cluster Kubernetes, a principal ferramenta é a interface de linha de comando kubectl
. Dominar seus comandos é crucial para um gerenciamento eficiente. Abaixo, apresento uma seleção dos comandos kubectl
mais úteis e usados com frequência, abrangendo desde operações básicas até algumas mais avançadas.
Compreendendo a Sintaxe Básica do kubectl
Antes de nos aprofundarmos nos comandos, é útil entender a estrutura geral:
kubectl [comando] [TIPO_DE_RECURSO] [NOME_DO_RECURSO] [sinalizadores]
[comando]
: A ação que você deseja executar (ex.:get
,describe
,delete
).[TIPO_DE_RECURSO]
: O tipo de recurso do Kubernetes (ex.:pods
,services
,deployments
).[NOME_DO_RECURSO]
: O nome específico do recurso (opcional para alguns comandos que listam todos os recursos de um tipo).[sinalizadores]
: Opções adicionais para personalizar o comando (ex.:-n <namespace>
,-o wide
).
Comandos Fundamentais do kubectl
(Seu Dia a Dia no K8s) 🛠️
Estes são os comandos que você provavelmente usará com mais frequência:
kubectl get <resource>
: Lista os recursos do Kubernetes.- Exemplo prático:
kubectl get pods
lista todos os Pods no namespace atual. Para ver os Pods em todos os namespaces, usekubectl get pods --all-namespaces
. - Adicione
-o wide
para mais informações:kubectl get nodes -o wide
. kubectl describe <resource> <resource_name>
: Exibe informações detalhadas sobre um recurso específico, muito útil para solução de problemas.- Exemplo prático:
kubectl describe pod my-pod-123
mostra detalhes, eventos e status do Pod "my-pod-123". kubectl create -f <filename.yaml>
: Cria um novo recurso do Kubernetes a partir de um arquivo de definição YAML ou JSON.- Dica: Esta é a maneira preferencial de criar recursos declarativamente.
kubectl apply -f <filename.yaml>
: Aplica uma configuração a um recurso do Kubernetes. Se o recurso não existir, ele será criado. Se já existir, será atualizado. Geralmente, isso é preferível acreate
para gerenciamento contínuo.- Exemplo prático:
kubectl apply -f my-deployment.yaml
. kubectl delete <resource> <resource_name>
oukubectl delete -f <filename.yaml>
: Remove um recurso do Kubernetes.- Exemplo prático:
kubectl delete deployment my-app-deployment
. kubectl scale deployment <nome_da_implantação> --replicas=<número>
: Define o número de réplicas para uma implantação.- Exemplo prático:
kubectl scale deployment my-app --replicas=3
. kubectl logs <nome_do_pod>
: Exibe os logs de um contêiner dentro de um Pod.- Dica: Use
-f
para acompanhar os logs em tempo real (kubectl logs -f my-pod-123
). Se o Pod tiver vários contêineres, especifique o contêiner com-c <nome_do_contêiner>
. kubectl exec -it <nome_do_pod> -- <comando>
: Executa um comando interativo dentro de um contêiner de um Pod.- Exemplo prático:
kubectl exec -it my-pod-123 -- /bin/bash
abre um shell bash dentro do contêiner. kubectl port-forward <nome_do_pod> <porta_local>:<porta_do_pod>
: Encaminha uma ou mais portas locais para um Pod. Útil para acessar um aplicativo em execução no Pod localmente durante o desenvolvimento.- Exemplo prático:
kubectl port-forward my-web-pod 8080:80
.
Comandos Avançados e de Gerenciamento ⚙️
Para tarefas mais específicas e gerenciamento de cluster:
kubectl rollout status deployment/<nome_da_implantação>
: Rastreia o status de uma implementação.kubectl rollout history deployment/<nome_da_implantação>
: Mostra o histórico de revisões de uma implementação.kubectl rollout undo deployment/<nome_da_implantação> --to-revision=<número>
: Reverte uma implementação para uma revisão anterior.kubectl cluster-info
: Exibe informações sobre o cluster Kubernetes (endereço mestre, DNS do cluster).kubectl config view
: Exibe a configuração atual dokubectl
.kubectl config use-context <nome_do_contexto>
: Alterna o contexto atual dokubectl
(útil se você gerencia vários clusters).kubectl drain <nome_do_nó>
: Esvazia um nó, preparando-o para manutenção (impede que novos Pods sejam agendados e remove os existentes sem problemas).kubectl cordon <nome_do_nó>
: Marca um nó como não agendável, impedindo que novos Pods sejam alocados a ele.kubectl uncordon <nome_do_nó>
: Permite que Pods sejam agendados novamente em um nó previamente isolado.kubectl top node
: Exibe o consumo de CPU e memória dos nós.kubectl top pod
: Exibe o consumo de CPU e memória dos Pods.
Outros Comandos Úteis que Facilitam a Vida ✨
kubectl explain <resource>
: Fornece documentação detalhada sobre os campos de um recurso do Kubernetes. Muito útil para aprender o