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
Introducing Azure HorizonDB - PostgreSQL
Run enterprise Postgres workloads on Azure HorizonDB with around 3x the throughput of self-managed deployments — zone-resilient by default, no...
Azure DevOps and GitHub: Journeying into the AI Era
AI is changing how software gets planned, built, and reviewed. As teams adopt agentic development, the platform underneath those workflows mat...
Introducing azure-functions-skills: An AI-Era Workspace for Azure Functions (Preview)
azure-functions-skills gives GitHub Copilot CLI, Claude Code, Codex CLI, and VS Code the skills, MCP configuration, hooks, and instructions ne...
Announcing the Public Preview of Integrated Embeddings in Azure Cosmos DB: Build AI Apps With Embeddings That Stay in Sync
AI applications built on Azure Cosmos DB depend on embeddings for grounded results. Keeping them in sync with your data is the hard part: it m...
Introducing OmniVec: An Open-Source Embedding Platform for AI Apps on Azure
Today we are open-sourcing OmniVec, a platform for building and operating the embedding pipelines that keep the vector representation of your ...
Azure Cosmos DB All Versions and Deletes Change Feed Mode is Now Generally Available
Modern applications don’t just write data and move on. They react to it. A new order triggers an inventory update. A profile change sync...
Change Partition Keys in Azure Cosmos DB is Now Generally Available
We’re excited to announce the general availability of Change Partition Key in Azure Cosmos DB for NoSQL, now with online copy support. Y...
Announcing the General Availability of Per Partition Automatic Failover for Azure Cosmos DB NoSQL
Today, we are excited to announce the General Availability of Per Partition Automatic Failover (PPAF) for Azure Cosmos DB NoSQL API. PPAF is a...
Public Preview: AI-powered Azure Cosmos DB Migration Assistant for RDBMS to NoSQL
Today, we are excited to announce the public preview of the Azure Cosmos DB Migration Assistant for RDBMS to NoSQL, now available in the Azure...
Azure Cosmos DB MCP Toolkit Is Now Generally Available — Bringing Your Database to AI Agents at Scale
Since we introduced the Azure Cosmos DB MCP Toolkit at Ignite 2025 in preview, the response has been clear: developers want a straightforward ...