Udostępnij za pośrednictwem


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.

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.

        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.

    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.

    Rejestrowanie dostawców zasobów platformy Kubernetes 2

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

    Rejestrowanie dostawców zasobów platformy 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 Podstawy przeglądu>.

    Uzyskiwanie identyfikatora subskrypcji

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

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

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

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

  2. 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ć na AZUREPUBLICCLOUD, , AZUREGERMANCLOUDAZURECHINACLOUDi AZUREUSGOVERNMENTCLOUD.

    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 polecenia Set-HcsKubernetesAzureArcAgent cmdlet. Nazwy lokalizacji są zwykle formatowane bez spacji.
    • ClientId i ClientSecret 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.

    Przejdź 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.
  1. 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)