Tworzenie kontrolera danych usługi Azure Arc przy użyciu interfejsu wiersza polecenia

Wymagania wstępne

Zapoznaj się z tematem Planowanie wdrożenia usług danych z obsługą usługi Azure Arc, aby uzyskać informacje o przeglądzie.

Instalowanie narzędzi

Przed rozpoczęciem zainstaluj rozszerzenie interfejsu wiersza polecenia platformy arcdata Azure (az).

Instalowanie rozszerzenia (arcdata) dla interfejsu wiersza polecenia platformy Azure (az)

Niezależnie od wybranej platformy docelowej należy ustawić następujące zmienne środowiskowe przed utworzeniem kontrolera danych. Te zmienne środowiskowe stają się poświadczeniami używanymi do uzyskiwania dostępu do metryk i pulpitów nawigacyjnych dzienników po utworzeniu kontrolera danych.

Ustawianie zmiennych środowiskowych

Poniżej przedstawiono dwa zestawy zmiennych środowiskowych wymaganych do uzyskiwania dostępu do pulpitów nawigacyjnych metryk i dzienników.

Zmienne środowiskowe obejmują hasła dla usług dzienników i metryk. Hasła muszą mieć długość co najmniej ośmiu znaków i zawierać znaki z trzech z następujących czterech kategorii: wielkie litery łacińskie, małe litery łacińskie, cyfry i znaki inne niż alfanumeryczne.

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

Połączenie do klastra Kubernetes

Połączenie i uwierzytelnij się w klastrze Kubernetes i masz wybrany istniejący kontekst Kubernetes przed rozpoczęciem tworzenia kontrolera danych usługi Azure Arc. Sposób nawiązywania połączenia z klastrem lub usługą Kubernetes różni się. Zapoznaj się z dokumentacją dystrybucji lub usługi Kubernetes używanej podczas nawiązywania połączenia z serwerem interfejsu API Kubernetes.

Możesz sprawdzić, czy masz bieżące połączenie kubernetes i potwierdzić bieżący kontekst za pomocą następujących poleceń.

kubectl cluster-info
kubectl config current-context

Tworzenie kontrolera danych usługi Azure Arc

Poniższe sekcje zawierają instrukcje dotyczące konkretnych typów platform Kubernetes. Postępuj zgodnie z instrukcjami dotyczącymi platformy.

Napiwek

Jeśli nie masz klastra Kubernetes, możesz go utworzyć na platformie Azure. Postępuj zgodnie z instrukcjami w przewodniku Szybki start: Wdrażanie usług danych z obsługą usługi Azure Arc — tryb bezpośrednio połączony — Witryna Azure Portal , aby przejść przez cały proces.

Następnie postępuj zgodnie z instrukcjami w sekcji Tworzenie w usłudze Azure Kubernetes Service (AKS).

Tworzenie w usłudze Azure Kubernetes Service (AKS)

Domyślnie profil wdrożenia usługi AKS używa managed-premium klasy magazynu. Klasa managed-premium magazynu działa tylko wtedy, gdy masz maszyny wirtualne, które zostały wdrożone przy użyciu obrazów maszyn wirtualnych z dyskami w warstwie Premium.

Jeśli zamierzasz użyć managed-premium jako klasy magazynu, możesz uruchomić następujące polecenie, aby utworzyć kontroler danych. Zastąp symbole zastępcze w poleceniu nazwą grupy zasobów, identyfikatorem subskrypcji i lokalizacją platformy 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

Jeśli nie masz pewności, której klasy magazynu użyć, należy użyć default klasy magazynu, która jest obsługiwana niezależnie od typu używanej maszyny wirtualnej. To po prostu nie zapewni najszybszej wydajności.

Jeśli chcesz użyć default klasy magazynu, możesz uruchomić następujące polecenie:

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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie w usłudze AKS w usłudze Azure Stack HCI

Konfigurowanie magazynu (Azure Stack HCI za pomocą rozwiązania AKS-HCI)

Jeśli używasz rozwiązania Azure Stack HCI z usługą AKS-HCI, utwórz niestandardową klasę magazynu za pomocą polecenia fsType.

fsType: ext4

Ten typ służy do wdrażania kontrolera danych. Zapoznaj się z pełnymi instrukcjami w temacie Create a custom storage class for an AKS on Azure Stack HCI disk (Tworzenie niestandardowej klasy magazynu dla usługi AKS na dysku azure Stack HCI).

Domyślnie profil wdrożenia używa klasy magazynu o nazwie default i typu LoadBalancerusługi .

Możesz uruchomić następujące polecenie, aby utworzyć kontroler danych przy użyciu default klasy magazynu i typu LoadBalancerusługi .

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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie w usłudze Azure Red Hat OpenShift (ARO)

Tworzenie niestandardowego profilu wdrożenia

Użyj profilu azure-arc-azure-openshift platformy Azure RedHat Open Shift.

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

Tworzenie kontrolera danych

Aby utworzyć kontroler danych, możesz uruchomić następujące polecenie:

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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie na platformie Kontenera Red Hat OpenShift (OCP)

Określanie klasy magazynu

Aby określić, której klasy magazynu użyć, uruchom następujące polecenie.

kubectl get storageclass

Tworzenie niestandardowego profilu wdrożenia

Utwórz nowy niestandardowy plik profilu wdrożenia na azure-arc-openshift podstawie profilu wdrożenia, uruchamiając następujące polecenie. To polecenie tworzy katalog custom w bieżącym katalogu roboczym i niestandardowy plik control.json profilu wdrożenia w tym katalogu.

Użyj profilu azure-arc-openshift dla platformy kontenera OpenShift.

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

Ustawianie klasy magazynu

Teraz ustaw żądaną klasę magazynu, zastępując <storageclassname> w poleceniu poniżej nazwą klasy magazynu, której chcesz użyć, uruchamiając kubectl get storageclass powyższe polecenie.

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"

Ustaw moduł LoadBalancer (opcjonalnie)

Domyślnie azure-arc-openshift profil wdrożenia jest używany NodePort jako typ usługi. Jeśli używasz klastra OpenShift zintegrowanego z modułem równoważenia obciążenia, możesz zmienić konfigurację tak, aby korzystała z LoadBalancer typu usługi przy użyciu następującego polecenia:

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

Tworzenie kontrolera danych

Teraz możesz utworzyć kontroler danych przy użyciu następującego polecenia.

Uwaga

Parametr --path powinien wskazywać katalog zawierający plik control.json, a nie sam plik control.json.

Uwaga

Podczas wdrażania na platformie kontenera OpenShift określ wartość parametru --infrastructure . Opcje to: aws, , alibabaazure, , 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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie w środowisku open source, nadrzędnym rozwiązaniu Kubernetes (kubeadm)

Domyślnie profil wdrożenia kubeadm używa klasy magazynu o nazwie local-storage i typu NodePortusługi . Jeśli jest to akceptowalne, możesz pominąć poniższe instrukcje, które ustawiły żądaną klasę magazynu i typ usługi, a następnie natychmiast uruchomić az arcdata dc create poniższe polecenie.

Jeśli chcesz dostosować profil wdrożenia, aby określić określoną klasę magazynu i/lub typ usługi, zacznij od utworzenia nowego niestandardowego pliku profilu wdrożenia na podstawie profilu wdrożenia kubeadm, uruchamiając następujące polecenie. To polecenie tworzy katalog custom w bieżącym katalogu roboczym i niestandardowy plik control.json profilu wdrożenia w tym katalogu.

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

Dostępne klasy magazynu można wyszukać, uruchamiając następujące polecenie.

kubectl get storageclass

Teraz ustaw żądaną klasę magazynu, zastępując <storageclassname> w poleceniu poniżej nazwą klasy magazynu, której chcesz użyć, uruchamiając kubectl get storageclass powyższe polecenie.

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"

Domyślnie profil wdrożenia kubeadm jest używany NodePort jako typ usługi. Jeśli używasz klastra Kubernetes zintegrowanego z modułem równoważenia obciążenia, możesz zmienić konfigurację przy użyciu następującego polecenia.

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

Teraz możesz utworzyć kontroler danych przy użyciu następującego polecenia.

Uwaga

Podczas wdrażania na platformie kontenera OpenShift określ wartość parametru --infrastructure . Opcje to: aws, , alibabaazure, , 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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie w usłudze AWS Elastic Kubernetes Service (EKS)

Domyślnie klasa magazynu EKS to gp2 , a typ usługi to LoadBalancer.

Uruchom następujące polecenie, aby utworzyć kontroler danych przy użyciu podanego profilu wdrożenia EKS.

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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Tworzenie w usłudze Google Cloud Kubernetes Engine Service (GKE)

Domyślnie klasa magazynu GKE to standard , a typ usługi to LoadBalancer.

Uruchom następujące polecenie, aby utworzyć kontroler danych przy użyciu podanego profilu wdrożenia GKE.

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

Po uruchomieniu polecenia przejdź do pozycji Monitorowanie stanu tworzenia.

Monitorowanie stanu tworzenia

Całkowite utworzenie kontrolera trwa kilka minut. Postęp można monitorować w innym oknie terminalu za pomocą następujących poleceń:

Uwaga

W poniższych przykładowych poleceniach przyjęto założenie, że utworzono kontroler danych o nazwie i przestrzeń nazw Kubernetes o nazwie arc-dcarc. Jeśli użyto różnych wartości, zaktualizuj skrypt odpowiednio.

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

Możesz również sprawdzić stan tworzenia dowolnego określonego zasobnika, uruchamiając polecenie podobne do poniższego. Jest to szczególnie przydatne w przypadku rozwiązywania wszelkich problemów.

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

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

Rozwiązywanie problemów z tworzeniem

Jeśli wystąpią problemy z tworzeniem, zapoznaj się z przewodnikiem rozwiązywania problemów.