Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Neste artigo, aprende como implementar uma Instância SQL Gerida com Arc numa Zona Estendida. Para cargas de trabalho PaaS atualmente suportadas, consulte Ofertas de serviços para Zonas Estendidas do Azure.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Acesso a uma Zona Estendida. Para obter mais informações, consulte Solicitar acesso a uma Zona Estendida do Azure.
- Instale a CLI do Azure.
- Acesso a um registo de contentores público ou privado, como o Azure Container Registry.
- Visual Studio Code (substituindo o anteriormente utilizado Azure Data Studio, que agora está retirado).
- Azure Arc para a extensão Visual Studio Code (substituindo a extensão Azure Arc anteriormente usada no Azure Data Studio, que agora está desativada).
- extensão arcdata para CLI do Azure.
- kubectl.
- Um controlador de dados do Azure Arc, além das ferramentas necessárias.
- Outras ferramentas de cliente dependendo do seu ambiente. Para obter uma lista mais abrangente, consulte Ferramentas de cliente.
- Um cluster Kubernetes com Azure Arc configurado em Zonas Estendidas.
Observação
Use o Local Estendido pretendido como sua variável de localização.
Como Começar
Se já estiver familiarizado com o assunto, pode saltar este parágrafo. Aqui estão tópicos importantes que pode querer ler antes de avançar com a criação:
- Requisitos e limitações da pré-visualização pública. De particular importância são os requisitos do cluster.
- Visão geral dos serviços de dados habilitados para Azure Arc
- Modos e requisitos de conectividade
- Configuração de armazenamento e conceitos de armazenamento do Kubernetes
- Modelo de recursos do Kubernetes
Criar uma instância ManagedSQL habilitada para Azure Arc em zonas estendidas
Depois de criar o cluster AKS compatível com Arc, use o seguinte script PowerShell para criar a sua Instância ManagedSQL num cluster AKS numa Zona Estendida e conectá-la ao Kubernetes compatível com Azure Arc.
Observação
Certifique-se de transferir corretamente os parâmetros das etapas do AKS com suporte para o Arc para o script.
. "./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"
Exibir instância no Azure Arc
Para exibir a instância, use o seguinte comando:
az sql mi-arc list --k8s-namespace <namespace> --use-k8s
Pode copiar o IP externo e o número de porta daqui e ligar-se ao SQL Managed Instance ativado pelo Azure Arc. Neste momento, pode usar a extensão Visual Studio Code para Azure Arc.
Limpeza de recursos
Quando já não precisares dos recursos, elimina o grupo de recursos my-aks-cluster-group e todos os recursos que contém usando o comando azgroup delete .
az group delete --name my-aks-cluster-group