Aktivieren von Azure Arc in einem Kubernetes-Cluster auf einem Azure Stack Edge Pro-GPU-Gerät
GILT FÜR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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:
- Kubernetes-Workloads auf einem Azure Stack Edge Pro-Gerät
- Was ist Kubernetes mit Azure Arc-Unterstützung (Vorschauversion)?
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
Sie verfügen über Anmeldeinformationen für ein Azure Stack Edge Pro-Gerät mit einem Knoten.
- Das Gerät ist aktiviert. Weitere Informationen finden Sie unter Aktivieren des Geräts.
- Das Gerät verfügt über die über das Azure-Portal konfigurierte Computerolle und umfasst einen Kubernetes-Cluster. Siehe Konfigurieren der Computeumgebung.
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
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.
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.
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.
Wechseln Sie zum Aktivieren eines Ressourcenanbieters im Azure-Portal zu dem Abonnement, das für die Bereitstellung verwendet werden soll. Navigieren Sie zu Ressourcenanbieter.
Suchen Sie im rechten Bereich nach den Anbietern, die hinzugefügt werden sollen, in diesem Beispiel
Microsoft.Kubernetes
undMicrosoft.KubernetesConfiguration
.Wählen Sie einen Ressourcenanbieter und dann oben auf der Befehlsleiste die Option Registrieren aus. Die Registrierung dauert einige Minuten.
Aktualisieren Sie die Benutzeroberfläche, bis angezeigt wird, dass der Ressourcenanbieter registriert ist. Führen Sie diese Schritte für beide Ressourcenanbieter aus.
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
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.Wechseln Sie zum Abrufen des Ressourcengruppennamens zu Eigenschaften.
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 Sieaz 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>
Notieren Sie sich
appID
,name
,password
undtenantID
, da Sie diese Werte im nächsten Befehl eingeben müssen.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:
Stellen Sie auf Ihrem Gerät eine Verbindung mit der PowerShell-Schnittstelle her.
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 aufAZUREPUBLICCLOUD
,AZURECHINACLOUD
,AZUREGERMANCLOUD
undAZUREUSGOVERNMENTCLOUD
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 CmdletSet-HcsKubernetesAzureArcAgent
übergeben werden soll. Standortnamen enthalten in der Regel keine Leerzeichen. ClientId
undClientSecret
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.
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:
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
.