Como configuro o Kubernetes Metrics Server e o Horizontal Pod Autoscaler no Amazon EKS?
Quero configurar o Kubernetes Metrics Server e o Horizontal Pod Autoscaler (HPA) no Amazon Elastic Kubernetes Service (Amazon EKS).
Resolução
Configure o ambiente
- Crie uma instância do Amazon Elastic Compute Cloud (Amazon EC2).
- Instale o kubectl na sua instância do EC2.
- Instale e configure a versão mais recente da AWS Command Line Interface (AWS CLI) em sua instância do EC2.
- Configure seu arquivo kubeconfig para apontar para o cluster do Amazon EKS.
Crie um Kubernetes Metrics Server
1. Execute o comando a seguir para instalar o Metrics Server:
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml
2. Execute o comando a seguir para confirmar que o Metrics Server está em execução:
kubectl get pods -n kube-system -l k8s-app=metrics-server
A saída é semelhante à seguinte:
kubectl get pods -n kube-system -l k8s-app=metrics-server metrics-server-85cc795fbf-79d72 1/1 Running 0 22s
Crie uma implantação e um serviço php-apache
1. Execute o comando a seguir para criar uma implantação php-apache:
kubectl create deployment php-apache --image=k8s.gcr.io/hpa-example
2. Execute o comando a seguir para definir as solicitações de CPU:
kubectl patch deployment php-apache -p='{"spec":{"template":{"spec":{"containers":[{"name":"hpa-example","resources":{"requests":{"cpu":"200m"}}}]}}}}'
Importante: se você não definir o valor da cpu corretamente, a métrica de utilização da CPU do pod não será definida e o HPA não poderá escalar.
3. Execute o comando a seguir para expor a implantação como um serviço:
kubectl create service clusterip php-apache --tcp=80
4. Execute o comando a seguir para criar um HPA:
kubectl autoscale deployment php-apache --cpu-percent=50 --min=1 --max=10
5. Execute o comando a seguir para confirmar que o HPA foi criado:
kubectl get hpa
6. Para criar um pod para se conectar à implantação criada anteriormente, execute o comando a seguir:
kubectl run -i --tty load-generator --image=busybox /bin/sh
7. Para testar uma carga no pod no namespace usado na etapa 1, execute o script a seguir:
while true; do wget -q -O- http://php-apache; done
Observação: para sair do loop while e da sessão tty do pod do gerador de carga, use CTRL + C para cancelar o loop. Em seguida, use CTRL + D para sair da sessão.
8. Para ver como o HPA escala o pod com base nas métricas de utilização da CPU, execute o comando a seguir (de preferência em outra janela do terminal):
kubectl get hpa -w
O Metrics Server agora está instalado e funcionando, e você pode usá-lo para obter métricas baseadas em recursos.
9. Execute os comandos a seguir para limpar os recursos usados para testar o HPA:
kubectl delete hpa,service,deployment php-apache kubectl delete pod load-generator
Informações relacionadas
Horizontal Pod Autoscaling (no site do Kubernetes)
Vídeos relacionados
Conteúdo relevante
- AWS OFICIALAtualizada há 2 anos
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 2 anos