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.
- Azure Kubernetes Service (AKS)
- AKS in Azure Stack HCI
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Container-Plattform (OCP)
- Open-Source-Upstreamversion von Kubernetes (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Google Cloud Kubernetes Engine Service (GKE)
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.