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 Sie die folgenden Voraussetzungen auf Ihrem Azure Stack Edge Pro-Gerät und dem Client abgeschlossen haben, den Sie für den Zugriff auf das Gerät verwenden:

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 das unter Access the Kubernetes-Cluster auf dem Azure Stack Edge Pro-Gerät beschriebene Verfahren abgeschlossen. 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.

        Verify Kubernetes server version number

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

Registrieren von Kubernetes-Ressourcenanbietern

Bevor Sie Azure Arc im Kubernetes-Cluster aktivieren und registrieren, müssen Sie ihr Abonnement aktivieren und Microsoft.KubernetesConfiguration registrierenMicrosoft.Kubernetes.

  1. Um einen Ressourcenanbieter zu aktivieren, wechseln Sie im Azure-Portal zu dem Abonnement, das Sie für die Bereitstellung verwenden möchten. 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.

    Register Kubernetes resource providers

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

    Register Kubernetes resource providers 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.

    Register Kubernetes resource providers 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.

    Get subscription ID

    Wechseln Sie zum Abrufen des Ressourcengruppennamens zu Eigenschaften.

    Get resource group name

  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 den Dienstprinzipal mithilfe az cli eines lokalen Clients erstellen, stellen Sie sicher, dass Sie Version 2.25 oder höher 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 das appID, name, passwordund tenantID verwenden Sie diese Werte als Eingabe für den nächsten Befehl.

  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/59272f92-e5ce-4aeb-9c0c-62532d8caf25",
      "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 Nachverfolgungsaufforderung angezeigt, um die ClientSecretEingabeaufforderung einzugeben. Geben Sie das Dienstprinzipalkennwort an.

    Fügen Sie den CloudEnvironment Parameter hinzu, wenn Sie eine andere Cloud als Azure Public 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.

    Hier sehen Sie 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.

    Go to Azure Arc resource

  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

    Hier ist eine Beispielausgabe, die die Azure Arc-Agents zeigt, die auf Ihrem Kubernetes-Cluster im azure-arc Namespace 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.