HorizontalPodAutoscaling on Amazon EKS

amazon-web-serviceskubernetes

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

Best Answer

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.

Related Topic