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>
Nawiązywanie połączenia z klastrem Kubernetes
Połącz się i uwierzytelnij z klastrem Kubernetes i wybierz 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.
- Azure Kubernetes Service (AKS)
- Usługa AKS w usłudze Azure Stack HCI
- Azure Red Hat OpenShift (ARO)
- Red Hat OpenShift Container Platform (OCP)
- Open source, nadrzędna platforma Kubernetes (kubeadm)
- AWS Elastic Kubernetes Service (EKS)
- Google Cloud Kubernetes Engine Service (GKE)
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 LoadBalancer
usługi .
Możesz uruchomić następujące polecenie, aby utworzyć kontroler danych przy użyciu default
klasy magazynu i typu LoadBalancer
usł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 do samego pliku control.json.
Uwaga
Podczas wdrażania na platformie kontenera OpenShift określ wartość parametru --infrastructure
. Opcje to: aws
, , alibaba
azure
, , 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 NodePort
usł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
, , alibaba
azure
, , 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-dc
arc
. 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.