Condividi tramite


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

Prerequisiti

Per informazioni generali, rivedere l'argomento Pianificare una distribuzione dei servizi dati abilitati per Azure Arc.

Installare gli strumenti

Prima di iniziare, installare l'estensione arcdata per l'interfaccia della 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 seguenti variabili di ambiente prima della creazione per il controller dei dati. Tali variabili di ambiente diventano le credenziali che consentono di accedere ai dashboard delle metriche e dei log dopo la creazione del controller dei dati.

Impostare le variabili di ambiente

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

Le variabili di ambiente includono le password per i servizi di log e metrica. Le password devono essere composte da almeno otto caratteri e devono contenere caratteri appartenenti a 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>

Connettersi a un cluster Kubernetes

Connettersi ed eseguire l'autenticazione a un cluster Kubernetes disponendo di un contesto Kubernetes già esistente, selezionato prima di iniziare la creazione del controller dei dati di Azure Arc. La modalità di connessione a un cluster o a un servizio Kubernetes è variabile. Vedere la documentazione relativa alla distribuzione o al servizio Kubernetes in uso per conoscere la modalità di connessione al server API Kubernetes.

È possibile verificare se si ha una connessione a Kubernetes corrente e verificare il contesto corrente con i comandi seguenti.

kubectl cluster-info
kubectl config current-context

Creare il controller dei dati di Azure Arc

Nelle sezioni seguenti sono riportate le istruzioni per tipi specifici di piattaforme Kubernetes. Seguire le istruzioni relative alla 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 in modalità direttamente connessa - Portale di Azure per completare l'intero processo.

Quindi, seguire le istruzioni contenute in Creare nel servizio Azure Kubernetes (AKS).

Creare nel servizio Azure Kubernetes (AKS)

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

Se si intende utilizzare managed-premium come classe di archiviazione, è possibile eseguire il comando seguente per creare il controller dei dati. Sostituire i segnaposto nel comando con il nome del gruppo di risorse, l'ID sottoscrizione e il percorso 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 che si desidera utilizzare, è consigliabile scegliere la classe di archiviazione default che è supportata indipendentemente dal tipo di macchina virtuale in uso. Tuttavia, essa non offrirà le massime prestazioni di velocità.

Se si desidera utilizzare la classe di archiviazione default, 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 della 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 confsType.

fsType: ext4

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

Per impostazione predefinita, il profilo di distribuzione si avvale di una classe di archiviazione denominata default e del tipo di servizio LoadBalancer.

È possibile eseguire il comando seguente per creare il controller dei dati utilizzando la classe di archiviazione default e il tipo di servizio 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

Dopo aver eseguito il comando, passare a Monitoraggio dello stato della 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 dei 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 della creazione.

Creare su Red Hat OpenShift Container Platform (OCP)

Determinare la classe di archiviazione

Per determinare quale classe di archiviazione utilizzare, 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 profilo di distribuzione azure-arc-openshift eseguendo il comando seguente. Questo comando crea una directory custom nella directory di lavoro corrente e un file del profilo di distribuzione personalizzato control.json in tale directory.

Utilizzare 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

Adesso, impostare la classe di archiviazione desiderata sostituendo <storageclassname> nel comando seguente con il nome della classe di archiviazione che si desidera usare, determinata mediante l'esecuzione del comando kubectl get storageclass sopra indicato.

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 profilo di distribuzione azure-arc-openshift usa NodePort come tipo di servizio. Se si utilizza un cluster OpenShift integrato con un servizio di bilanciamento del carico, sarà possibile modificare la configurazione per usare il tipo di servizio LoadBalancer avvalendosi del comando seguente:

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

Creare un controller dei dati

A questo punto, è possibile creare il controller dei dati tramite il comando seguente.

Nota

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

Nota

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

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

Creare in open source, Kubernetes upstream (kubeadm)

Per impostazione predefinita, il profilo di distribuzione kubeadm si avvale di una classe di archiviazione denominata local-storage e del tipo di servizio NodePort. Se questo è accettabile, è possibile ignorare le istruzioni seguenti in cui vengono impostati la classe di archiviazione e il tipo di servizio desiderati, eseguendo immediatamente il comando az arcdata dc create seguente.

Se si desidera personalizzare il profilo di distribuzione per specificare una classe di archiviazione e/o un tipo di servizio specifici, 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 del profilo di distribuzione personalizzato control.json 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

Adesso, impostare la classe di archiviazione desiderata sostituendo <storageclassname> nel comando seguente con il nome della classe di archiviazione che si desidera usare, determinata mediante l'esecuzione del comando kubectl get storageclass sopra indicato.

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 si avvale di NodePort come tipo di servizio. Se si utilizza un cluster Kubernetes integrato con un servizio di bilanciamento del carico, è possibile modificare la configurazione eseguendo il comando seguente.

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

A questo punto, è possibile creare il controller dei dati eseguendo il comando seguente.

Nota

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

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

Creare in AWS Elastic Kubernetes Service (EKS)

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

Eseguire il comando seguente per creare il controller dei dati usando il profilo di distribuzione EKS 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 della creazione.

Creare nel servizio Google Cloud Kubernetes Engine (GKE)

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

Eseguire il comando seguente per creare il controller dei dati tramite 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 della creazione.

Monitorare lo stato della creazione

La creazione completa del controller richiede alcuni minuti. Lo stato di avanzamento può essere monitorato in un'altra finestra del terminale con i comandi seguenti:

Nota

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

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

Inoltre, è possibile controllare lo stato della creazione di qualsiasi pod specifico eseguendo un comando come quello 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 relativi alla creazione

Se si verificano problemi con la creazione, vedere la Guida per la risoluzione dei problemi.