Directly Connected Mode Data Controller for Azure Arc-enabled Data Services
Azure Arc-enabled Data Services offers two options for connectivity modes to customers: directly connected mode and indirectly connected mode. In the last blog post, we explored what each of these modes are, the capabilities each mode opens up, and the scenarios which are a best fit for each mode.
Today we are going to do a deep dive into directly connected mode for the data controller and what happens behind the scenes during deployment.
Arc Enabling the Kubernetes Cluster & Creating the Data Controller
Customers can deploy Kubernetes on any infrastructure of their choice. Azure Arc-enabled Data Services supports the majority of Kubernetes distributions.
In order to deploy Azure Arc data controller in a directly connected mode on the Kubernetes cluster, the Kubernetes cluster needs to be “arc enabled” first. Arc enabling the Kubernetes cluster allows the cluster to be connected to Azure, discoverable from Azure Portal, and opens up capabilities such as deploying and managing resources (Data controller, SQL managed instance, etc), as well as the option to upload logs and metrics to Azure.
In addition to all this, customers also benefit from an Azure Arc integration when deploying in directly connected mode. This Azure Arc integration allows customers to connect their Data Services to Azure and unlock additional functionality such as deploying from the Azure Portal directly. Customers can also take advantage of Azure services like monitoring and can optionally upload metrics and logs information to Azure, in addition to uploading backups to Azure for long term retention.
To Arc-enable a Kubernetes cluster, you need the following Azure CLI extensions, in addition to the arcdata extension:
- k8s-extension
- connectedk8s
The above extensions can be added as follows:
az extenson add –name k8s-extension
az extenson add –name connectedk8s
After these extensions are added to the cluster, the cluster can be arc-enabled.
First, ensure you are connected to the right cluster by verifying your cluster context:
kubectl cluster-info
Then, run the script below to arc enable the cluster:
az connectedk8s connect –name <connectedclustername> --resource-group <myresourcegroup>
The command above installs a namespace called azure-arc with some pods and containers that perform the orchestration needed to allow the cluster to talk to Azure and vice versa.
Once a cluster is Arc-enabled, then it is accessible in the Azure Portal. You can login to the Azure Portal, and see the cluster in the resource group that was specified above.
After Arc enabling the cluster, you can deploy the Arc data controller in direct connected mode. This can be deployed from the Microsoft container registry or from a private repository. At a high level, the data controller acts as the brain behind the data services. Through deploying the Azure Arc data controller, customers are able get the built in functionality like built in monitoring, built in patching, built in scaling, etc.
Direct Connected Mode Data Controller
Directly connected mode talks to the Azure Resource Manager (ARM) API. On the other hand, indirectly connected mode talks to the Kubernetes API.
Directly connected mode deployment also requires custom location as a required parameter which is similar to a Kubernetes namespace. Custom location is an Azure resource that maps to a namespace on the Kubernetes cluster. This parameter allows groups of resources to be isolated within a single cluster which is why it is essential during deployment.
For directly connected mode and data controller deployment steps, kubectl commands will be very useful. Here are a few key Kubernetes commands:
- Kubernetes command to set the current context: kubectl config set-context –<K8s cluster name>
- Kubernetes Command to view all the namespaces a cluster is using: kubectl get namespaces
- Kubernetes command to view all the pods in the namespace: kubectl get pods –namespace <namespace>
- Kubernetes command to get all the information about a specific pod: kubectl describe pod <pod name> --namespace <namespace>
- Kubernetes Command to get a list of all the data controllers: kubectl get datacontrollers -A
Getting Started
Get started today with a directly connected mode data controller deployment using the az CLI, Azure Portal or Azure Data Studio.
Nikita Takru
Product Manager at Microsoft, Azure Data
Published on:
Learn moreRelated posts
Announcing the end of support for Node.js 20.x in the Azure SDK for JavaScript
After July 9, 2026, the Azure SDK for JavaScript will no longer support Node.js 20.x. Upgrade to an Active Node.js Long Term Support (LTS) ver...
MCP Apps on Azure Functions: Quickstart with TypeScript
Learn how to build and deploy MCP (Model Context Protocol) apps on Azure Functions using TypeScript. This guide covers MCP tools, resources, l...
Setting up Power BI Version Control with Azure Dev Ops
In this blog post is a way set up version control for Power BI semantic models (and reports) using the PBIP (Power BI Project) format, Azure D...
Azure Developer CLI (azd) – March 2026: Run and Debug AI Agents Locally, GitHub Copilot Integration, & Container App Jobs
Run, invoke, and monitor AI agents locally or in Microsoft Foundry with the new azd AI agent extension commands. Plus GitHub Copilot-powered p...
Writing Azure service-related unit tests with Docker using Spring Cloud Azure
This post shows how to write Azure service-related unit tests with Docker using Spring Cloud Azure. The post Writing Azure service-related uni...
Azure SDK Release (March 2026)
Azure SDK releases every month. In this post, you find this month's highlights and release notes. The post Azure SDK Release (March 2026) appe...
Specifying client ID and secret when creating an Azure ACS principal via AppRegNew.aspx will be removed
The option to specify client ID and secret when creating Azure ACS principals will be removed. Users must adopt the system-generated client ID...
Azure Developer CLI (azd): Run and test AI agents locally with azd
New azd ai agent run and invoke commands let you start and test AI agents from your terminal—locally or in the cloud. The post Azure Developer...