Quickstart: Deploy Azure Arc-enabled data services - indirectly connected mode - Azure CLI
In this quickstart, you will deploy Azure Arc-enabled data services in indirectly connected mode from with the Azure CLI.
When you complete the steps in this article, you will have:
- A Kubernetes cluster on Azure Kubernetes Services (AKS).
- A data controller in indirectly connected mode.
- SQL Managed Instance enabled by Azure Arc.
- A connection to the instance with Azure Data Studio.
Use these objects to experience Azure Arc-enabled data services.
Azure Arc allows you to run Azure data services on-premises, at the edge, and in public clouds via Kubernetes. Deploy SQL Managed Instance and PostgreSQL server data services (preview) with Azure Arc. The benefits of using Azure Arc include staying current with constant service patches, elastic scale, self-service provisioning, unified management, and support for disconnected mode.
Prerequisites
If you don't have an Azure subscription, create a free account before you begin.
To complete the task in this article, install the required client tools. Specifically, you will use the following tools:
- Azure Data Studio
- The Azure Arc extension for Azure Data Studio
- Kubernetes CLI
- Azure CLI
arcdata
extension for Azure CLI
Set metrics and logs service credentials
Azure Arc-enabled data services provides:
- Log services and dashboards with Kibana
- Metrics services and dashboards with Grafana
These services require a credential for each service. The credential is a username and a password. For this step, set an environment variable with the values for each credential.
The environment variables include passwords for log and metric services. The passwords must be at least eight characters long and contain characters from three of the following four categories: Latin uppercase letters, Latin lowercase letters, numbers, and non-alphanumeric characters.
Run the following command to set the credential.
export AZDATA_LOGSUI_USERNAME=<username for logs>
export AZDATA_LOGSUI_PASSWORD=<password for logs>
export AZDATA_METRICSUI_USERNAME=<username for metrics>
export AZDATA_METRICSUI_PASSWORD=<password for metrics>
Create and connect to your Kubernetes cluster
After you install the client tools, and configure the environment variables, you need access to a Kubernetes cluster. The steps in this section deploy a cluster on Azure Kubernetes Service (AKS).
Follow the steps below to deploy the cluster from the Azure CLI.
Create the resource group
Create a resource group for the cluster. For location, specify a supported region. For Azure Arc-enabled data services, supported regions are listed in the Overview.
az group create --name <resource_group_name> --location <location>
To learn more about resource groups, see What is Azure Resource Manager.
Create Kubernetes cluster
Create the cluster in the resource group that you created previously.
Select a node size that meets your requirements. See Sizing guidance.
The following example creates a three node cluster, with monitoring enabled, and generates public and private key files if missing.
az aks create --resource-group <resource_group_name> --name <cluster_name> --node-count 3 --enable-addons monitoring --generate-ssh-keys --node-vm-size <node size>
For command details, see az aks create.
For a complete demonstration, including an application on a single-node Kubernetes cluster, go to Quickstart: Deploy an Azure Kubernetes Service cluster using the Azure CLI.
Get credentials
You will need to get credential to connect to your cluster.
Run the following command to get the credentials:
az aks get-credentials --resource-group <resource_group_name> --name <cluster_name>
Verify cluster
To confirm the cluster is running and that you have the current connection context, run
kubectl get nodes
The command returns a list of nodes. For example:
NAME STATUS ROLES AGE VERSION aks-nodepool1-34164736-vmss000000 Ready agent 4h28m v1.20.9 aks-nodepool1-34164736-vmss000001 Ready agent 4h28m v1.20.9 aks-nodepool1-34164736-vmss000002 Ready agent 4h28m v1.20.9
Create the data controller
Now that our cluster is up and running, we are ready to create the data controller in indirectly connected mode.
The CLI command to create the data controller is:
az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name <data controller name> --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s
Monitor deployment
You can also monitor the creation of the data controller with the following command:
kubectl get datacontroller --namespace <namespace>
The command returns the state of the data controller. For example, the following results indicate that the deployment is in progress:
NAME STATE
<namespace> DeployingMonitoring
Once the state of the data controller is ‘READY’, then this step is completed. For example:
NAME STATE
<namespace> Ready
Deploy an instance of SQL Managed Instance enabled by Azure Arc
Now, we can create the Azure MI for indirectly connected mode with the following command:
az sql mi-arc create -n <instanceName> --k8s-namespace <namespace> --use-k8s
To know when the instance has been created, run:
kubectl get sqlmi -n <namespace>[
Once the state of the managed instance namespace is ‘READY’, then this step is completed. For example:
NAME STATE
<namespace> Ready
Connect to managed instance on Azure Data Studio
To connect with Azure Data Studio, see Connect to SQL Managed Instance enabled by Azure Arc.
Upload usage and metrics to Azure portal
If you wish, you can Upload usage data, metrics, and logs to Azure.
Clean up resources
After you are done with the resources you created in this article.
Follow the steps in Delete data controller in indirectly connected mode.