-
Notifications
You must be signed in to change notification settings - Fork 995
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
Provisioner is creating some arm64 nodes even with kubernetes.io/arch in ["amd64"] requirement #1540
Comments
Hey @armujahid I'm trying to reproduce this now. In the meantime, can you share some details about your cluster? Is this a new cluster you've built just for testing out Karpenter? Or is this an existing cluster with other workloads? Can you enable debug logging and supply some logs showing problem? |
It's a newly created cluster that I created by following ekctl karpenter getting started guide (link in step 1). |
Hey @armujahid I am able to reproduce the problem in my test cluster. From what we can tell v0.7.1 is not filtering out instance types based on architecture when identifying feasible instance type options. Here's an example log from v0.6.5 showing instance type options:
Here's an example log from v0.7.1 with same workload and provisioner spec:
(notice the graviton instances are in the list) We are working on a fix for this now. Thank you for bringing this issue to our attention! |
As a note, you can temporarily work around this by manually specifying instance types in the Provider spec. Such as:
|
Thanks for the quick fix. I will test it with v0.7.2. I have also added logs. it was indeed provisioning graviton instances (t4g.small in my case) |
With v0.7.2 it's working fine :)
Note that I had to delete and recreate my provisioner after upgrading from 0.7.1 to 0.7.2 via helm
|
Version
Karpenter: v0.7.1
Kubernetes: v1.2.1
Version: version.Info{Major:"1", Minor:"21+", GitVersion:"v1.21.5-eks-bc4871b", GitCommit:"5236faf39f1b7a7dabea8df12726f25608131aa9", GitTreeState:"clean", BuildDate:"2021-10-29T23:32:16Z", GoVersion:"go1.16.8", Compiler:"gc", Platform:"linux/amd64"}
Expected Behavior
karpenter should only provision amd64 nodes since it's mentioned in provisioner requirements.
Actual Behavior
karpenter is adding some arm64 nodes that are causing "standard_init_linux.go:228: exec user process caused: exec format error" for some pods because of architecture incompatibility.
Also
k get nodes -l kubernetes.io/arch=arm64
is returning some nodes created by karpenterSteps to Reproduce the Problem
Resource Specs and Logs
Provisioner spec is already provided.
Logs:
The text was updated successfully, but these errors were encountered: