Creare un controller dati di Azure Arc usando l'interfaccia della riga di comando

Prerequisiti

Vedere l'argomento Pianificare una distribuzione dei servizi dati abilitata per Azure Arc per informazioni generali.

Installare gli strumenti

Prima di iniziare, installare l'estensione per l'interfaccia della arcdata riga di comando di Azure (az).

Installare l'estensione (arcdata) per l'interfaccia della riga di comando di Azure (az)

Indipendentemente dalla piattaforma di destinazione scelta, è necessario impostare le variabili di ambiente seguenti prima della creazione per il controller dati. Queste variabili di ambiente diventano le credenziali usate per accedere alle metriche e ai dashboard dei log dopo la creazione del controller dati.

Impostare le variabili di ambiente

Di seguito sono riportati due set di variabili di ambiente necessarie per accedere alle metriche e ai dashboard dei log.

Le variabili di ambiente includono le password per i servizi di log e metrica. Le password devono avere una lunghezza di almeno otto caratteri e contenere caratteri di tre delle quattro categorie seguenti: lettere maiuscole latine, lettere minuscole latine, numeri e caratteri non alfanumerici.

## 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>

Connessione al cluster Kubernetes

Connessione ed eseguire l'autenticazione in un cluster Kubernetes e disporre di un contesto Kubernetes esistente selezionato prima di iniziare la creazione del controller dati di Azure Arc. La modalità di connessione a un cluster o a un servizio Kubernetes varia. Vedere la documentazione relativa alla distribuzione o al servizio Kubernetes in uso per la connessione al server API Kubernetes.

È possibile verificare di avere una connessione Kubernetes corrente e verificare il contesto corrente con i comandi seguenti.

kubectl cluster-info
kubectl config current-context

Creare il controller dati di Azure Arc

Le sezioni seguenti forniscono istruzioni per tipi specifici di piattaforme Kubernetes. Seguire le istruzioni per la piattaforma.

Suggerimento

Se non si dispone di un cluster Kubernetes, è possibile crearne uno in Azure. Seguire le istruzioni riportate in Avvio rapido: Distribuire i servizi dati abilitati per Azure Arc, la modalità connessa direttamente, portale di Azure per scorrere l'intero processo.

Seguire quindi le istruzioni in Crea in servizio Azure Kubernetes (servizio Azure Kubernetes).

Creare in servizio Azure Kubernetes (servizio Azure Kubernetes)

Per impostazione predefinita, il profilo di distribuzione del servizio Azure Kubernetes usa la managed-premium classe di archiviazione. La managed-premium classe di archiviazione funziona solo se sono presenti macchine virtuali distribuite usando immagini di macchine virtuali con dischi Premium.

Se si intende usare managed-premium come classe di archiviazione, è possibile eseguire il comando seguente per creare il controller dati. Sostituire i segnaposto nel comando con il nome del gruppo di risorse, l'ID sottoscrizione e la posizione di 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 non si è certi della classe di archiviazione da usare, è consigliabile usare la default classe di archiviazione supportata indipendentemente dal tipo di macchina virtuale in uso. Non offrirà le prestazioni più veloci.

Se si vuole usare la default classe di archiviazione, è possibile eseguire questo 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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare nel servizio Azure Kubernetes in Azure Stack HCI

Configurare l'archiviazione (Azure Stack HCI con AKS-HCI)

Se si usa Azure Stack HCI con AKS-HCI, creare una classe di archiviazione personalizzata con fsType.

fsType: ext4

Usare questo tipo per distribuire il controller dati. Vedere le istruzioni complete in Creare una classe di archiviazione personalizzata per un servizio Azure Kubernetes su disco Azure Stack HCI.

Per impostazione predefinita, il profilo di distribuzione usa una classe di archiviazione denominata default e il tipo di LoadBalancerservizio .

È possibile eseguire il comando seguente per creare il controller dati usando la classe di archiviazione e il default tipo di LoadBalancerservizio .

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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare in Azure Red Hat OpenShift (ARO)

Creare un profilo di distribuzione personalizzato

Usare il profilo azure-arc-azure-openshift per Azure RedHat Open Shift.

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

Creare un controller dei dati

È possibile eseguire il comando seguente per creare il controller dati:

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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare in Red Hat OpenShift Container Platform (OCP)

Determinare la classe di archiviazione

Per determinare quale classe di archiviazione usare, eseguire il comando seguente.

kubectl get storageclass

Creare un profilo di distribuzione personalizzato

Creare un nuovo file del profilo di distribuzione personalizzato in base al azure-arc-openshift profilo di distribuzione eseguendo il comando seguente. Questo comando crea una directory custom nella directory di lavoro corrente e un file control.json del profilo di distribuzione personalizzato in tale directory.

Usare il profilo azure-arc-openshift per OpenShift Container Platform.

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

Impostare la classe di archiviazione

Impostare ora la classe di archiviazione desiderata sostituendo <storageclassname> nel comando seguente con il nome della classe di archiviazione che si vuole usare determinato eseguendo il kubectl get storageclass comando precedente.

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"

Impostare LoadBalancer (facoltativo)

Per impostazione predefinita, il azure-arc-openshift profilo di distribuzione usa NodePort come tipo di servizio. Se si usa un cluster OpenShift integrato con un servizio di bilanciamento del carico, è possibile modificare la configurazione per usare il LoadBalancer tipo di servizio usando il comando seguente:

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

Creare un controller dei dati

A questo momento è possibile creare il controller dati usando il comando seguente.

Nota

Il --path parametro deve puntare alla directory contenente il file control.json non al file control.json stesso.

Nota

Quando si esegue la distribuzione in OpenShift Container Platform, specificare il valore del --infrastructure parametro. Le opzioni sono: aws, alibabaazure, 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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare in kubernetes upstream open source (kubeadm)

Per impostazione predefinita, il profilo di distribuzione kubeadm usa una classe di archiviazione denominata local-storage e il tipo di NodePortservizio . Se questo è accettabile, è possibile ignorare le istruzioni seguenti che impostano la classe di archiviazione e il tipo di servizio desiderati ed eseguire immediatamente il az arcdata dc create comando seguente.

Per personalizzare il profilo di distribuzione per specificare una classe di archiviazione specifica e/o un tipo di servizio, iniziare creando un nuovo file del profilo di distribuzione personalizzato basato sul profilo di distribuzione kubeadm eseguendo il comando seguente. Questo comando crea una directory custom nella directory di lavoro corrente e un file control.json del profilo di distribuzione personalizzato in tale directory.

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

È possibile cercare le classi di archiviazione disponibili eseguendo il comando seguente.

kubectl get storageclass

Impostare ora la classe di archiviazione desiderata sostituendo <storageclassname> nel comando seguente con il nome della classe di archiviazione che si vuole usare determinato eseguendo il kubectl get storageclass comando precedente.

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"

Per impostazione predefinita, il profilo di distribuzione kubeadm usa NodePort come tipo di servizio. Se si usa un cluster Kubernetes integrato con un servizio di bilanciamento del carico, è possibile modificare la configurazione usando il comando seguente.

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

A questo momento è possibile creare il controller dati usando il comando seguente.

Nota

Quando si esegue la distribuzione in OpenShift Container Platform, specificare il valore del --infrastructure parametro. Le opzioni sono: aws, alibabaazure, 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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare nel servizio AWS Elastic Kubernetes

Per impostazione predefinita, la classe di archiviazione del servizio Azure Kubernetes è gp2 e il tipo di servizio è LoadBalancer.

Eseguire il comando seguente per creare il controller dati usando il profilo di distribuzione del servizio Azure Kubernetes fornito.

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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Creare nel servizio motore di Google Cloud Kubernetes (GKE)

Per impostazione predefinita, la classe di archiviazione GKE è standard e il tipo di servizio è LoadBalancer.

Eseguire il comando seguente per creare il controller dati usando il profilo di distribuzione GKE fornito.

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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato di creazione.

Monitorare lo stato di creazione

La creazione del controller richiede alcuni minuti. È possibile monitorare lo stato di avanzamento in un'altra finestra del terminale con i comandi seguenti:

Nota

I comandi di esempio seguenti presuppongono che sia stato creato un controller di dati denominato e uno spazio dei nomi Kubernetes denominato arc-dcarc. Se sono stati usati valori diversi, aggiornare di conseguenza lo script.

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

È anche possibile controllare lo stato di creazione di qualsiasi pod specifico eseguendo un comando come riportato di seguito. Ciò è particolarmente utile per la risoluzione di eventuali problemi.

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

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

Risoluzione dei problemi di creazione

Se si verificano problemi con la creazione, vedere la guida alla risoluzione dei problemi.