Freigeben über


Aktivieren von Azure Arc in einem Kubernetes-Cluster auf einem Azure Stack Edge Pro-GPU-Gerät

GILT FÜR: Yes for Pro GPU SKUAzure Stack Edge Pro – GPUYes for Pro 2 SKUAzure Stack Edge Pro 2Yes for Pro R SKUAzure Stack Edge Pro RYes for Mini R SKUAzure Stack Edge Mini R

In diesem Artikel wird beschrieben, wie Sie Azure Arc in einem vorhandenen Kubernetes-Cluster auf Ihrem Azure Stack Edge Pro-Gerät aktivieren.

Bei diesem Verfahren wird davon ausgegangen, dass Sie die folgenden Artikel gelesen und verstanden haben:

Voraussetzungen

Stellen Sie sicher, dass die folgenden Voraussetzungen auf dem Azure Stack Edge Pro-Gerät und dem Client, den Sie für den Zugriff auf das Gerät verwenden, erfüllt sind:

Für das Gerät

  1. Sie verfügen über Anmeldeinformationen für ein Azure Stack Edge Pro-Gerät mit einem Knoten.

    1. Das Gerät ist aktiviert. Weitere Informationen finden Sie unter Aktivieren des Geräts.
    2. Das Gerät verfügt über die über das Azure-Portal konfigurierte Computerolle und umfasst einen Kubernetes-Cluster. Siehe Konfigurieren der Computeumgebung.
  2. Sie haben Besitzerzugriff auf das Abonnement. Diesen Zugriff benötigen Sie beim Schritt der Rollenzuweisung für den Dienstprinzipal.

Für den Client, der auf das Gerät zugreift

  1. Sie verfügen über ein Windows-Clientsystem, das für den Zugriff auf das Azure Stack Edge Pro-Gerät verwendet wird.

    • Auf dem Client wird Windows PowerShell 5.0 oder höher ausgeführt. Informationen zum Herunterladen der neuesten Version von Windows PowerShell finden Sie unter Installieren von Windows PowerShell.

    • Sie können auch einen anderen Client mit einem unterstützten Betriebssystem verwenden. In diesem Artikel wird die Vorgehensweise bei Verwendung eines Windows-Clients beschrieben.

  2. Sie haben die unter Zugreifen auf den Kubernetes-Cluster auf dem Azure Stack Edge Pro-Gerät beschriebenen Schritte ausgeführt. Sie haben:

    • kubectl auf dem Client installiert.
    • Stellen Sie sicher, dass die kubectl-Clientversion um nicht mehr als eine Version von der Kubernetes-Masterversion abweicht, die auf dem Azure Stack Edge Pro-Gerät ausgeführt wird.
      • Verwenden Sie kubectl version, um die kubectl-Version zu überprüfen, die auf dem Client ausgeführt wird. Notieren Sie sich den gesamten Versionsnamen.

      • Wechseln Sie auf der lokalen Benutzeroberfläche des Azure Stack Edge Pro-Geräts zu Softwareupdate, und notieren Sie sich die Versionsnummer des Kubernetes-Servers.

        Überprüfen der Kubernetes-Serverversionsnummer

      • Vergewissern Sie sich, dass diese beiden Versionen kompatibel sind.

Registrieren von Kubernetes-Ressourcenanbietern

Damit Sie Azure Arc im Kubernetes-Cluster aktivieren können, müssen Sie Microsoft.Kubernetes und Microsoft.KubernetesConfiguration für Ihr Abonnement aktivieren und registrieren.

  1. Wechseln Sie zum Aktivieren eines Ressourcenanbieters im Azure-Portal zu dem Abonnement, das für die Bereitstellung verwendet werden soll. Navigieren Sie zu Ressourcenanbieter.

  2. Suchen Sie im rechten Bereich nach den Anbietern, die hinzugefügt werden sollen, in diesem Beispiel Microsoft.Kubernetes und Microsoft.KubernetesConfiguration.

    Registrieren von Kubernetes-Ressourcenanbietern

  3. Wählen Sie einen Ressourcenanbieter und dann oben auf der Befehlsleiste die Option Registrieren aus. Die Registrierung dauert einige Minuten.

    Registrieren von Kubernetes-Ressourcenanbietern 2

  4. Aktualisieren Sie die Benutzeroberfläche, bis angezeigt wird, dass der Ressourcenanbieter registriert ist. Führen Sie diese Schritte für beide Ressourcenanbieter aus.

    Registrieren von Kubernetes-Ressourcenanbietern 3

Sie können Ressourcenanbieter außerdem über az cli registrieren. Weitere Informationen finden Sie unter Registrieren der beiden Anbieter für Kubernetes mit Azure Arc-Unterstützung.

Erstellen des Dienstprinzipals und Zuweisen einer Rolle

  1. Achten Sie darauf, dass Sie die Subscription ID und den Namen der Ressourcengruppe verwenden, die Sie für die Ressourcenbereitstellung für den Azure Stack Edge-Dienst verwendet haben. Navigieren Sie zum Abrufen der Abonnement-ID im Azure-Portal zu Ihrer Azure Stack Edge-Ressource. Navigieren Sie zu Übersicht > Essentials.

    Abrufen der Abonnement-ID

    Wechseln Sie zum Abrufen des Ressourcengruppennamens zu Eigenschaften.

    Abrufen des Ressourcengruppennamens

  2. Führen Sie den folgenden Befehl über az cli aus, um einen Dienstprinzipal zu erstellen.

    az ad sp create-for-rbac --name "<Informative name for service principal>"

    Informationen zum Anmelden bei az cli finden Sie unter Starten von Cloud Shell im Azure-Portal. Wenn Sie az cli auf einem lokalen Client verwenden, um den Dienstprinzipal zu erstellen, stellen Sie sicher, dass Sie mindestens Version 2.25 ausführen.

    Im Folgenden sehen Sie ein Beispiel.

    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. Notieren Sie sich appID, name, password und tenantID, da Sie diese Werte im nächsten Befehl eingeben müssen.

  4. Weisen Sie dem neu erstellten Dienstprinzipal die Rolle Kubernetes Cluster - Azure Arc Onboarding zu. Dabei handelt es sich um eine integrierte Azure-Rolle (verwenden Sie im Befehl die Rollen-ID) mit eingeschränkten Berechtigungen. Verwenden Sie den folgenden -Befehl:

    az role assignment create --role 34e09817-6cbe-4d01-b1a2-e0eac5743d41 --assignee <appId-from-service-principal> --scope /subscriptions/<SubscriptionID>/resourceGroups/<Resource-group-name>

    Im Folgenden sehen Sie ein Beispiel.

    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>
    

Aktivieren von Arc im Kubernetes-Cluster

Führen Sie folgende Schritte aus, um den Kubernetes-Cluster für die Azure Arc-Verwaltung zu konfigurieren:

  1. Stellen Sie auf Ihrem Gerät eine Verbindung mit der PowerShell-Schnittstelle her.

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

    Wenn dieser Befehl ausgeführt wird, wird eine Folgeaufforderung zum Eingeben des ClientSecret angezeigt. Geben Sie das Dienstprinzipalkennwort an.

    Fügen Sie den Parameter CloudEnvironment hinzu, wenn Sie eine andere als die öffentliche Azure-Cloud verwenden. Sie können diesen Parameter auf AZUREPUBLICCLOUD, AZURECHINACLOUD, AZUREGERMANCLOUD und AZUREUSGOVERNMENTCLOUD festlegen.

    Hinweis

    • Verwenden Sie zum Bereitstellen von Azure Arc auf Ihrem Gerät eine unterstützte Region für Azure Arc.
    • Verwenden Sie den Befehl az account list-locations, um den genauen Standortnamen zu ermitteln, der an das Cmdlet Set-HcsKubernetesAzureArcAgent übergeben werden soll. Standortnamen enthalten in der Regel keine Leerzeichen.
    • ClientId und ClientSecret sind erforderlich.

    Ein Beispiel:

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

    Im Azure-Portal soll eine Ressource mit dem Namen erstellt werden, den Sie im vorherigen Befehl angegeben haben.

    Wechseln zur Azure Arc-Ressource

  3. Um zu überprüfen, ob Azure Arc erfolgreich aktiviert wurde, führen Sie folgenden Befehl über die PowerShell-Schnittstelle aus:

    kubectl get deployments,pods -n azure-arc

    In der folgenden Beispielausgabe sind die Azure Arc-Agents dargestellt, die in Ihrem Kubernetes-Cluster im Namespace azure-arc bereitgestellt wurden.

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

Eine konzeptionelle Übersicht über diese Agents finden Sie hier.

Entfernen von Arc aus dem Kubernetes-Cluster

Führen Sie die folgenden Schritte aus, um die Azure Arc-Verwaltung zu entfernen:

    1. Stellen Sie auf Ihrem Gerät eine Verbindung mit der PowerShell-Schnittstelle her.
  1. Typ:

    Remove-HcsKubernetesAzureArcAgent

Hinweis

Wenn yamls für Ressourcen aus dem Git-Repository gelöscht werden, werden die entsprechenden Ressourcen standardmäßig nicht aus dem Kubernetes-Cluster entfernt. Sie müssen --sync-garbage-collection in den Operatorparametern von Arc festlegen, um das Löschen von Ressourcen beim Löschen aus dem Git-Repository zu ermöglichen. Weitere Informationen finden Sie unter Löschen einer Konfiguration.

Nächste Schritte

Informationen zum Ausführen einer Azure Arc-Bereitstellung finden Sie unter Bereitstellen einer zustandslosen PHP -Anwendung mit Redis über GitOps auf einem Azure Stack Edge Pro-GerätGuestbook.