AKS | Cluster Extension


In this article, I will share with you a new AKS feature: Cluster Extension.

Cluster extensions provides an Azure Resource Manager driven experience for installation and lifecycle management of services like Azure Machine Learning (ML) on an AKS cluster. This feature enables:

  • Azure Resource Manager-based deployment of extensions, including at-scale deployments across AKS clusters.
  • Lifecycle management of the extension (Update, Delete) from Azure Resource Manager.

Available extensions:

DaprDapr is a portable, event-driven runtime that makes it easy for any developer to build resilient, stateless and stateful applications that run on cloud and edge.
Azure MLUse Azure Kubernetes Service clusters to train, inference, and manage machine learning models in Azure Machine Learning.
Flux (GitOps)Use GitOps with Flux to manage cluster configuration and application deployment.

To enable the feature (still in public preview):

# - Requirements
az feature register --namespace "Microsoft.ContainerService" --name "AKS-ExtensionManager"
az feature list -o table --query "[?contains(name, 'Microsoft.ContainerService/AKS-ExtensionManager')].{Name:name,State:properties.state}"
az provider register --namespace Microsoft.KubernetesConfiguration
az provider register --namespace Microsoft.ContainerService

# - Update Azure CLI
az extension update --name k8s-extension
az extension add --name k8s-extension

# - List all extensions installed on the cluster
az k8s-extension list --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters

# - Azure Machine Learning extension instance on your AKS cluster
az k8s-extension create --name aml-compute --extension-type Microsoft.AzureML.Kubernetes --scope cluster --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters --configuration-settings enableInference=True allowInsecureConnections=True

# - Delete extension instance
az k8s-extension delete --name azureml --cluster-name <clusterName> --resource-group <resourceGroupName> --cluster-type managedClusters


AKS | Message of the Day


In this article, I will show you how you can replace the Message of the Day on Linux nodes at cluster creation or node pool creation. When you first log in to a terminal on a Unix system, Linux included, you are usually greeted by that system’s message of the day(MOTD). The message of the day, gives you important information about the system or just messages from the system admin.

Cluster creation with a custom Message of the Day:

az aks create --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt

Nodepool creation with a custom Message of the Day:

az aks nodepool add --name mynodepool1 --cluster-name myAKSCluster --resource-group myResourceGroup --message-of-the-day ./newMOTD.txt


AKS | Bring your own Container Network Interface (CNI)


This article shows how to deploy an AKS cluster with no CNI plugin pre-installed, which allows for installation of any third-party CNI plugin that works in Azure.

# Install the aks-preview extension
az extension add --name aks-preview

# Update the extension to make sure you have the latest version installed
az extension update --name aks-preview

# Create a resource group to create the cluster in
az group create -l <Region> -n <ResourceGroupName>

# create the cluster itself
az aks create -l <Region> -g <ResourceGroupName> -n <ClusterName> --network-plugin none