CLI para administração de clusters Kubernetes.

Instalação da ferramenta https://kubernetes.io/docs/tasks/tools/install-kubectl-macos

Para uso em um cluster criado no Azure, por exemplo, devemos ter o cli da azure instalado, para fazer a autenticação e baixar as credenciais do aks.

Para ganho de produtividade, criar um alias do kubectl para k, dessa forma, ao invés de digitar o comando kubetctl get pods, por exemplo, bastaria rodar k get pods.

Comandos de apoio no uso do kubectl

kubectl --help
kubectl config get-contexts
kubectl config set-context <contexto de cluster desejado>
k get nodes
k top node
k describe node <name node>
 
k get namespaces
k get events --all-namespaces
 
k api-resources
 
k get pods,services --all-namespaces
 
k explain pods
k explain service
 
k top pod --all-namespaces
 
k get pods --namespace <nome do namespace>
 
k describe pod airflow-worker-1 --namespace orchestrator
 
# Para listar os volumes vinculados ao pod
k get pvc logs-airflow-worker-1 --namespace orchestrator
 

O uso do kubectl é chamado de Forma Imperativa

k crate namespace app
k config set-context <nome do contexto> --namespace app
k get pods # para consultar os pods dentro do namespace criado acima
 
k run frontend --image=nginx:1.24.0 --port=80
 
k exec -it frontend -- /bin/bash
 
k edit pod frontend
 
k patch pod frontend -p '{"spec": {"containers":[{"name":"frontend","image":"nginx:1.25.1"}]}}'
 
k logs frontend
 
k delete pod frontend
 

O modo declarativo é o método usando os arquivos yaml em um repositório git para controle de evolução.

Para usar, após criar o arquivo .yaml, dentro do terminal:

k apply -f nginx.yaml
 
k get deployment <deployment_name>
 
k get pods
 
k delete -f nginx.yaml
 

Para realizar um port foward de um pod para realizar o acesso, como um servidor web na porta 8080, por exemplo, devemos expor a porta:

k port-forward kuard 8080:8080
k get pods --watch
k get pods -l environment=production,tier=frontend
 
k get pods -o wide