12

When trying to setup a HorizontalPodAutoscaler on Amazon EKS, the TARGETS column always displays <unknown>/50% and when describing the HPA, I see

Warning FailedGetResourceMetric 17s (x50 over 1h) horizontal-pod-autoscaler unable to get metrics for resource cpu: unable to fetch metrics from resource metrics API: the server could not find the requested resource (get pods.metrics.k8s.io)

I've found multiple posts on other sites about similar issues mentioning to use --horizontal-pod-autoscaler-use-rest-clients on the kube-controller-manager, but I cannot find a way to change settings on the kube-controller-manager for an EKS cluster since it appears you can't SSH into the master nodes for management and kube-controller-manager is not listed as a resource anywhere in the system.

I have tried setting up the metrics-server manually following instructions on https://github.com/kubernetes-incubator/metrics-server but in that case, I'm shown that EKS doesn't provide the config map necessary for authenticating API extensions Could not create the API server: configmaps "extension-apiserver-authentication" not found

12

EDITED

The AWS has released the support to horizontal pod autoscaling with custom metric: https://aws.amazon.com/pt/about-aws/whats-new/2018/08/amazon-eks-supports-horizontal-pod-autoscaling-with-custom-metric/

PREVIOUS ANSWER

This is a known issue currently with EKS. Here is my response from support (Partially omitted):

Unfortunately, the EKS control plane currently has issues with the metrics-server aggregator. The EKS service team are working to these issues to bring metric-server support to the Control Plane.

As soon as this feature gets released, it should be publicly announced in either one of the following links:

I have indicated your interest in this issue and I will advocate for a solution on your behalf.

Hopefully they sort it out soon.

  • Thank you. I absolutely needed this feature and got a similar response from them. I went ahead and spun up a cluster with kops that I can actually work on when issues arise. Hopefully amazon will give some more configuration to this platform in the future. – James Mills Jun 28 '18 at 16:31
2

I know this is an older topic, but I wanted to add something, since we had issues setting it up recently.

While HPA is supported in Kubernetes 1.10 from eks version eks.2, in Kubernetes 1.11 it's supported from version eks.1 already.

But it doesn't work "out of the box" and the issue is the same as described in the question (current CPU is not set).

You need to know that the metrics-server is not installed on EKS by default. The metrics-server can be found here: https://github.com/kubernetes-incubator/metrics-server.

After the metrics-server is running, the HPA is working on EKS as expected.

Hope that helps someone!

  • Hi even after adding the metrics server , the hpa is unable to receive metrics. :( – Balakumar Ezhilmaran Jul 11 at 10:11
  • For me that did the trick. Which version of EKS are you using? Maybe AWS support can help when all the other tips didn't help. – Pampy Jul 25 at 10:44
1

It is supported now, it is a little late and requires a new cluster, you cannot trigger the update manually, yet.

https://aws.amazon.com/blogs/opensource/horizontal-pod-autoscaling-eks/

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.