Reading Time: 3 minutes

Hello, fellow Kubernetes enthusiasts! Today, we’re diving into an exciting new feature in Azure Kubernetes Services (AKS) – Mixed SKU Node Pools. This feature, currently in preview, allows you to deploy multiple VM SKUs from a SKU family within a single node pool, providing more flexibility and reducing the need for multiple node pools.

Prerequisites

Before we get started, make sure you have the following:

  • An Azure subscription.
  • AKS-preview extension (v4.0.0b4 or later).
  • Minimum Kubernetes version 1.26.

Installation and Registration

First things first, let’s get the AKS-preview extension installed or updated. Open your Azure Cloud ell and run:

Next, set your subscription and register the VMsAgentPoolPreview feature flag. This will enable the mixed SKU node pools feature for your subscription:

After a few minutes, verify that the feature is registered:

Finally, refre the registration of the Microsoft.ContainerService resource provider:

Limitations

Before you jump in, note these limitations:

  • Cluster autoscaler isn’t available.
  • InfiniBand and Windows node pools aren’t supported.
  • Management is only via CLI or REST APIs.
  • VM sizes must be from the same family.

Create a Mixed SKU Node Pool

Now, let’s create a new AKS cluster with a mixed SKU node pool. Here’s how you do it:

This command sets up a new AKS cluster named aks-mixed-pools with two nodes in the rg-aks-mixed-pools resource group. If you look at the managed resource group you will see Virtual machines rather than a Virtual Machine Scale Set (VMSS).

Add a Mixed SKU Node Pool to an Existing Cluster

To add a mixed SKU node pool to an existing cluster, run:

This adds a new node pool named mixedpool to your aks-mixed-pools cluster with three nodes of Standard_D4s_v3 VM SKU. One cool thing to note is --vm-size can have more than one vm size, it accepts comma seperated lists like: "Standard_D4s_v3,Standard_D8s_v3"

Manage Scale Profiles

You can also manage scale profiles for your mixed SKU node pools. Here’s how to add, update, and delete scale profiles:

Add a Manual Scale Profile

To add a manual scale profile to a node pool, use the following command. This example adds a profile to mixedpool with two nodes of Standard_D2s_v3:

After running this command you will notice that the mixedpool node pool now has 5 nodes in it, 3 “Standard_D4s_v3” and 2 “Standard_D2s_v3”. You can check with the following command:

Update an Existing Manual Scale Profile

To update an existing manual scale profile, use this command. This example updates mixedpool to change from Standard_D4s_v3 to Standard_D8s_v3 and sets the node count to five:

Delete a Manual Scale Profile

To delete a manual scale profile, use this command. This example deletes the profile using Standard_D8s_v3 in mixedpool:

Conclusion

Mixed SKU node pools are a powerful addition to AKS, enabling greater flexibility and efficiency in managing diverse workloads. While currently in preview, this feature promises to streamline your AKS deployments significantly.


Pixel Robots.

I’m Richard Hooper aka Pixel Robots. I started this blog in 2016 for a couple reasons. The first reason was basically just a place for me to store my step by step guides, troubleshooting guides and just plain ideas about being a sysadmin. The second reason was to share what I have learned and found out with other people like me. Hopefully, you can find something useful on the site.

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *