I’m prototyping whether or not making an EKS cluster multi architecture will save money or not. It seems like it obviously will, because AWS charges less for ARM servers, but it also reduces your bin packing efficiency.

The main thing I’m curious about, is for pods that support both x86 and ARM, would you force them to run on ARM, or allow them to run on either and let Kubernetes determine wherever it is best?

Allowing them to be flexible would be cheapest because it would allow the scheduler to place them on whichever node architecture is available. For example, even though ARM is cheaper, if you currently have extra resources available on x86 nodes, it’s actually cheaper to place the pod on an available x86 nodes rather than spin up another ARM node.

But then I’m worried about the production safety-ness. Especially if you have multiple pods from the same deployment, some on ARM and some on x86, anytime a problem comes up you’d have to consider whether or not the split architecture is a factor.

Using Karpenter by the way.

  • secana@programming.dev
    link
    fedilink
    arrow-up
    4
    ·
    14 hours ago

    We used labels to tag the workers with “arm” and “x86”. We than used policies to allow applications to run only one or the other or both.