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.
- Servizio Azure Kubernetes (AKS)
- Servizio Azure Kubernetes in Azure Stack HCI
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Container Platform (OCP)
- Kubernetes upstream e open source (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Servizio Google Cloud Kubernetes Engine (GKE)
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.