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