O que é o kubectl? A CLI do Kubernetes explicada
O kubectl é a ferramenta de linha de comando para conversar com um cluster Kubernetes: você a usa para inspecionar, criar, atualizar e excluir os recursos que compõem seus apps.
O kubectl (pronuncia-se "cube-control") é como humanos e pipelines conduzem o Kubernetes. Ele envia requisições ao servidor de API do cluster para ler o estado e aplicar mudanças, desde listar pods até publicar um novo deployment. Se você trabalha com Kubernetes, o kubectl é a ferramenta principal.
O que é o kubectl
O kubectl é a interface de linha de comando oficial do Kubernetes. Ele conversa com o servidor de API do cluster usando seu kubeconfig para conexão e credenciais. Os comandos permitem inspecionar recursos (get, describe, logs), alterá-los (apply, delete, scale) e depurar (exec, port-forward).
Apply declarativo
O workflow recomendado é declarativo: você escreve o estado desejado como manifestos YAML e executa "kubectl apply -f", e o Kubernetes reconcilia o cluster em direção a esse estado. O kubectl também suporta comandos imperativos para ações rápidas, mas o apply com manifestos versionados é o que torna os deploys repetíveis.
Um exemplo de uso
Inspecione recursos e aplique um manifesto.
# list running pods
kubectl get pods
# apply desired state from a manifest
kubectl apply -f deployment.yaml
# wait for a rollout to finish
kubectl rollout status deployment/myappPapel em CI/CD
Em CI/CD, o kubectl costuma ser o passo de deploy: após construir e fazer o push de uma imagem, o pipeline executa "kubectl apply" ou atualiza uma imagem e aguarda com "kubectl rollout status" para confirmar que o deployment teve sucesso antes de marcar o job como verde. Usar "--dry-run=server" valida manifestos sem alterar o cluster, útil como um check de PR.
Alternativas
Helm e Kustomize ficam por cima do kubectl para gerenciar configuração, mas em última instância aplicam pela mesma API. Ferramentas de GitOps como Argo CD e Flux substituem os applies diretos do kubectl por um controlador que sincroniza a partir do git. O kubectl continua sendo a forma fundamental e de mais baixo nível de interagir com um cluster.
Principais conclusões
- O kubectl é a CLI para inspecionar e gerenciar recursos do Kubernetes.
- O "kubectl apply" declarativo com manifestos versionados é a norma.
- Em CI ele faz deploy e verifica rollouts com "kubectl rollout status".