Criar o controlador de dados do Azure Arc usando a CLI

Pré-requisitos

Analise o tópico Planejar uma implantação de serviços de dados habilitados para Azure Arc para obter informações gerais.

Instalar ferramentas

Antes de começar, instale a extensão para a CLI arcdata do Azure (az).

Instalar a extensão () para a CLI do Azure (arcdataaz)

Independentemente da plataforma de destino escolhida, você precisa definir as seguintes variáveis de ambiente antes da criação para o controlador de dados. Essas variáveis de ambiente tornam-se as credenciais usadas para acessar os painéis de métricas e logs após a criação do controlador de dados.

Definir variáveis de ambiente

A seguir estão dois conjuntos de variáveis de ambiente necessárias para acessar os painéis de métricas e logs.

As variáveis de ambiente incluem senhas para serviços de log e métricas. As senhas devem ter pelo menos oito caracteres e conter caracteres de três das quatro categorias a seguir: letras latinas maiúsculas, letras latinas minúsculas, números e caracteres não alfanuméricos.

## variables for Metrics and Monitoring dashboard credentials
export AZDATA_LOGSUI_USERNAME=<username for Kibana dashboard>
export AZDATA_LOGSUI_PASSWORD=<password for Kibana dashboard>
export AZDATA_METRICSUI_USERNAME=<username for Grafana dashboard>
export AZDATA_METRICSUI_PASSWORD=<password for Grafana dashboard>

Conectar-se ao cluster do Kubernetes

Conecte-se e autentique-se em um cluster do Kubernetes e tenha um contexto Kubernetes existente selecionado antes de iniciar a criação do controlador de dados do Azure Arc. A forma como você se conecta a um cluster ou serviço do Kubernetes varia. Consulte a documentação da distribuição ou serviço do Kubernetes que você está usando sobre como se conectar ao servidor de API do Kubernetes.

Você pode verificar se você tem uma conexão Kubernetes atual e confirmar seu contexto atual com os seguintes comandos.

kubectl cluster-info
kubectl config current-context

Criar o controlador de dados do Azure Arc

As seções a seguir fornecem instruções para tipos específicos de plataformas Kubernetes. Siga as instruções para a sua plataforma.

Gorjeta

Se você não tiver nenhum cluster do Kubernetes, poderá criar um no Azure. Siga as instruções em Guia de início rápido: implantar serviços de dados habilitados para Azure Arc - modo conectado diretamente - portal do Azure para percorrer todo o processo.

Em seguida, siga as instruções em Criar no Serviço Kubernetes do Azure (AKS).

Criar no Serviço Kubernetes do Azure (AKS)

Por padrão, o perfil de implantação do AKS usa a managed-premium classe de armazenamento. A managed-premium classe de armazenamento só funciona se você tiver VMs que foram implantadas usando imagens de VM com discos premium.

Se você vai usar managed-premium como sua classe de armazenamento, então você pode executar o seguinte comando para criar o controlador de dados. Substitua os espaços reservados no comando pelo nome do grupo de recursos, ID da assinatura e local do Azure.

az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace <namespace> --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --use-k8s

#Example:
#az arcdata dc create --profile-name azure-arc-aks-premium-storage --k8s-namespace arc --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --use-k8s

Se você não tiver certeza de qual classe de armazenamento usar, deverá usar a default classe de armazenamento suportada, independentemente do tipo de VM que estiver usando. Ele simplesmente não fornecerá o desempenho mais rápido.

Se você quiser usar a default classe de armazenamento, então você pode executar este comando:

az arcdata dc create --profile-name azure-arc-aks-default-storage --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-default-storage  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Depois de executar o comando, continue para Monitorando o status de criação.

Criar no AKS no Azure Stack HCI

Configurar armazenamento (Azure Stack HCI com AKS-HCI)

Se você estiver usando o Azure Stack HCI com AKS-HCI, crie uma classe de armazenamento personalizada com fsTypeo .

fsType: ext4

Use esse tipo para implantar o controlador de dados. Consulte as instruções completas em Criar uma classe de armazenamento personalizada para um AKS no disco HCI do Azure Stack.

Por padrão, o perfil de implantação usa uma classe de armazenamento chamada default e o tipo LoadBalancerde serviço .

Você pode executar o seguinte comando para criar o controlador de dados usando a classe de armazenamento e o default tipo LoadBalancerde serviço.

az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-aks-hci  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Depois de executar o comando, continue para Monitorando o status de criação.

Criar no Azure Red Hat OpenShift (ARO)

Criar perfil de implantação personalizado

Use o perfil azure-arc-azure-openshift do Azure RedHat Open Shift.

az arcdata dc config init --source azure-arc-azure-openshift --path ./custom

Criar controlador de dados

Você pode executar o seguinte comando para criar o controlador de dados:

az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example
#az arcdata dc create --profile-name azure-arc-azure-openshift  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Depois de executar o comando, continue para Monitorando o status de criação.

Criar no Red Hat OpenShift Container Platform (OCP)

Determinar a classe de armazenamento

Para determinar qual classe de armazenamento usar, execute o seguinte comando.

kubectl get storageclass

Criar perfil de implantação personalizado

Crie um novo arquivo de perfil de implantação personalizado com base no perfil de azure-arc-openshift implantação executando o seguinte comando. Este comando cria um diretório no diretório de trabalho atual e um arquivo control.json de perfil de implantação personalizado nesse diretóriocustom.

Use o perfil azure-arc-openshift para OpenShift Container Platform.

az arcdata dc config init --source azure-arc-openshift --path ./custom

Definir classe de armazenamento

Agora, defina a classe de armazenamento desejada substituindo <storageclassname> no comando abaixo pelo nome da classe de armazenamento que você deseja usar que foi determinada executando o kubectl get storageclass comando acima.

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

Definir LoadBalancer (opcional)

Por padrão, o perfil de implantação é usado NodePort como o azure-arc-openshift tipo de serviço. Se você estiver usando um cluster OpenShift integrado a um balanceador de carga, poderá alterar a configuração para usar o tipo de serviço usando o LoadBalancer seguinte comando:

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"

Criar controlador de dados

Agora você está pronto para criar o controlador de dados usando o seguinte comando.

Nota

O --path parâmetro deve apontar para o diretório que contém o arquivo control.json e não para o arquivo control.json em si.

Nota

Ao implantar no OpenShift Container Platform, especifique o valor do --infrastructure parâmetro. As opções são: aws, , , gcpazurealibaba, . onpremises

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom  --k8s-namespace arc --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

Depois de executar o comando, continue para Monitorando o status de criação.

Criar em código aberto, Kubernetes upstream (kubeadm)

Por padrão, o perfil de implantação do kubeadm usa uma classe de armazenamento chamada local-storage e tipo NodePortde serviço. Se isso for aceitável, você pode ignorar as instruções abaixo que definem a classe de armazenamento desejada e o tipo de serviço e executar imediatamente o az arcdata dc create comando abaixo.

Se você quiser personalizar seu perfil de implantação para especificar uma classe de armazenamento e/ou tipo de serviço específico, comece criando um novo arquivo de perfil de implantação personalizado com base no perfil de implantação do kubeadm executando o seguinte comando. Este comando cria um diretório no diretório de trabalho atual e um arquivo control.json de perfil de implantação personalizado nesse diretóriocustom.

az arcdata dc config init --source azure-arc-kubeadm --path ./custom 

Você pode procurar as classes de armazenamento disponíveis executando o seguinte comando.

kubectl get storageclass

Agora, defina a classe de armazenamento desejada substituindo <storageclassname> no comando abaixo pelo nome da classe de armazenamento que você deseja usar que foi determinada executando o kubectl get storageclass comando acima.

az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=<storageclassname>"
az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=<storageclassname>"

#Example:
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.data.className=mystorageclass"
#az arcdata dc config replace --path ./custom/control.json --json-values "spec.storage.logs.className=mystorageclass"

Por padrão, o perfil de implantação do kubeadm é usado NodePort como o tipo de serviço. Se você estiver usando um cluster Kubernetes integrado a um balanceador de carga, poderá alterar a configuração usando o comando a seguir.

az arcdata dc config replace --path ./custom/control.json --json-values "$.spec.services[*].serviceType=LoadBalancer"

Agora você está pronto para criar o controlador de dados usando o seguinte comando.

Nota

Ao implantar no OpenShift Container Platform, especifique o valor do --infrastructure parâmetro. As opções são: aws, , , gcpazurealibaba, . onpremises

az arcdata dc create --path ./custom  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect --infrastructure <infrastructure>

#Example:
#az arcdata dc create --path ./custom - --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect --infrastructure onpremises

Depois de executar o comando, continue para Monitorando o status de criação.

Criar no AWS Elastic Kubernetes Service (EKS)

Por padrão, a classe de armazenamento EKS é e o tipo de serviço é gp2LoadBalancer.

Execute o seguinte comando para criar o controlador de dados usando o perfil de implantação EKS fornecido.

az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-eks  --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Depois de executar o comando, continue para Monitorando o status de criação.

Criar no Google Cloud Kubernetes Engine Service (GKE)

Por padrão, a classe de armazenamento GKE é e o tipo de serviço é standardLoadBalancer.

Execute o seguinte comando para criar o controlador de dados usando o perfil de implantação GKE fornecido.

az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription <subscription id> --resource-group <resource group name> --location <location> --connectivity-mode indirect

#Example:
#az arcdata dc create --profile-name azure-arc-gke --k8s-namespace <namespace> --use-k8s --name arc --subscription xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --resource-group my-resource-group --location eastus --connectivity-mode indirect

Depois de executar o comando, continue para Monitorando o status de criação.

Monitorar o status de criação

Leva alguns minutos para criar o controlador completamente. Você pode monitorar o progresso em outra janela do terminal com os seguintes comandos:

Nota

Os comandos de exemplo abaixo pressupõem que você criou um controlador de dados chamado e um namespace Kubernetes chamado arc-dcarc. Se você usou valores diferentes, atualize o script de acordo.

kubectl get datacontroller/arc-dc --namespace arc
kubectl get pods --namespace arc

Você também pode verificar o status de criação de qualquer pod em particular executando um comando como abaixo. Isso é especialmente útil para solucionar problemas.

kubectl describe po/<pod name> --namespace arc

#Example:
#kubectl describe po/control-2g7bl --namespace arc

Solução de problemas de criação

Se você encontrar problemas com a criação, consulte o guia de solução de problemas.