Włączanie usługi Azure Arc w klastrze Kubernetes na urządzeniu z procesorem GPU Usługi Azure Stack Edge Pro
DOTYCZY: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro R Azure Stack Edge Mini R
W tym artykule pokazano, jak włączyć usługę Azure Arc w istniejącym klastrze Kubernetes na urządzeniu Azure Stack Edge Pro.
W tej procedurze przyjęto założenie, że przeczytaliśmy i zrozumieliśmy następujące artykuły:
- Obciążenia Kubernetes na urządzeniu Azure Stack Edge Pro
- Co to jest platforma Kubernetes z obsługą usługi Azure Arc (wersja zapoznawcza)?
Wymagania wstępne
Upewnij się, że zostały spełnione następujące wymagania wstępne na urządzeniu Azure Stack Edge Pro i kliencie używanym do uzyskiwania dostępu do urządzenia:
Na potrzeby urządzenia
Masz poświadczenia logowania do urządzenia Azure Stack Edge Pro z 1 węzłem.
- Urządzenie jest aktywowane. Zobacz Aktywowanie urządzenia.
- Urządzenie ma rolę obliczeniową skonfigurowaną za pośrednictwem witryny Azure Portal i ma klaster Kubernetes. Zobacz Konfigurowanie obliczeń.
Masz dostęp właściciela do subskrypcji. Ten dostęp będzie potrzebny podczas kroku przypisywania roli dla jednostki usługi.
W przypadku uzyskiwania dostępu do urządzenia przez klienta
Masz system kliencki z systemem Windows, który jest używany do uzyskiwania dostępu do urządzenia Azure Stack Edge Pro.
Klient korzysta z programu Windows PowerShell 5.0 lub nowszego. Aby pobrać najnowszą wersję programu Windows PowerShell, przejdź do sekcji Instalowanie programu Windows PowerShell.
Możesz również mieć dowolnego innego klienta z obsługiwanym systemem operacyjnym. W tym artykule opisano procedurę korzystania z klienta systemu Windows.
Wykonano procedurę opisaną w artykule Uzyskiwanie dostępu do klastra Kubernetes na urządzeniu Azure Stack Edge Pro. Masz:
- Zainstalowane
kubectl
na kliencie. - Upewnij się, że
kubectl
wersja klienta nie jest niesymetryczna niż jedna wersja z wersji głównej platformy Kubernetes uruchomionej na urządzeniu Azure Stack Edge Pro.Użyj
kubectl version
polecenia , aby sprawdzić wersję narzędzia kubectl uruchomioną na kliencie. Zanotuj pełną wersję.W lokalnym interfejsie użytkownika urządzenia Azure Stack Edge Pro przejdź do pozycji Aktualizacja oprogramowania i zanotuj numer wersji serwera Kubernetes.
Sprawdź, czy te dwie wersje są zgodne.
- Zainstalowane
Rejestrowanie dostawców zasobów platformy Kubernetes
Przed włączeniem usługi Azure Arc w klastrze Kubernetes należy włączyć i zarejestrować się Microsoft.Kubernetes
w Microsoft.KubernetesConfiguration
ramach subskrypcji.
Aby włączyć dostawcę zasobów, w witrynie Azure Portal przejdź do subskrypcji, której planujesz użyć na potrzeby wdrożenia. Przejdź do pozycji Dostawcy zasobów.
W okienku po prawej stronie wyszukaj dostawców, których chcesz dodać. W tym przykładzie
Microsoft.Kubernetes
iMicrosoft.KubernetesConfiguration
.Wybierz dostawcę zasobów, a w górnej części paska poleceń wybierz pozycję Zarejestruj. Rejestracja trwa kilka minut.
Odśwież interfejs użytkownika do momentu zarejestrowania dostawcy zasobów. Powtórz proces dla obu dostawców zasobów.
Dostawcy zasobów można również zarejestrować za pośrednictwem .az cli
Aby uzyskać więcej informacji, zobacz Rejestrowanie dwóch dostawców dla platformy Kubernetes z obsługą usługi Azure Arc.
Tworzenie jednostki usługi, przypisywanie roli
Upewnij się, że masz
Subscription ID
i nazwę grupy zasobów użytej do wdrożenia zasobów dla usługi Azure Stack Edge. Aby uzyskać identyfikator subskrypcji, przejdź do zasobu usługi Azure Stack Edge w witrynie Azure Portal. Przejdź do obszaru Podstawy przeglądu>.Aby uzyskać nazwę grupy zasobów, przejdź do pozycji Właściwości.
Aby utworzyć jednostkę usługi, użyj następującego polecenia za pomocą polecenia
az cli
.az ad sp create-for-rbac --name "<Informative name for service principal>"
Aby uzyskać informacje na temat logowania się do usługi , Uruchom usługę Cloud Shell w witrynie
az cli
Azure Portal. Jeśli używaszaz cli
klienta lokalnego do utworzenia jednostki usługi, upewnij się, że używasz wersji 2.25 lub nowszej.Oto przykład.
PS /home/user> az ad sp create-for-rbac --name "https://azure-arc-for-ase-k8s" { "appId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "displayName": "azure-arc-for-ase-k8s", "name": "https://azure-arc-for-ase-k8s", "password": "<password>", "tenant": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } PS /home/user>
Zanotuj
appID
wartości , ,name
ipassword
tenantID
, ponieważ użyjesz tych wartości jako danych wejściowych do następnego polecenia.Po utworzeniu nowej jednostki usługi przypisz
Kubernetes Cluster - Azure Arc Onboarding
rolę do nowo utworzonego podmiotu zabezpieczeń. Jest to wbudowana rola platformy Azure (użyj identyfikatora roli w poleceniu) z ograniczonymi uprawnieniami. Użyj następującego polecenia:az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>
Oto przykład.
PS /home/user> az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx --scope /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1 { "canDelegate": null, "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1/providers/Microsoft.Authorization/roleAssignments/00000000-0000-0000-0000-000000000000", "name": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "principalType": "ServicePrincipal", "resourceGroup": "myaserg1", "roleDefinitionId": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.Authorization/roleDefinitions/34e09817-6cbe-4d01-b1a2-e0eac5743d41", "scope": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myaserg1", "type": "Microsoft.Authorization/roleAssignments" } PS /home/user>
Włączanie usługi Arc w klastrze platformy Kubernetes
Wykonaj następujące kroki, aby skonfigurować klaster Kubernetes na potrzeby zarządzania usługą Azure Arc:
Połącz się z interfejsem programu PowerShell urządzenia.
Typ:
Set-HcsKubernetesAzureArcAgent -SubscriptionId "<Your Azure Subscription Id>" -ResourceGroupName "<Resource Group Name>" -ResourceName "<Azure Arc resource name (shouldn't exist already)>" -Location "<Region associated with resource group>" -TenantId "<Tenant Id of service principal>" -ClientId "<App id of service principal>"
Po uruchomieniu tego polecenia zostanie wyświetlony monit z monitem o wprowadzenie polecenia
ClientSecret
. Podaj hasło jednostki usługi.Dodaj parametr,
CloudEnvironment
jeśli używasz chmury innej niż publiczna platforma Azure. Ten parametr można ustawić naAZUREPUBLICCLOUD
, ,AZUREGERMANCLOUD
AZURECHINACLOUD
iAZUREUSGOVERNMENTCLOUD
.Uwaga
- Aby wdrożyć usługę Azure Arc na urządzeniu, upewnij się, że używasz regionu Obsługiwane dla usługi Azure Arc.
az account list-locations
Użyj polecenia , aby ustalić dokładną nazwę lokalizacji do przekazania poleceniaSet-HcsKubernetesAzureArcAgent
cmdlet. Nazwy lokalizacji są zwykle formatowane bez spacji.ClientId
iClientSecret
są wymagane.
Oto przykład:
[10.100.10.10]: PS>Set-HcsKubernetesAzureArcAgent -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "myaserg1" -ResourceName "myasetestresarc" -Location "westeurope" -TenantId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ClientId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" WARNING: A script or application on the remote computer 10.126.76.0 is sending a prompt request. When you are prompted, enter sensitive information, such as credentials or passwords, only if you trust the remote computer and the application or script that is requesting the data. cmdlet Set-HcsKubernetesAzureArcAgent at command pipeline position 1 Supply values for the following parameters: ClientSecret: ********************************** [10.100.10.10]: PS>
W witrynie Azure Portal należy utworzyć zasób o nazwie podanej w poprzednim poleceniu.
Aby sprawdzić, czy usługa Azure Arc została pomyślnie włączona, uruchom następujące polecenie z poziomu interfejsu programu PowerShell:
kubectl get deployments,pods -n azure-arc
Oto przykładowe dane wyjściowe przedstawiające agentów usługi Azure Arc wdrożonych w klastrze Kubernetes w
azure-arc
przestrzeni nazw.[10.128.44.240]: PS>kubectl get deployments,pods -n azure-arc NAME READY UP-TO-DATE AVAILABLE AGE deployment.apps/cluster-metadata-operator 1/1 1 1 13d deployment.apps/clusterconnect-agent 1/1 1 1 13d deployment.apps/clusteridentityoperator 1/1 1 1 13d deployment.apps/config-agent 1/1 1 1 13d deployment.apps/controller-manager 1/1 1 1 13d deployment.apps/extension-manager 1/1 1 1 13d deployment.apps/flux-logs-agent 1/1 1 1 13d deployment.apps/kube-aad-proxy 1/1 1 1 13d deployment.apps/metrics-agent 1/1 1 1 13d deployment.apps/resource-sync-agent 1/1 1 1 13d NAME READY STATUS RESTARTS AGE pod/cluster-metadata-operator-9568b899c-2stjn 2/2 Running 0 13d pod/clusterconnect-agent-576758886d-vggmv 3/3 Running 0 13d pod/clusteridentityoperator-6f59466c87-mm96j 2/2 Running 0 13d pod/config-agent-7cbd6cb89f-9fdnt 2/2 Running 0 13d pod/controller-manager-df6d56db5-kxmfj 2/2 Running 0 13d pod/extension-manager-58c94c5b89-c6q72 2/2 Running 0 13d pod/flux-logs-agent-6db9687fcb-rmxww 1/1 Running 0 13d pod/kube-aad-proxy-67b87b9f55-bthqv 2/2 Running 0 13d pod/metrics-agent-575c565fd9-k5j2t 2/2 Running 0 13d pod/resource-sync-agent-6bbd8bcd86-x5bk5 2/2 Running 0 13d [10.128.44.240]: PS>
Koncepcyjne omówienie tych agentów jest dostępne tutaj.
Usuwanie usługi Arc z klastra Kubernetes
Aby usunąć zarządzanie usługą Azure Arc, wykonaj następujące kroki:
-
- Połącz się z interfejsem programu PowerShell urządzenia.
Typ:
Remove-HcsKubernetesAzureArcAgent
Uwaga
Domyślnie po usunięciu zasobu yamls
z repozytorium Git odpowiednie zasoby nie są usuwane z klastra Kubernetes. Należy ustawić --sync-garbage-collection
parametr OperatorParams usługi Arc, aby zezwolić na usuwanie zasobów po usunięciu z repozytorium git. Aby uzyskać więcej informacji, zobacz Usuwanie konfiguracji
Następne kroki
Aby dowiedzieć się, jak uruchomić wdrożenie usługi Azure Arc, zobacz Deploy a stateless PHP application with Redis via GitOps on an Azure Stack Edge Pro device (Wdrażanie bezstanowej aplikacji PHP Guestbook
za pomocą usługi Redis za pomocą usługi GitOps na urządzeniu Azure Stack Edge Pro)