-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Karpenter scaling with k8sNodeBlockList throw errors #305
Comments
@mateusmuller Thanks for reporting. We are looking into this. |
Hey @sud82, thanks for looking into this. Sorry to be pushy, but would you have any updates about this issue? Karpenter is our official tool for compute autoscaling (so as for pretty much every EKS user). This might be a go/no-go decision for us. Thanks! |
Hi @mateusmuller, When a user populates the k8sNodeBlockList, AKO sets node affinity with the key However, Karpenter restricts the use of the This issue does not occur when using the Kubernetes Cluster Autoscaler. Recovery: Once nodes are removed from the k8sNodeBlockList, the Karpenter autoscaler resumes normal operation and can scale the pods as expected. Suggestion: After migrating Aerospike pods from all nodes listed in the k8sNodeBlockList to other nodes, users should clear the k8sNodeBlockList from the spec. I know, the suggestion seems a bit inconvenient but Karpenter and K8sNodeBlockList features have conflicting requirements. Therefore, our options are very limited. Can you please explain your use case where you want to use k8sNodeBlockList along with auto-scaling, what kind of node storage you have, and so on? |
Hello @sud82,
The usecase for
When I would use this? When I want to rotate the nodes. Upon rotation, Karpenter can pull the latest AMI from AWS with security patches and/or new features. AFAIK, that's a basic usage of Kubernetes ecossytem. We use ebs-csi for To be clear how to move forward, there will be no changes from AKO perspective to be compatible with Karpenter, is that correct? If yes, I would recommend removing Karpenter from your autoscaling doc here since it's not fully compatible with your features, and keep only Cluster Autoscaler. |
Thanks for all the details @mateusmuller. I wanted to say that at present there is no workaround or a quick fix for this. We got to know about it when you reported this. But, we will try to find a solution for this in the future. We definitely want to support Karpenter. The main issue here is that we are using We need to find out a new way to disallow pods in the given k8s nodes. That will take some time. We will also reach out to the Karpenter team to get their perspective. At present, it seems like a sweeping check in the Karpenter. |
Folks,
I updated a static
AerospikeCluster
manifest with a bunch of EKS nodes onk8sNodeBlockList
. This triggered an update as expected:Although pod
aerospike-1-2
keeps there forever. This is the error message from Karpenter:Basically they don't allow
kubernetes.io/hostname
withNodeAffinity
. This is what happens with that flag:I found this issue under Karpenter repo with the same issue where they say the usage is wrong.
Can you please share your thoughts if this can be improved somehow? Thanks.
The text was updated successfully, but these errors were encountered: