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 dem Azure Stack Edge Pro-Gerät
- Was ist Azure Arc-fähige Kubernetes (Vorschau)?
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
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 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.
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
.
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.
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 Sie den Dienstprinzipal mithilfeaz 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>
Notieren Sie sich das
appID
,name
,password
undtenantID
verwenden Sie diese Werte als Eingabe für den nächsten Befehl.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:
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 Nachverfolgungsaufforderung angezeigt, um die
ClientSecret
Eingabeaufforderung 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 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.
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.
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:
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
.