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:8080k get pods --watchk get pods -l environment=production,tier=frontend
k get pods -o wide