Hi!
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:
| Extension | Description |
|---|---|
| Dapr | Dapr 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 ML | Use 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
Maxime.