0
respostas

Target do HPA com status de unknown no Kubernetes - AWS EKS

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$
  • 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: