Bom dia, seguindo os passos da aula "05. Como escalar com o Horizontal Pod Autoscaler" do curso "Kubernetes: Deployments, Volumes e Escalabilidade Kubernetes: Deployments, Volumes e Escalabilidade ", fiz a configuração do Metric Server(https://github.com/kubernetes-sigs/metrics-server), configurei o meu Deployment e o HPA.
Porém o HorizontalPodAutoscaler fica apresentando o status de "/50%" no Target, para a métrica de CPU que eu estou utilizando.
Ao utilizar uma outra aplicação de exemplo, contida na documentação da AWS, consigo obter a métrica de CPU com sucesso: https://docs.aws.amazon.com/pt_br/eks/latest/userguide/horizontal-pod-autoscaler.html
No meu ambiente estou utilizando o Amazon EKS. Tentei utilizar o Deployment com algumas configurações diferentes, colocar os valores dos resources entre aspas duplas. Tentei utilizar outra versão no "apiVersion" do HPA e outras configurações no manifesto, compatíveis com a versão da API, sem sucesso. Tentei usar outro metric-server. Tentei subir o metric-server, o Deployment e o HPA em ordens diferentes para verificar se o comportamento se alterava. Tentei estressar o Pod, enviando diversas requisições, para verificar se ele precisava de modificações no consumo de CPU para começar a trazer a métrica no Target, mas não adiantou.
Sabem o que pode estar impedindo o funcionamento das métricas no HPA "portal-noticias-hpa"?
- HPA com problema(/50%) e a outra ok:
fernando@debian10x64:~/cursos/kubernetes-alura$ kubectl get hpa
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE
php-apache Deployment/php-apache 0%/50% 1 10 7 8m20s
portal-noticias-hpa Deployment/portal-noticias-deployment <unknown>/50% 1 10 3 11m
fernando@debian10x64:~/cursos/kubernetes-alura$
Erros identificados no HPA: https://pastecode.io/s/mic0qvxh
Nos logs do metric-server não há nada relevante: https://pastecode.io/s/iot6pbkb
- Comando top trazendo as métricas:
fernando@debian10x64:~/cursos/kubernetes-alura$ kubectl top nodes
NAME CPU(cores) CPU% MEMORY(bytes) MEMORY%
ip-10-0-1-167.ec2.internal 61m 3% 647Mi 19%
ip-10-0-2-194.ec2.internal 1583m 82% 1139Mi 34%
fernando@debian10x64:~/cursos/kubernetes-alura$
fernando@debian10x64:~/cursos/kubernetes-alura$ kubectl top pod -A
NAMESPACE NAME CPU(cores) MEMORY(bytes)
default db-noticias-deployment-6b949b4bf7-pzdkv 1m 461Mi
default portal-noticias-deployment-59df88dc99-9bvc5 1m 12Mi
default portal-noticias-deployment-59df88dc99-ftv6r 1m 12Mi
default portal-noticias-deployment-59df88dc99-wp24c 1m 12Mi
default portal-noticias-replicaset-ljnjd 1m 12Mi
default portal-noticias-replicaset-mcwnd 1m 12Mi
default portal-noticias-replicaset-vdhbt 1m 15Mi
default sistema-noticias-deployment-666dcb977f-wh9mw 1m 21Mi
default sistema-noticias-statefulset-0 1m 20Mi
kube-system aws-node-2kq7l 3m 41Mi
kube-system aws-node-sxxkt 5m 41Mi
kube-system coredns-66cb55d4f4-78h5s 1m 9Mi
kube-system coredns-66cb55d4f4-zbc2c 1m 9Mi
kube-system kube-proxy-k4l5j 1m 14Mi
kube-system kube-proxy-klmgh 1m 14Mi
kube-system metrics-server-7f757645cd-z7ddt 1m 13Mi
fernando@debian10x64:~/cursos/kubernetes-alura$
Seguem os manifestos em YAML do Deployment, Components e do HPA:
Deployment: https://pastecode.io/s/942525ac
Components(metric-server): https://pastecode.io/s/7kiznxry