Créer un contrôleur de données Azure Arc à l’aide de la CLI

Prérequis

Pour obtenir des informations générales, consultez Planifier un déploiement des services de données Azure Arc.

Installer des outils

Avant de commencer, installez l’extension arcdata pour Azure (az) CLI.

Installez l’extension (arcdata) pour Azure CLI (az)

Quelle que soit la plateforme cible que vous choisissez, vous devez définir les variables d’environnement suivantes avant la création du contrôleur de données. Ces variables d’environnement deviennent les informations d’identification utilisées pour accéder aux métriques et journaux des tableaux de bord après la création du contrôleur de données.

Définir des variables d’environnement

Voici deux ensembles de variables d’environnement nécessaires pour accéder aux tableaux de bord des métriques et des journaux.

Les variables d’environnement incluent des mots de passe pour les services de journal et de métrique. Les mots de passe doivent compter au moins huit caractères appartenant à trois des quatre catégories suivantes : caractères latins majuscules, caractères latins minuscules, chiffres et caractères non alphanumériques.

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

Se connecter à un cluster Kubernetes

Connectez-vous et authentifiez-vous à un cluster Kubernetes et disposez d’un contexte Kubernetes existant sélectionné avant de commencer la création du contrôleur de données Azure Arc. La façon dont vous vous connectez à un cluster ou un service Kubernetes varie. Consultez la documentation de la distribution ou du service Kubernetes que vous utilisez pour vous connecter au serveur de API de Kubernetes.

Vous pouvez vérifier que vous disposez d’une connexion Kubernetes actuelle et confirmer votre contexte actuel avec les commandes suivantes.

kubectl cluster-info
kubectl config current-context

Créer le contrôleur de données Azure Arc

Les sections suivantes fournissent des instructions pour des types spécifiques de plateformes Kubernetes. Suivez les instructions pour votre plateforme.

Conseil

Si vous n’avez pas de cluster Kubernetes, vous pouvez en créer un sur Azure. Suivez les instructions du Démarrage rapide - Déployer des services de données avec Azure Arc - en mode connexion directe - Portail Azure qui couvrent l’ensemble du processus.

Suivez ensuite les instructions sous Créer Azure Kubernetes Service (AKS).

Créer Azure Kubernetes Service (AKS)

Par défaut, le profil de déploiement AKS utilise la classe de stockage managed-premium. La classe de stockage managed-premium fonctionne uniquement si vous avez des machines virtuelles déployées à l’aide d’images de machine virtuelle qui ont des disques Premium.

Si vous envisagez d’utiliser managed-premium comme classe de stockage, vous pouvez exécuter la commande suivante pour créer le contrôleur de données. Remplacez les espaces réservés dans la commande par le nom de votre groupe de ressources, votre ID d’abonnement et l’emplacement 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

Si vous n’êtes pas sûr de la classe de stockage à utiliser, vous devez utiliser la classe de stockage default qui est prise en charge, quel que soit le type de machine virtuelle que vous utilisez. Elle n’offre cependant pas les performances les plus rapides.

Si vous souhaitez utiliser la classe de stockage default, vous pouvez alors exécuter cette commande :

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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur AKS sur Azure Stack HCI

Configurer le stockage (Azure Stack HCI avec AKS-HCI)

Si vous utilisez Azure Stack HCI avec AKS-HCI, créez une classe de stockage personnalisée avec fsType.

fsType: ext4

Utilisez ce type pour déployer le contrôleur de données. Consultez les instructions complètes dans Créer une classe de stockage personnalisée pour un disque AKS sur Azure Stack HCI.

Par défaut, le profil de déploiement utilise une classe de stockage nommée default et le type de service LoadBalancer.

Vous pouvez exécuter la commande suivante pour créer le contrôleur de données au moyen de la classe de stockage default et le type de service 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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur Azure Red Hat OpenShift (ARO)

Créer un profil de déploiement personnalisé

Utilisez le profil azure-arc-azure-openshift pour Azure RedHat Open Shift.

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

Créer un contrôleur de données

Vous pouvez exécuter la commande suivante pour créer le contrôleur de données :

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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur Red Hat OpenShift Container Platform (OCP)

Déterminer la classe de stockage

Pour déterminer la classe de stockage à utiliser, exécutez la commande suivante.

kubectl get storageclass

Créer un profil de déploiement personnalisé

Créez un fichier de profil de déploiement personnalisé basé sur le profil de déploiement azure-arc-openshift en exécutant la commande suivante. Cette commande crée un répertoire custom dans votre répertoire de travail actuel et un fichier de profil de déploiement personnalisé control.json dans ce répertoire.

Utilisez le profil azure-arc-openshift pour OpenShift Container Platform.

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

Définir la classe de stockage

À présent, définissez la classe de stockage souhaitée en remplaçant <storageclassname> dans la commande ci-dessous par le nom de la classe de stockage que vous souhaitez utiliser, qui a été déterminée en exécutant la commande kubectl get storageclass ci-dessus.

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"

Définir LoadBalancer (facultatif)

Par défaut, le profil de déploiement azure-arc-openshift utilise NodePort comme type de service. Si vous utilisez un cluster OpenShift intégré à un équilibreur de charge, vous pouvez changer la configuration pour utiliser le type de service LoadBalancer à l’aide de la commande suivante :

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

Créer un contrôleur de données

Vous êtes maintenant prêt à créer le contrôleur de données à l’aide de la commande suivante.

Remarque

Le paramètre --path doit pointer vers le répertoire contenant le fichier control.json et non vers le fichier control.json lui-même.

Remarque

Lors du déploiement sur OpenShift Container Platform, spécifiez la valeur du paramètre --infrastructure. Les options sont : 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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur open source, amont Kubernetes (kubeadm)

Par défaut, le profil de déploiement kubeadm utilise une classe de stockage appelée local-storage et le type de service NodePort. Si cela est acceptable, vous pouvez ignorer les instructions ci-dessous qui définissent la classe de stockage et le type de service souhaités, puis exécuter immédiatement la commande az arcdata dc create ci-dessous.

Si vous souhaitez personnaliser votre profil de déploiement pour spécifier une classe de stockage et/ou un type de service spécifique, commencez par créer un fichier de profil de déploiement personnalisé basé sur le profil de déploiement kubeadm en exécutant la commande suivante. Cette commande crée un répertoire custom dans votre répertoire de travail actuel et un fichier de profil de déploiement personnalisé control.json dans ce répertoire.

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

Vous pouvez rechercher les classes de stockage disponibles en exécutant la commande suivante.

kubectl get storageclass

À présent, définissez la classe de stockage souhaitée en remplaçant <storageclassname> dans la commande ci-dessous par le nom de la classe de stockage que vous souhaitez utiliser, qui a été déterminée en exécutant la commande kubectl get storageclass ci-dessus.

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"

Par défaut, le profil de déploiement kubeadm utilise NodePort comme type de service. Si vous utilisez un cluster Kubernetes intégré à un équilibreur de charge, vous pouvez modifier la configuration à l’aide de la commande suivante.

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

Vous êtes maintenant prêt à créer le contrôleur de données à l’aide de la commande suivante.

Remarque

Lors du déploiement sur OpenShift Container Platform, spécifiez la valeur du paramètre --infrastructure. Les options sont : 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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur AWS Elastic Kubernetes Service (EKS)

Par défaut, la classe de stockage EKS est gp2 et le type de service est LoadBalancer.

Exécutez la commande suivante pour créer le contrôleur de données à l’aide du profil de déploiement EKS fourni.

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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Créer sur le service Google Cloud Kubernetes Engine (GKE)

Par défaut, la classe de stockage GKE est standard et le type de service est LoadBalancer.

Exécutez la commande suivante pour créer le contrôleur de données à l’aide du profil de déploiement GKE fourni.

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

Une fois que vous avez exécuté la commande, passez à Contrôle de l’état de la création.

Superviser l’état de création

La création du contrôleur prend quelques minutes. Vous pouvez superviser la progression dans une autre fenêtre de terminal avec les commandes suivantes :

Remarque

Les exemples de commandes ci-dessous supposent que vous avez créé un contrôleur de données arc-dc et un espace de noms Kubernetes avec le nom arc. Si vous avez utilisé des valeurs différentes, mettez à jour le script en conséquence.

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

Vous pouvez également vérifier l’état de la création de n’importe quel pod en exécutant une commande comme celle qui figure ci-dessous. C’est particulièrement pratique pour résoudre les éventuels problèmes.

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

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

Résolution des problèmes de création

Si vous rencontrez des problèmes avec la création, consultez le Guide de résolution des problèmes.