[EKS] [request]: cluster-autoscaler ARM64 support
Closed this issue ยท 9 comments
Community Note
- Please vote on this issue by adding a ๐ reaction to the original issue to help the community and maintainers prioritize this request
- Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
- If you are interested in working on this issue or have submitted a pull request, please leave a comment
Tell us about your request
What do you want us to build?
The cluster-autoscaler from here:
https://github.com/kubernetes/autoscaler/tree/master/cluster-autoscaler
doesn't work on EKS on ARM, since the image is built for AMD64.
Which service(s) is this request for?
For EKS.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
What outcome are you trying to achieve, ultimately, and why is it hard/impossible to do right now? What is the impact of not having this problem solved? The more details you can provide, the better we'll be able to understand and solve the problem.
The based image used is the distroless image which is apparently not ARM compatible.
Tried to use arm64v8/amazonlinux as the base image, without any luck.
Are you currently working around this issue?
How are you currently solving this problem?
Not succeeded yet to build the ARM / multi-arch cluster-autoscaler image.
I worked around this, by using debian:slim-buster as base image.
FYI:
kubernetes/autoscaler#3419 (comment)
But still having problems to get it running on EKS on ARM.
This would only make sense, if it is a single multi arch image, as that makes transparently switching instance types, including mixed instance types, spotfleets, etc. possible.
Cluster autoscaler added Arm support in 1.20 release
https://github.com/kubernetes/autoscaler/releases/tag/cluster-autoscaler-1.20.0
It is being worked on being backported to older versions
@mikestef9, are the autoscaler versions coupled to Kubernetes versions (1.20 only supports 1.20, etc.) in some way or is the similar versioning only a coincidence?
I use the following file to set / override values and it seems to work on K8s 1.18:
awsRegion: eu-central-1
rbac:
create: true
serviceAccount:
name: autoscaler
annotations:
eks.amazonaws.com/role-arn: "arn:aws:iam::<xy>:role/eks-kube-system-autoscaler"
autoDiscovery:
clusterName: hello-world
enabled: true
image:
repository: us.gcr.io/k8s-artifacts-prod/autoscaling/cluster-autoscaler
tag: v1.20.0
pullPolicy: IfNotPresent
fullnameOverride: autoscaler
The cluster autoscaler release versions are only tested against the matching Kubernetes version. However, as long as there are no wire API changes, there is a good chance a newer cluster autoscaler version will work just fine on an older cluster version, as is the case here.
It would be useful if there was a compatibility matrix for cluster-autoscaler and EKS versions; maybe even with some notes as to what was added in each release.
Closing as EKS now supports v1.20, and the v1.20 release of cluster autoscaler is multi-arch and compatible with Graviton nodes.
Thanks a ton!