Erstellen eines Azure Arc-Datencontrollers mithilfe der Befehlszeilenschnittstelle

Voraussetzungen

Lesen Sie den Artikel Planen einer Bereitstellung von Datendiensten mit Azure Arc-Unterstützung, um eine Übersicht zu erhalten.

Installieren von Tools

Installieren Sie vor dem Beginn die arcdata-Erweiterung für die Azure-Befehlszeilenschnittstelle (az).

Installieren der (arcdata)-Erweiterung für Azure (az) CLI

Unabhängig davon, welche Zielplattform Sie auswählen, müssen Sie die folgenden Umgebungsvariablen vor dem Erstellen des Datencontrollers festlegen. Diese Umgebungsvariablen werden nach der Erstellung des Datencontrollers zu den Anmeldeinformationen, die für den Zugriff auf die Dashboards für Metriken und Protokolle verwendet werden.

Festlegen von Umgebungsvariablen

Nachfolgend finden Sie zwei Sätze von Umgebungsvariablen, die für den Zugriff auf die Dashboards für Metriken und Protokolle erforderlich sind.

Die Umgebungsvariablen enthalten Kennwörter für Protokoll- und Metrikdienste. Das Kennwort muss mindestens 8 Zeichen aus drei der folgenden Kategorien enthalten: Großbuchstaben des lateinischen Alphabets, Kleinbuchstaben des lateinischen Alphabets, Ziffern und nicht alphanumerische Zeichen.

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

Herstellen einer Verbindung mit einem Kubernetes-Cluster

Bevor Sie mit der Erstellung des Azure Arc-Datencontrollers beginnen, stellen Sie eine Verbindung mit einem Kubernetes-Cluster her, authentifizieren Sie sich, und wählen Sie einen vorhandenen Kubernetes-Kontext aus. Wie Sie eine Verbindung mit einem Kubernetes-Cluster oder -Dienst herstellen, ist von Fall zu Fall unterschiedlich. Informieren Sie sich in der Dokumentation zur verwendeten Kubernetes-Distribution oder zum verwendeten Kubernetes-Dienst darüber, wie eine Verbindung mit dem Kubernetes-API-Server hergestellt wird.

Mit den folgenden Befehlen können Sie überprüfen, ob Sie über eine aktuelle Kubernetes-Verbindung verfügen, und den aktuellen Kontext bestätigen.

kubectl cluster-info
kubectl config current-context

Erstellen des Azure Arc-Datencontrollers

Die folgenden Abschnitte enthalten Anweisungen für bestimmte Arten von Kubernetes-Plattformen. Befolgen Sie die Anweisungen für Ihre Plattform.

Tipp

Wenn Sie über keinen Kubernetes-Cluster verfügen, können Sie einen in Azure erstellen. Befolgen Sie die Anweisungen unter Schnellstart: Bereitstellen von Datendiensten mit Azure Arc-Unterstützung – direkt verbundener Modus – Azure-Portal, um den gesamten Prozess zu durchlaufen.

Befolgen Sie dann die Anweisungen unter Erstellen auf Azure Kubernetes Service (AKS).

Erstellen im Azure Kubernetes Service (AKS)

Das AKS-Bereitstellungsprofil nutzt standardmäßig die Speicherklasse managed-premium. Die Speicherklasse managed-premium funktioniert nur, wenn Sie über VMs verfügen, die mithilfe von VM-Images mit Premium-Datenträgern bereitgestellt wurden.

Wenn Sie managed-premium als Speicherklasse verwenden möchten, können Sie den folgenden Befehl ausführen, um den Datencontroller zu erstellen. Ersetzen Sie die Platzhalter im Befehl durch den Namen Ihrer Ressourcengruppe, die Abonnement-ID und den Azure-Standort.

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

Wenn Sie nicht sicher sind, welche Speicherklasse Sie verwenden sollen, verwenden Sie die Speicherklasse default, die unabhängig vom verwendeten VM-Typ unterstützt wird. Eine Einschränkung besteht jedoch darin, dass sie nicht die höchste Leistung bietet.

Wenn Sie die Speicherklasse default verwenden möchten, können Sie den folgenden Befehl ausführen:

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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen in AKS in Azure Stack HCI

Konfigurieren des Speichers (Azure Stack HCI mit AKS-HCI)

Wenn Sie Azure Stack HCI mit AKS-HCI verwenden, erstellen Sie mit fsType eine benutzerdefinierte Speicherklasse.

fsType: ext4

Verwenden Sie diesen Typ, um den Datencontroller bereitzustellen. Umfassende Anweisungen finden Sie unter Erstellen einer benutzerdefinierten Speicherklasse für einen „AKS in Azure Stack HCI“-Datenträger.

Das Bereitstellungsprofil nutzt standardmäßig die Speicherklasse mit dem Namen default und den Diensttyp LoadBalancer.

Sie können den folgenden Befehl ausführen, um den Datencontroller unter Verwendung der Speicherklasse default und des Diensttyps LoadBalancer zu erstellen.

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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen in Azure Red Hat OpenShift (ARO)

Erstellen eines benutzerdefinierten Bereitstellungsprofils

Verwenden Sie das Profil azure-arc-azure-openshift für Azure RedHat Open Shift.

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

Erstellen eines Datencontrollers

Führen Sie den folgenden Befehl zum Erstellen des Datencontrollers aus.

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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen auf der Red Hat OpenShift Container Platform (OCP)

Bestimmen der Speicherklasse

Ermitteln Sie, welche Speicherklasse verwendet werden soll, indem Sie den folgenden Befehl ausführen.

kubectl get storageclass

Erstellen eines benutzerdefinierten Bereitstellungsprofils

Erstellen Sie eine neue benutzerdefinierte Datei für das Bereitstellungsprofil auf Grundlage des Bereitstellungsprofils azure-arc-openshift, indem Sie den folgenden Befehl ausführen. Mit diesem Befehl werden das Verzeichnis custom im aktuellen Arbeitsverzeichnis und die benutzerdefinierte Bereitstellungsprofildatei control.json in diesem Verzeichnis erstellt.

Verwenden Sie das Profil azure-arc-openshift für die OpenShift Container Platform.

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

Festlegen der Speicherklasse

Legen Sie nun die gewünschte Speicherklasse fest, indem Sie <storageclassname> im folgenden Befehl durch den Namen der gewünschten Speicherklasse ersetzen, die Sie mithilfe des oben angegebenen Befehls kubectl get storageclass ermittelt haben.

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"

Festlegen von LoadBalancer (optional)

Das azure-arc-openshift-Bereitstellungsprofil verwendet standardmäßig NodePort als Diensttyp. Wenn Sie einen OpenShift-Cluster mit integriertem Lastenausgleich verwenden, können Sie die Konfiguration mithilfe des folgenden Befehls so ändern, dass der Diensttyp LoadBalancer verwendet wird:

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

Erstellen eines Datencontrollers

Nun können Sie den Datencontroller mit dem folgenden Befehl erstellen.

Hinweis

Der Parameter --path muss auf das Verzeichnis mit der Datei „control.json“ und nicht auf die Datei „control.json“ selbst verweisen.

Hinweis

Geben Sie bei der Bereitstellung auf der OpenShift-Containerplattform einen Wert für den Parameter --infrastructure an. Folgende Optionen sind möglich: aws, azure, alibaba, gcp oder 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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen in der Open-Source-Upstreamversion von Kubernetes (kubeadm)

Das kubeadm-Bereitstellungsprofil nutzt standardmäßig eine Speicherklasse mit dem Namen local-storage und den Diensttyp NodePort. Wenn dies akzeptabel ist, können Sie die nachfolgenden Anweisungen überspringen, mit deren Hilfe die gewünschte Speicherklasse und der Diensttyp festgelegt werden, und den Befehl az arcdata dc create unten direkt ausführen.

Wenn Sie Ihr Bereitstellungsprofil anpassen möchten, um eine bestimmte Speicherklasse und/oder einen bestimmten Diensttyp anzugeben, erstellen Sie zunächst eine neue benutzerdefinierte Bereitstellungsprofildatei auf Grundlage des kubeadm-Bereitstellungsprofils, indem Sie den folgenden Befehl ausführen. Mit diesem Befehl werden das Verzeichnis custom im aktuellen Arbeitsverzeichnis und die benutzerdefinierte Bereitstellungsprofildatei control.json in diesem Verzeichnis erstellt.

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

Sie können die verfügbaren Speicherklassen mithilfe des folgenden Befehls ermitteln.

kubectl get storageclass

Legen Sie nun die gewünschte Speicherklasse fest, indem Sie <storageclassname> im folgenden Befehl durch den Namen der gewünschten Speicherklasse ersetzen, die Sie mithilfe des oben angegebenen Befehls kubectl get storageclass ermittelt haben.

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"

Das kubeadm-Bereitstellungsprofil nutzt standardmäßig NodePort als Diensttyp. Wenn Sie einen Kubernetes-Cluster mit integriertem Lastenausgleich verwenden, können Sie die Konfiguration mithilfe des folgenden Befehls ändern.

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

Nun können Sie den Datencontroller mit dem folgenden Befehl erstellen.

Hinweis

Geben Sie bei der Bereitstellung auf der OpenShift-Containerplattform einen Wert für den Parameter --infrastructure an. Folgende Optionen sind möglich: aws, azure, alibaba, gcp oder 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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen im AWS Elastic Kubernetes Service (EKS)

Standardmäßig lauten die EKS-Speicherklasse gp2 und der Diensttyp LoadBalancer.

Führen Sie den folgenden Befehl aus, um den Datencontroller mit dem bereitgestellten EKS-Bereitstellungsprofil zu erstellen.

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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Erstellen im Google Cloud Kubernetes Engine Service (GKE)

Standardmäßig lauten die GKE-Speicherklasse standard und der Diensttyp LoadBalancer.

Führen Sie den folgenden Befehl aus, um den Datencontroller mit dem bereitgestellten GKE-Bereitstellungsprofil zu erstellen.

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

Nachdem Sie den Befehl ausgeführt haben, fahren Sie mit Überwachen des Erstellungsstatus fort.

Überwachen der Erstellung

Die vollständige Erstellung des Controllers dauert einige Minuten. Mithilfe der folgenden Befehle können Sie den Status in einem anderen Terminalfenster überwachen:

Hinweis

Bei den folgenden Beispielbefehlen wird davon ausgegangen, dass Sie einen Datencontroller mit dem Namen arc-dc und einen Kubernetes-Namespace mit dem Namen arc erstellt haben. Wenn Sie abweichende Werte verwendet haben, aktualisieren Sie das Skript entsprechend.

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

Sie können auch den Erstellungsstatus eines bestimmten Pods überprüfen, indem Sie einen Befehl wie den folgenden ausführen. Dies ist besonders bei der Problembehandlung hilfreich.

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

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

Beheben von Problemen bei der Erstellung

Wenn Probleme bei der Erstellung auftreten, finden Sie weitere Informationen im Handbuch zur Problembehandlung.