Azure Arc Blog articles

Azure Arc Blog articles

https://techcommunity.microsoft.com/t5/azure-arc-blog/bg-p/AzureArcBlog

Azure Arc Blog articles

Directly Connected Mode Data Controller for Azure Arc-enabled Data Services

Published

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

 

 

Continue to website...

More from Azure Arc Blog articles