你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍如何在扩展区域中部署已启用 Arc 的托管 SQL 实例。 请参阅 什么是 Azure 扩展区域?| 服务 了解当前支持的 PaaS 工作负载。
先决条件
- 具有活动订阅的 Azure 帐户。
- 对扩展区域的访问权限。 有关详细信息,请参阅 请求访问 Azure 扩展区域。
- 安装 Azure CLI。
- 访问公共或专用容器注册表,例如 Azure 容器注册表。
- Azure Data Studio
- Azure Data Studio 的 Azure Arc 扩展
- 适用于 Azure CLI 的 arcdata 扩展
- kubectl
- 除所需工具外, 还有 Azure Arc 数据控制器。
- 其他客户端工具,具体取决于你的环境。 有关更完整的列表,请参阅客户端工具。
- 在扩展区域中设置已启用 Azure Arc 的 Kubernetes 群集。
注释
使用预期的扩展位置作为位置变量。
入门指南
如果你已经熟悉了主题,则可以跳过此段落。 下面是在继续创建之前可能需要阅读的重要主题:
- 公共预览的要求和限制。 群集要求尤为重要。
- 已启用 Azure Arc 的数据服务的概述
- 连接模式和要求
- 存储配置和 Kubernetes 存储概念
- Kubernetes 资源模型
在扩展区域中创建已启用 Azure Arc 的 ManagedSQL 实例
创建已启用 Arc 的 AKS 群集后,可以继续使用以下 PowerShell 脚本在扩展区域中的 AKS 群集上创建 ManagedSQL 实例,并将其连接到已启用 Azure Arc 的 Kubernetes。
注释
请确保将已启用 Arc 的 AKS 步骤中的参数正确传输到脚本中。
. "./CreateArcEnabledAksOnEZ"
function CreateManagedSqlOnArcEnabledAksEz {
param(
[string] $ManagedInstanceName,
[string] $dbname,
[string] $SubscriptionId,
[string] $AKSClusterResourceGroupName,
[string] $location = "westus",
[string] $AKSName,
[string] $edgeZone,
[int] $nodeCount = 2,
[string] $vmSize = "standard_nv12ads_a10_v5",
[string] $ArcResourceGroupName,
[string] $DataControllerName,
[string] $CustomLocationName,
[string] $Namespace,
[string] $DataControllerConfigProfile,
[string] $KeyVaultName,
[string] $VaultSecretUser,
[string] $VaultSecretPass,
[switch] $Debug
)
try {
# Set the subscription
az account set --subscription $SubscriptionId
# Create the ARC-enabled EZ AKS cluster
createArcEnabledAksOnEz -SubscriptionId $SubscriptionId -AKSClusterResourceGroupName $AKSClusterResourceGroupName -location $location -AKSName $AKSName -edgeZone $edgeZone -nodeCount $nodeCount -vmSize $vmSize -ArcResourceGroupName $ArcResourceGroupName -Debug:$Debug
# Define name of the connected cluster resource
$CLUSTER_NAME = "$ArcResourceGroupName-cluster"
# Create a key vault and store login
$AZDATA_USERNAME = az keyvault secret show --vault-name $KeyVaultName --name $VaultSecretUser --query value -o tsv
$AZDATA_PASSWORD = az keyvault secret show --vault-name $KeyVaultName --name $VaultSecretPass --query value -o tsv
# Define login for data controller and metrics
$ENV:AZDATA_LOGSUI_USERNAME = $AZDATA_USERNAME
$ENV:AZDATA_LOGSUI_PASSWORD = $AZDATA_PASSWORD
$ENV:AZDATA_METRICSUI_USERNAME = $AZDATA_USERNAME
$ENV:AZDATA_METRICSUI_PASSWORD = $AZDATA_PASSWORD
# Define the connected cluster and extension for the custom location
$CONNECTED_CLUSTER_ID=$(az connectedk8s show --resource-group $ArcResourceGroupName --name $CLUSTER_NAME --query id --output tsv)
$EXTENSION_ID=$(az k8s-extension show `
--cluster-type connectedClusters `
--name 'my-data-controller-custom-location-ext' `
--cluster-name $CLUSTER_NAME `
--resource-group $ArcResourceGroupName `
--query id `
--output tsv)
# Create a custom location for the data controller
Write-Output "Creating data controller custom location..."
az customlocation create `
--resource-group $ArcResourceGroupName `
--name $CustomLocationName `
--host-resource-id $CONNECTED_CLUSTER_ID `
--namespace $Namespace `
--cluster-extension-ids $EXTENSION_ID
# Create data controller on Arc-enabled AKS cluster
Write-Output "Creating Arc Data Controller..."
az arcdata dc create --name $DataControllerName --subscription $SubscriptionId --cluster-name $CLUSTER_NAME --resource-group $ArcResourceGroupName --connectivity-mode direct --custom-location $CustomLocationName --profile-name $DataControllerConfigProfile
# Create a managed instance in the custom location
Write-Output "Creating managed instance..."
az sql mi-arc create --name $ManagedInstanceName --resource-group $ArcResourceGroupName --custom-location $CustomLocationName
}
catch {
# Catch any error
Write-Error "An error occurred"
Write-Error $Error[0]
}
}
CreateManagedSqlOnArcEnabledAksEz -ManagedInstanceName "my-managed-instance" `
-dbname "myDB" `
-SubscriptionId "<your subscription>" `
-AKSClusterResourceGroupName "my-aks-cluster-group" `
-location "westus" `
-AKSName "my-aks-cluster" `
-edgeZone "losangeles" `
-nodeCount 2 `
-vmSize "standard_nv12ad-DataControllerConfigProfiles_a10_v5" `
-ArcResourceGroupName "myArcResourceGroup" `
-DataControllerName "myDataController" `
-CustomLocationName "dc-custom-location" `
-Namespace "my-data-controller-custom-location" `
-DataControllerConfigProfile "azure-arc-aks-premium-storage" `
-KeyVaultName "ezDataControllerConfig" `
-VaultSecretUser "AZDATA-USERNAME" `
-VaultSecretPass "AZDATA-PASSWORD"
在 Azure Arc 上查看实例
如果要查看实例,请使用以下命令:
az sql mi-arc list --k8s-namespace <namespace> --use-k8s
可以在此处复制外部 IP 和端口号,以便连接由 Azure Arc 启用的 SQL 托管实例。此时,请使用 Azure Data Studio 的内部版本。
清理资源
如果不再需要,请使用 az group delete 命令删除 my-aks-cluster-group 资源组及其包含的所有资源。
az group delete --name my-aks-cluster-group