Install the Dapr extension for Azure Kubernetes Service (AKS) and Arc-enabled Kubernetes
Article
01/16/2025
Dapr simplifies building resilient, stateless, and stateful applications that run on the cloud and edge and embrace the diversity of languages and developer frameworks. With Dapr's sidecar architecture, you can keep your code platform agnostic while tackling challenges around building microservices, like:
Calling other services reliably and securely
Building event-driven apps with pub/sub
Building applications that are portable across multiple cloud services and hosts (for example, Kubernetes vs. a virtual machine)
The Dapr extension uses the Azure CLI or a Bicep template to provision the Dapr control plane on your AKS or Arc-enabled Kubernetes cluster, creating the following Dapr services:
Dapr service
Description
dapr-operator
Manages component updates and Kubernetes services endpoints for Dapr (state stores, pub/subs, etc.)
dapr-sidecar-injector
Injects Dapr into annotated deployment pods and adds the environment variables DAPR_HTTP_PORT and DAPR_GRPC_PORT to enable user-defined applications to easily communicate with Dapr without hard-coding Dapr port values.
dapr-placement
Used for actors only. Creates mapping tables that map actor instances to pods.
dapr-sentry
Manages mTLS between services and acts as a certificate authority. For more information, read the security overview.
Once Dapr is installed on your cluster, you can begin to develop using the Dapr building block APIs by adding a few annotations to your deployments. For a more in-depth overview of the building block APIs and how to best use them, see the Dapr building blocks overview.
Warning
If you install Dapr through the AKS or Arc-enabled Kubernetes extension, our recommendation is to continue using the extension for future management of Dapr instead of the Dapr CLI. Combining the two tools can cause conflicts and result in undesired behavior.
Add the Azure CLI extension for cluster extensions
Install the k8s-extension Azure CLI extension by running the following commands:
az extension add --name k8s-extension
If the k8s-extension extension is already installed, you can update it to the latest version using the following command:
az extension update --name k8s-extension
Register the KubernetesConfiguration resource provider
If you aren't already using cluster extensions, you may need to register the resource provider with your subscription. You can check the status of the provider registration using the az provider list command, as shown in the following example:
az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table
The Microsoft.KubernetesConfiguration provider should report as Registered, as shown in the following example output:
If you install Dapr without specifying a version, --auto-upgrade-minor-versionis automatically enabled, configuring the Dapr control plane to automatically update its minor version on new releases.
You can disable auto-update by specifying the --auto-upgrade-minor-version parameter and setting the value to false.
To upgrade to the latest Dapr version in a production environment, you need to manually upgrade. Start by viewing a list of the stable Dapr versions available to your managed AKS cluster. Run the following command:
Dapr is supported with a rolling window, including only the current and previous versions. It is your operational responsibility to remain up to date with these supported versions. If you have an older version of Dapr, you may have to do intermediate upgrades to get to a supported version.
The same command-line argument is used for installing a specific version of Dapr or rolling back to a previous version. Set --auto-upgrade-minor-version to false and --version to the version of Dapr you wish to install. If the version parameter is omitted, the extension installs the latest version of Dapr. The following example command installs Dapr version 1.14.4-msft.10 on your AKS cluster:
Register the KubernetesConfiguration resource provider
If you aren't already using cluster extensions, you may need to register the resource provider with your subscription. You can check the status of the provider registration using the az provider list command, as shown in the following example:
az provider list --query "[?contains(namespace,'Microsoft.KubernetesConfiguration')]" -o table
The Microsoft.KubernetesConfiguration provider should report as Registered, as shown in the following example output:
Deploy the Bicep template using the az deployment group command.
az deployment group create \
--resource-group $MY_RESOURCE_GROUP \
--template-file ./my-bicep-file-path.bicep \
--parameters clusterName=$MY_AKS_CLUSTER
Configuring automatic updates to Dapr control plane
Warning
You can enable automatic updates to the Dapr control plane only in dev or test environments. Auto-upgrade is not suitable for production environments.
If you deploy Dapr without specifying a version, autoUpgradeMinorVersionis automatically enabled, configuring the Dapr control plane to automatically update its minor version on new releases.
You can disable auto-update by specifying the autoUpgradeMinorVersion parameter and setting the value to false.
Dapr is supported with a rolling window, including only the current and previous versions. It is your operational responsibility to remain up to date with these supported versions. If you have an older version of Dapr, you may have to do intermediate upgrades to get to a supported version.
Set autoUpgradeMinorVersion to false and version to the version of Dapr you wish to install. If the autoUpgradeMinorVersion parameter is set to true, and version parameter is omitted, the extension installs the latest version of Dapr.
The process of uninstalling the Dapr extension from AKS does not delete the CRDs created during installation. These CRDs remain in the cluster as residual components, essential for the reconciler during the installation and uninstallation of the extension.
To clean the cluster of these CRDs, you can manually delete them after the Dapr extension has been completely uninstalled from AKS.
Uninstalling the extension
Delete the extension from your AKS cluster using the following command:
The source for this content can be found on GitHub, where you can also create and review issues and pull requests. For more information, see our contributor guide.
Azure Kubernetes Service
feedback
Azure Kubernetes Service
is an open source project. Select a link to provide feedback:
Build end-to-end solutions in Microsoft Azure to create Azure Functions, implement and manage web apps, develop solutions utilizing Azure storage, and more.