Criar o controlador de dados do Azure Arc usando a CLI
Pré-requisitos
Examine 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 arcdata
para a CLI do Azure (az).
Instalar a (arcdata
) extensão para a CLI (az
) do Azure
Independentemente da plataforma de destino escolhida, você precisará definir as variáveis de ambiente a seguir antes da criação do controlador de dados. Essas variáveis de ambiente se tornarão as credenciais usadas para acessar os painéis de métricas e de logs após a criação do controlador de dados.
Definir variáveis de ambiente
Estes são dois conjuntos de variáveis de ambiente necessários para acessar as métricas e os painéis de logs.
As variáveis de ambiente incluem senhas para serviços de log e métricas. As senhas devem ter pelo menos oito caracteres de comprimento e conter caracteres das quatro seguintes categorias: letras maiúsculas em latim, letras minúsculas em latim, 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 ao cluster do Kubernetes
Faça autenticação e se conecte a um cluster do Kubernetes e tenha um contexto do Kubernetes existente selecionado antes de iniciar a criação do controlador de dados do Azure Arc. A maneira 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 tem uma conexão do Kubernetes atual e confirmar seu contexto atual com os comandos a seguir.
kubectl cluster-info
kubectl config current-context
Criar o controlador de dados do Azure Arc
As seções a seguir fornecem instruções sobre tipos específicos de plataformas do Kubernetes. Siga as instruções para sua plataforma.
- AKS (Serviço de Kubernetes do Azure)
- AKS no Azure Stack HCI
- ARO (Red Hat OpenShift no Azure)
- Red Hat OpenShift Container Platform (OCP)
- Criar em open source, upstream Kubernetes (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Google Cloud Kubernetes Engine Service (GKE)
Dica
Se você não tiver um cluster do Kubernetes, poderá criá-lo no Azure. Siga as instruções em Início Rápido: implantar serviços de dados habilitados para Azure Arc – modo de conexão direta – portal do Azure para percorrer todo o processo.
Em seguida, siga as instruções em Criar no AKS (Serviço de Kubernetes do Azure).
Criar no AKS (Serviço de Kubernetes do Azure)
Por padrão, o perfil de implantação AKS usa a classe de armazenamento managed-premium
. A classe de armazenamento managed-premium
só funcionará se você tiver VMs que foram implantadas usando imagens de VM que têm discos premium.
Se você pretende usar managed-premium
como sua classe de armazenamento, poderá executar o comando a seguir para criar o controlador de dados. Substitua os espaços reservados no comando pelo nome do grupo de recursos, pela ID da assinatura e pela localização 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 classe de armazenamento default
que é suportada independentemente do tipo de VM que você está usando. Apenas não fornecerá o desempenho mais rápido.
Se você quiser usar a classe de armazenamento default
, execute 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 em para Monitorar o status de criação.
Criar no AKS no Azure Stack HCI
Configurar o 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 fsType
.
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 disco do AKS no Azure Stack HCI.
Por padrão, o perfil de implantação usa uma classe de armazenamento denominada default
e o tipo de serviço LoadBalancer
.
Você pode executar o seguinte comando para criar o controlador de dados usando a classe de armazenamento default
e tipo de serviço LoadBalancer
.
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 em para Monitorar o status de criação.
Criar no ARO (Red Hat OpenShift no Azure)
Criar perfil de implantação personalizado
Use o perfil azure-arc-azure-openshift
do Red Hat OpenShift no Azure.
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 em para Monitorar o status de criação.
Criar na plataforma de contêiner Red Hat OpenShift (OCP)
Determinar a classe de armazenamento
Para determinar qual classe de armazenamento usar, execute o comando a seguir.
kubectl get storageclass
Criar perfil de implantação personalizado
Crie um novo arquivo de perfil de implantação personalizado com base no perfil de implantação azure-arc-openshift
executando o comando a seguir. Esse comando cria um diretório custom
no diretório de trabalho atual e um arquivo de perfil de implantação personalizado control.json
nesse diretório.
Use o perfil azure-arc-openshift
para a plataforma de contêiner OpenShift.
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 e que foi determinada executando o comando kubectl get storageclass
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 azure-arc-openshift
usa NodePort
como o tipo de serviço. Se você estiver usando um cluster do OpenShift integrado a um balanceador de carga, poderá alterar a configuração para usar o tipo de serviço LoadBalancer
usando o 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 comando a seguir.
Observação
O parâmetro --path
deve apontar para o diretório que contém o arquivo control.json, e não para o próprio arquivo control.json.
Observação
Ao implantar no OpenShift Container Platform, será necessário especificar o valor do parâmetro --infrastructure
. As opções são: aws
, azure
, alibaba
, gcp
, 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 em para Monitorar o status de criação.
Criar em open source, upstream Kubernetes (kubeadm)
Por padrão, o perfil de implantação kubeadm usa uma classe de armazenamento chamada local-storage
e o tipo de serviço NodePort
. Se isso for aceitável, você poderá ignorar as instruções abaixo que definem a classe de armazenamento e o tipo de serviço desejados e executar imediatamente o comando az arcdata dc create
a seguir.
Se você quiser personalizar seu perfil de implantação para definir um tipo de serviço e/ou classe de armazenamento específico, comece criando um novo arquivo de perfil de implantação personalizado com base no perfil de implantação kubeadm executando o comando a seguir. Esse comando cria um diretório custom
no diretório de trabalho atual e um arquivo de perfil de implantação personalizado control.json
nesse diretório.
az arcdata dc config init --source azure-arc-kubeadm --path ./custom
Você pode pesquisar as classes de armazenamento disponíveis executando o comando a seguir.
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 e que foi determinada executando o comando kubectl get storageclass
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 kubeadm usa NodePort
como o tipo de serviço. Se você estiver usando um cluster do Kubernetes integrado a um balanceador de carga, poderá alterar a configuração usando o seguinte comando:
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 comando a seguir.
Observação
Ao implantar no OpenShift Container Platform, será necessário especificar o valor do parâmetro --infrastructure
. As opções são: aws
, azure
, alibaba
, gcp
, 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 em para Monitorar o status de criação.
Criar na AWS Elastic Kubernetes Service (EKS)
Por padrão, a classe de armazenamento do EKS é chamada gp2
e o tipo de serviço é LoadBalancer
.
Execute o comando a seguir para criar o controlador de dados usando o perfil de implantação do 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 em para Monitorar o status de criação.
Criar no serviço do Google Cloud Kubernetes Engine (GKE)
Por padrão, a classe de armazenamento do GKE é chamada standard
e o tipo de serviço é LoadBalancer
.
Execute o comando a seguir para criar o controlador de dados usando o perfil de implantação do 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 em para Monitorar 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:
Observação
Os comandos de exemplo abaixo pressupõem que você criou um controlador de dados chamado arc-dc
e um namespace do Kubernetes chamado arc
. Se você usou valores diferentes, atualize o script adequadamente.
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 específico executando um comando como exibido 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 qualquer problemas com a criação, consulte o Guia de solução de problemas.