Azure Arc data controller deployment in direct connectivity mode is performed directly from the Azure portal. This deployment mode requires a set of pre-requisites to be met. These prerequisites are broadly classified into:
This section describes in detail the Azure Arc data controller deployment on the PowerFlex platform in direct connectivity mode from the Azure portal.
The PowerFlex platform is configured through Upstream Kubernetes cluster with one master and two worker nodes. The PowerFlex CSI driver plug-in is installed on the cluster to provision the PowerFlex based storage volumes to the Kubernetes cluster. The Kubernetes cluster is connected to the Azure portal using Azure Arc-enabled Kubernetes. Listed Azure client tools are installed and upgraded to the latest available version. The latest version of Helm is installed along with the required Azure CLI extensions. The service principal is created, and roles are configured as per the guidelines.
Note: The deployment of Azure Arc-enabled SQL Managed Instance and Azure Arc-enabled PostgreSQL Hyperscale is done from the Azure portal only when the Azure Arc data controller is deployed in the direct connectivity mode.
Perform the following steps to install the Azure data controller on PowerFlex Platform:
The k8s-extension CLI is used to create a data service extension. The listed environment variables were set and passed in to create data service extension command.
PS C:\Windows\system32> $ENV:subscription="XXXXXXXXXXXXXXXX"
PS C:\Windows\system32> $ENV:resourceGroup="AzureArcTest"
PS C:\Windows\system32> $ENV:resourceName="AzureArcTest1"
PS C:\Windows\system32> $ENV:location="eastus"
PS C:\Windows\system32> $ENV:ADSExtensionName="ads-extension"
PS C:\Windows\system32> az k8s-extension create -c "$ENV:resourceName" -g "$ENV:resourceGroup" --name "$ENV:ADSExtensionName" --cluster-type connectedClusters --extension-type microsoft.arcdataservices --auto-upgrade false --scope cluster --release-namespace arc --config Microsoft.CustomLocation.ServiceAccount=sa-bootstrapper
Figure 8. Kubernetes extension from the Azure portal
Note: There is an option available to deploy the Azure Arc data services extension using a private container registry and credentials, by passing these values to the create command.
Custom location is a type of an Azure resource that is used to deploy resources to and from Azure, these are equivalent to a namespace in a Kubernetes cluster. A custom location is created using custom location CLI extension. The listed environment variables are set and passed on to the create custom location command.
PS C:\Windows\system32> $ENV:clName="mycustomlocation"
PS C:\Windows\system32> $ENV:clNamespace="arc"
PS C:\Windows\system32> $ENV:hostClusterId = az connectedk8s show -g "$ENV:resourceGroup" -n "$ENV:resourceName" --query id -o tsv
PS C:\Windows\system32> $ENV:extensionId = az k8s-extension show -g "$ENV:resourceGroup" -c "$ENV:resourceName" --cluster-type connectedClusters --name "$ENV:ADSExtensionName" --query id -o tsv
PS C:\Windows\system32> az customlocation create -g "$ENV:resourceGroup" -n "$ENV:clName" --namespace "$ENV:clNamespace" --host-resource-id "$ENV:hostClusterId" --cluster-extension-ids "$ENV:extensionId"
Run the following command to list and verify the created custom location:
PS C:\Windows\system32> az customlocation list -o table
Command group 'customlocation' is in preview and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Name Location ResourceGroup Namespace ProvisioningState
---------------- ---------- --------------- ----------- -------------------
mycustomlocation eastus azurearctest arc Succeeded
Azure Arc data controller is deployed from the portal to the PowerFlex Kubernetes cluster. The following set of values is passed as input parameters – resource group, custom location, Kubernetes configuration template, storage class names for data and log volumes, administrative account details, and service principal details. The custom location must be the location on which the data controller is installed. The service principal is created with the required role to the account and these values are passed while creating the data controller from the portal.
Figure 9. Data controller from the Azure portal
Figure 10. Data controller deployments complete
Figure 11. Data controller view in the Azure portal
The created data controller is listed in the Kubernetes cluster with Ready status, and required pods are created in the Azure-Arc namespace.
[root@azurevm1 .kube]# kubectl get datacontrollers -n arc
NAME STATE
pflex-dc Ready
[root@azurevm1 .kube]# kubectl get pods -n arc
NAME READY STATUS RESTARTS AGE
bootstrapper-2tllr 1/1 Running 0 14m
control-8s5zr 2/2 Running 0 8m17s
controldb-0 2/2 Running 0 5m11s
logsdb-0 1/1 Running 0 2m52s
logsui-k6txv 1/1 Running 0 2m53s
metricsdb-0 1/1 Running 0 2m53s
metricsdc-6776v 1/1 Running 0 2m52s
metricsdc-x8sf8 1/1 Running 0 2m52s
metricsui-9msc4 1/1 Running 0 2m52s
mgmtproxy-r8pzq 2/2 Running 0 2m53s
The Azure Data Studio is installed on the windows client machine. From the Azure Data Studio, the Azure Arc data controller that was deployed in the previous step is connected. The connection is established using cluster control endpoint, this endpoint is used for communication between Azure Data CLI and the Azure Arc data controller.
Figure 12. Connect to the Azure Arc data controller deployed on the PowerFlex platform using Azure Data Studio