Udostępnij przez


Włączanie usługi Azure Arc w klastrze Kubernetes na urządzeniu z procesorem GPU Usługi Azure Stack Edge Pro

DOTYCZY:Tak dla jednostki SKU procesora GPU ProAzure Stack Edge Pro — GPUTak dla jednostki SKU Pro 2Azure Stack Edge Pro 2Tak dla jednostki SKU Pro RAzure Stack Edge Pro R Azure Stack Edge Mini RTak dla jednostki SKU 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.

Uwaga

Postępuj zgodnie z instrukcjami w przewodniku Szybki start: łączenie istniejącego klastra Kubernetes z usługą Azure Arc.

W tej procedurze przyjęto założenie, że przeczytaliśmy i zrozumieliśmy następujące artykuły:

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

  1. Masz poświadczenia logowania do urządzenia Azure Stack Edge Pro z 1 węzłem.

    1. Urządzenie jest aktywowane. Zobacz Aktywowanie urządzenia.
    2. Urządzenie ma rolę obliczeniową skonfigurowaną za pośrednictwem witryny Azure Portal i ma klaster Kubernetes. Zobacz Konfigurowanie obliczeń.
  2. 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

  1. 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.

  2. 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.

        Zrzut ekranu przedstawiający weryfikowanie numeru wersji serwera Kubernetes.

      • Sprawdź, czy te dwie wersje są zgodne.

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.

  1. 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.

  2. W okienku po prawej stronie wyszukaj dostawców, których chcesz dodać. W tym przykładzie Microsoft.Kubernetes i Microsoft.KubernetesConfiguration.

    Zrzut ekranu przedstawiający rejestrowanie dostawców zasobów platformy Kubernetes.

  3. Wybierz dostawcę zasobów, a w górnej części paska poleceń wybierz pozycję Zarejestruj. Rejestracja trwa kilka minut.

    Zrzut ekranu przedstawiający rejestrowanie dostawców zasobów Kubernetes 2.

  4. Odśwież interfejs użytkownika do momentu zarejestrowania dostawcy zasobów. Powtórz proces dla obu dostawców zasobów.

    Zrzut ekranu przedstawiający rejestrowanie dostawców zasobów Kubernetes 3.

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

  1. 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 > przeglądu.

    Zrzut ekranu identyfikatora subskrypcji.

    Aby uzyskać nazwę grupy zasobów, przejdź do pozycji Właściwości.

    Zrzut ekranu przedstawiający pobieranie nazwy grupy zasobów.

  2. 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 cliAzure Portal. Jeśli używasz az 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>
    
  3. Zanotuj appIdwartości , , nameipasswordtenantID, ponieważ użyjesz tych wartości jako danych wejściowych do następnego polecenia.

    Istnieje kilka sposobów uzyskania appId. Poniższe trzy opcje to preferowane metody. Jeśli używasz jednej z poniższych opcji, możesz pominąć kroki 1, 2 i 3 z poprzedniej sekcji i przejść bezpośrednio do poniższego kroku 4.

    • Opcja 1 — użyj programu Minishell, aby uruchomić następujące polecenie cmdlet programu PowerShell:

      [Device-IP]: PS> Get-AzureDataBoxEdgeApplicationId
      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      [Device-IP]: PS>
      
    • Opcja 2 . Aby wyświetlić szczegóły kodu JSON dla urządzenia w witrynie Azure Portal, wykonaj następujące czynności:

      1. Przejdź do przeglądu urządzenia Azure Stack Edge, a następnie wybierz widok JSON w prawym górnym rogu.

        Zrzut ekranu przedstawiający stronę przeglądu urządzenia Azure Stack Edge.

      2. W szczegółach JSON zasobu dla urządzenia zanotuj principalId.

        Zrzut ekranu przedstawiający wyświetlanie szczegółów JSON dla urządzenia Azure Stack Edge.

    • Opcja 3 — użyj programu PowerShell spoza usługi Azure Stack Edge na maszynie klienckiej, aby uruchomić następujące polecenie:

      // ASE resource group and resource name can be obtained from Azure portal
      PS C:\> $ASEResource= GetAzResource –ResourceGroupName <resource-group-name> -ResourceName <resource-name>
      PS C:\> $ASEResource.Identity.PrincipalId
      xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
      PS C:\>
      
  4. Po utworzeniu nowego głównego użytkownika usługi lub po jego pobraniu przy użyciu jednej z tych opcji przypisz rolę Kubernetes Cluster - Azure Arc Onboarding do nowo utworzonego głównego użytkownika. 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:

  1. Połącz się z interfejsem programu PowerShell urządzenia.

  2. Uruchom następujące polecenie:

    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 pojawi się monit z prośbą o określenie ClientSecret. Podaj hasło zasobu głównego usługi po wyświetleniu monitu.

    Dodaj parametr, CloudEnvironment jeśli używasz chmury innej niż publiczna platforma Azure. Ten parametr można ustawić na AZUREPUBLICCLOUD, , AZURECHINACLOUDAZUREGERMANCLOUDi AZUREUSGOVERNMENTCLOUD.

    Zagadnienia dotyczące użycia:

    • Aby wdrożyć usługę Azure Arc na urządzeniu, upewnij się, że używasz regionu Obsługiwane dla usługi Azure Arc.
    • Użyj polecenia az account list-locations, aby określić dokładną nazwę lokalizacji do przekazania w poleceniu cmdlet Set-HcsKubernetesAzureArcAgent. Nazwy lokalizacji są zwykle formatowane bez spacji.

    Ważne

    Jeśli uzyskasz Id zamiast utworzenia nowej zasady usługi przy użyciu starszej metody, nie należy określać ClientId, TenantId lub ClientSecret.

    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.

    Zrzut ekranu przedstawiający przejście do zasobu usługi Azure Arc.

  3. 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:

  1. Połącz się z interfejsem programu PowerShell urządzenia.

  2. Uruchom następujące polecenie:

    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).