Este projeto é um script em shell que analisa os workloads no Kubernetes que não possuem requests e limits de CPU e memória definidos. Ele gera um relatório em formato CSV com sugestões de requests com base no uso atual.
- kubectl
- jq
- Metrics Server instalado no seu cluster Kubernetes
- Permissões para consultar a API do Kubernetes e executar comandos
kubectl top pod
- Variável de ambiente
KUBECONFIG
configurada corretamente. Se não estiver definida, o script usará o arquivo de configuração padrão ($HOME/.kube/config
)
O Metrics Server é um agregador de dados de uso de recursos escalonável que é instalado por padrão em muitos clusters, ou pode ser instalado manualmente.
Para instalar o Metrics Server em seu cluster, você pode seguir os seguintes passos:
- Instale o Metrics Server:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
Agora o Metrics Server deve estar rodando em seu cluster.
- Clone o repositório:
git clone https://github.com/seu-usuario/Kubernetes-Resource-Analyzer.git
cd Kubernetes-Resource-Analyzer
- Torne o script executável:
chmod +x requests_limits.sh
- Execute o script:
./requests_limits.sh
O script irá gerar um arquivo workloads_without_requests.csv
com as sugestões de requests.
Acesse a wiki do repositório para entender mais.
Contribuições são bem-vindas. Sinta-se à vontade para abrir uma issue ou enviar um pull request.