Gérer un appareil Azure Stack Edge Pro avec GPU via Windows PowerShell
S’APPLIQUE À : Azure Stack Edge Pro : GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
La solution GPU Azure Stack Edge Pro vous permet de traiter des données et de les envoyer à Azure via le réseau. Cet article décrit certaines des tâches de gestion et de configuration pour votre appareil GPU Azure Stack Edge Pro. Vous pouvez utiliser le portail Azure, l'interface utilisateur locale ou l'interface Windows PowerShell pour gérer votre appareil.
Cet article se concentre sur la façon dont vous pouvez vous connecter à l’interface PowerShell de l’appareil et les tâches que vous pouvez effectuer à l’aide de cette interface.
Connexion à l’interface PowerShell
Selon le système d’exploitation du client, les procédures permettant de se connecter à distance à l’appareil sont différentes.
Connexion à distance depuis un client Windows
Prérequis
Avant de commencer, assurez-vous que :
Votre client Windows exécute Windows PowerShell 5.0 ou une version ultérieure.
Votre client Windows dispose de la chaîne de signature (certificat racine) correspondant au certificat de nœud installé sur l’appareil. Pour obtenir des instructions détaillées, consultez Installer un certificat sur votre client Windows.
Le fichier
hosts
sousC:\Windows\System32\drivers\etc
pour votre client Windows contient une entrée correspondant au certificat de nœud au format suivant :<Device IP> <Node serial number>.<DNS domain of the device>
Voici un exemple d’entrée pour le fichier
hosts
:10.100.10.10 1HXQG13.wdshcsso.com
Procédure détaillée
Suivez cette procédure pour effectuer une connexion distante depuis un client Windows.
Démarrez une session Windows PowerShell en tant qu’administrateur.
Assurez-vous que le service Windows Remote Management est en cours d’exécution sur votre client. À l’invite de commandes, tapez :
winrm quickconfig
Pour plus d’informations, consultez Installation et configuration de Windows Remote Management.
Assignez une variable à la chaîne de connexion utilisée dans le fichier
hosts
.$Name = "<Node serial number>.<DNS domain of the device>"
Remplacez
<Node serial number>
et<DNS domain of the device>
par le numéro de série du nœud et le domaine DNS de votre appareil. Vous pouvez obtenir la valeur du numéro de série du nœud à partir de la page Certificats et celle du domaine DNS à partir de la page Appareil dans l’interface utilisateur web locale de votre appareil.Pour ajouter cette chaîne de connexion pour votre appareil à la liste des hôtes approuvés du client, saisissez la commande suivante :
Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
Démarrez une session Windows PowerShell sur l’appareil :
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
Si vous voyez une erreur liée à une relation de confiance, vérifiez si la chaîne de signature du certificat de nœud chargé sur votre appareil est également installée sur le client qui accède à votre appareil.
Indiquez le mot de passe lorsque vous y êtes invité. Utilisez le mot de passe vous permettant de vous connecter à l’interface utilisateur web locale. Le mot de passe par défaut de cette interface est Password1. Lorsque vous êtes connecté à l’appareil à l’aide de PowerShell à distance, vous pouvez voir l’exemple de sortie suivant :
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> winrm quickconfig WinRM service is already running on this machine. PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com" PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration. [1HXQG13.wdshcsso.com]: PS>
Lorsque vous utilisez l’option -UseSSL
, vous utilisez la communication à distance via PowerShell sur https. Nous vous recommandons de toujours utiliser le protocole HTTPS pour vous connecter à distance via PowerShell. Dans les réseaux approuvés, la communication à distance via PowerShell sur http est acceptable. Vous activez d’abord PowerShell à distance sur http dans l’interface utilisateur locale. Vous pouvez ensuite vous connecter à l’interface PowerShell de l’appareil à l’aide de la procédure précédente sans l’option -UseSSL
.
Si vous n’utilisez pas les certificats (nous vous recommandons fortement de les utiliser !), vous pouvez ignorer la vérification de la validation du certificat en utilisant les options de session : -SkipCACheck -SkipCNCheck -SkipRevocationCheck
.
$sessOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL -SessionOption $sessOptions
Voici un exemple de sortie lorsque vous ignorez la vérification du certificat :
PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com"
PS C:\WINDOWS\system32> $sessOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
PS C:\WINDOWS\system32> $sessOptions
MaximumConnectionRedirectionCount : 5
NoCompression : False
NoMachineProfile : False
ProxyAccessType : None
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : True
SkipCNCheck : True
SkipRevocationCheck : True
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
IncludePortInSPN : False
OutputBufferingMode : None
MaxConnectionRetryCount : 0
Culture :
UICulture :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:03:00
CancelTimeout : 00:01:00
IdleTimeout : -00:00:00.0010000
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL -SessionOption $sessOptions
WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please
engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing.
Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
[1HXQG13.wdshcsso.com]: PS>
Important
Dans la version actuelle, vous pouvez vous connecter à l’interface PowerShell de l’appareil uniquement via un client Windows. L’option -UseSSL
ne fonctionne pas avec les clients Linux.
Création d’un package de prise en charge
Si vous rencontrez des problèmes avec l’appareil, vous pouvez créer un package de support dans les journaux système. Le support Microsoft utilise ce package pour résoudre les problèmes. Pour créer un package de support, effectuez les étapes suivantes :
Connectez-vous à l’interface PowerShell de votre appareil.
Utilisez la commande
Get-HcsNodeSupportPackage
pour créer un package de support. Utilisez la cmdlet comme suit :Get-HcsNodeSupportPackage [-Path] <string> [-Zip] [-ZipFileName <string>] [-Include {None | RegistryKeys | EtwLogs | PeriodicEtwLogs | LogFiles | DumpLog | Platform | FullDumps | MiniDumps | ClusterManagementLog | ClusterLog | UpdateLogs | CbsLogs | StorageCmdlets | ClusterCmdlets | ConfigurationCmdlets | KernelDump | RollbackLogs | Symbols | NetworkCmdlets | NetworkCmds | Fltmc | ClusterStorageLogs | UTElement | UTFlag | SmbWmiProvider | TimeCmds | LocalUILogs | ClusterHealthLogs | BcdeditCommand | BitLockerCommand | DirStats | ComputeRolesLogs | ComputeCmdlets | DeviceGuard | Manifests | MeasuredBootLogs | Stats | PeriodicStatLogs | MigrationLogs | RollbackSupportPackage | ArchivedLogs | Default}] [-MinimumTimestamp <datetime>] [-MaximumTimestamp <datetime>] [-IncludeArchived] [-IncludePeriodicStats] [-Credential <pscredential>] [<CommonParameters>]
La cmdlet collecte les journaux à partir de votre appareil et les copie vers un réseau ou un partage local spécifié.
Les paramètres utilisés sont les suivants :
-Path
: permet de spécifier le réseau ou le chemin d’accès local vers lequel y copier le package de support. (obligatoire)-Credential
: permet de spécifier les informations d’identification pour accéder au chemin protégé.-Zip
: permet de générer un fichier zip.-Include
: permet d’inclure les composants à inclure dans le package de support. S’il n’est pas renseigné, la valeurDefault
est supposée.-IncludeArchived
: permet d’inclure des journaux archivés dans le package de support.-IncludePeriodicStats
: permet d’inclure des journaux de statistiques périodiques dans le package de support.
Affichage des informations sur l’appareil
Utilisez
Get-HcsApplianceInfo
pour obtenir les informations pour votre appareil.L’exemple suivant montre comment utiliser cette cmdlet :
[10.100.10.10]: PS>Get-HcsApplianceInfo Id : b2044bdb-56fd-4561-a90b-407b2a67bdfc FriendlyName : DBE-NBSVFQR94S6 Name : DBE-NBSVFQR94S6 SerialNumber : HCS-NBSVFQR94S6 DeviceId : 40d7288d-cd28-481d-a1ea-87ba9e71ca6b Model : Virtual FriendlySoftwareVersion : Data Box Gateway 1902 HcsVersion : 1.4.771.324 IsClustered : False IsVirtual : True LocalCapacityInMb : 1964992 SystemState : Initialized SystemStatus : Normal Type : DataBoxGateway CloudReadRateBytesPerSec : 0 CloudWriteRateBytesPerSec : 0 IsInitialPasswordSet : True FriendlySoftwareVersionNumber : 1902 UploadPolicy : All DataDiskResiliencySettingName : Simple ApplianceTypeFriendlyName : Data Box Gateway IsRegistered : False
Voici un tableau récapitulant les informations importantes sur les appareils :
Paramètre Description FriendlyName Nom convivial configuré pour l’appareil via l’interface utilisateur web locale lors du déploiement de l’appareil. Le nom convivial par défaut est le numéro de série de l’appareil. SerialNumber Le numéro de série de l’appareil est un numéro unique attribué en usine. Modèle Le modèle de votre appareil Azure Stack Edge ou Data Box Gateway. Le modèle est physique pour Azure Stack Edge et virtuel pour Data Box Gateway. FriendlySoftwareVersion Chaîne conviviale qui correspond à la version du logiciel de l’appareil. Pour un système exécutant la préversion, la version conviviale du logiciel serait Data Box Edge 1902. HcsVersion Version du logiciel HCS exécutée sur votre appareil. Par exemple, la version du logiciel HCS correspondant à Data Box Edge 1902 est 1.4.771.324. LocalCapacityInMb Capacité totale locale de l’appareil en mégabits. IsRegistered Cette valeur indique si votre appareil est activé avec le service.
Afficher les informations du pilote de GPU
Si le rôle de calcul est configuré sur votre appareil, vous pouvez également obtenir les informations du pilote du GPU via l’interface PowerShell.
Utilisez
Get-HcsGpuNvidiaSmi
pour obtenir les informations du pilote du GPU pour votre appareil.L’exemple suivant montre comment utiliser cette cmdlet :
Get-HcsGpuNvidiaSmi
Prenez note des informations du pilote à partir de l’exemple de sortie de cette applet de commande.
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 On | 000029CE:00:00.0 Off | 0 | | N/A 60C P0 29W / 70W | 1539MiB / 15109MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla T4 On | 0000AD50:00:00.0 Off | 0 | | N/A 58C P0 29W / 70W | 330MiB / 15109MiB | 0% Default | +-------------------------------+----------------------+----------------------+
Activer un service multiprocessus (MPS)
Un service multiprocessus (MPS) sur les GPU Nvidia fournit un mécanisme dans lequel les GPU peuvent être partagés par plusieurs tâches, où chaque tâche est se voit attribuer un certain pourcentage des ressources du GPU. MPS est une fonctionnalité en préversion sur votre appareil Azure Stack Edge Pro avec GPU. Pour activer MPS sur votre appareil, procédez comme suit :
Avant de commencer, assurez-vous que :
- Vous avez configuré et Activé votre appareil Azure Stack Edge Pro avec une ressource Azure Stack Edge dans Azure.
- Vous avez Configuré le calcul sur cet appareil dans le portail Azure.
Utilisez la commande suivante pour activer un MPS sur votre appareil.
Start-HcsGpuMPS
Remarque
Lors de la mise à jour du logiciel de l’appareil et du cluster Kubernetes, le paramètre MPS n’est pas conservé pour les charges de travail. Vous devez réactiver MPS.
Réinitialisation de votre appareil
Pour réinitialiser votre appareil, vous devez effacer en toute sécurité toutes les données sur le disque de données et le disque de démarrage de votre appareil.
Utilisez la cmdlet Reset-HcsAppliance
pour effacer les disques de données et le disque de démarrage ou simplement les disques de données. Les commutateurs SecureWipeBootDisk
et SecureWipeDataDisks
permettent respectivement de réinitialiser le disque de démarrage et les disques de données.
Le commutateur SecureWipeBootDisk
efface le disque de démarrage et rend l’appareil inutilisable. Il doit être utilisé seulement si l’appareil doit être renvoyé à Microsoft. Pour plus d’informations, consultez Renvoyer l’appareil à Microsoft.
Si vous utilisez la réinitialisation d’appareil dans l’interface utilisateur web locale, seuls les disques de données sont effacés en toute sécurité, mais le disque de démarrage reste intact. Le disque de démarrage contient la configuration de l’appareil.
À l'invite de commandes, tapez :
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
L’exemple suivant explique comment utiliser cette cmdlet :
[10.128.24.33]: PS>Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks Confirm Are you sure you want to perform this action? Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance". [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): N
Récupération des journaux de calcul
Si le rôle de calcul est configuré sur votre appareil, vous pouvez également obtenir les journaux de calcul via l’interface PowerShell.
Utilisez
Get-AzureDataBoxEdgeComputeRoleLogs
pour obtenir les journaux de calcul de votre appareil.L’exemple suivant montre comment utiliser cette cmdlet :
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
Voici une description des paramètres utilisés pour la cmdlet :
Path
: indiquez un chemin réseau vers le partage dans lequel vous souhaitez créer le package de journaux de calcul.Credential
: indiquez le nom d’utilisateur du partage réseau. Lorsque vous exécutez cette cmdlet, vous devez fournir le mot de passe du partage.FullLogCollection
: ce paramètre garantit que le package de journaux contiendra tous les journaux de calcul. Par défaut, le package de journaux contient uniquement un sous-ensemble des journaux.
Modifier les profils de charge de travail Kubernetes
Après avoir formé et configuré un cluster et créé de nouveaux commutateurs virtuels, vous pouvez ajouter ou supprimer des réseaux virtuels associés à vos commutateurs virtuels. Pour connaître les étapes détaillées, consultez Configurer les commutateurs virtuels.
Une fois les commutateurs virtuels créés, vous pouvez activer les commutateurs pour le trafic de calcul Kubernetes afin de spécifier un profil de charge de travail Kubernetes. Pour ce faire, à l'aide de l'interface utilisateur locale, suivez les étapes décrites dans Configure Compute IPS. Pour ce faire à l'aide de PowerShell, procédez comme suit :
Utilisez l'applet de commande
Get-HcsApplianceInfo
pour obtenir les paramètres actuelsKubernetesPlatform
et les paramètresKubernetesWorkloadProfile
de votre appareil.Utilisez l’applet de commande
Get-HcsKubernetesWorkloadProfiles
pour identifier les profils disponibles sur votre appareil Azure Stack Edge.[Device-IP]: PS>Get-HcsKubernetesWorkloadProfiles Type Description ---- ----------- AP5GC an Azure Private MEC solution SAP a SAP Digital Manufacturing for Edge Computing or another Microsoft partner solution NONE other workloads [Device-IP]: PS>
Utilisez l’applet de commande
Set-HcsKubernetesWorkloadProfile
pour définir le profil de charge de travail pour AP5GC, une solution Azure Private MEC.L’exemple suivant montre comment utiliser cette cmdlet :
Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
Voici un exemple de sortie pour cette applet de commande :
[10.100.10.10]: PS>KubernetesPlatform : AKS [10.100.10.10]: PS>KubernetesWorkloadProfile : AP5GC [10.100.10.10]: PS>
Modifier des sous-réseaux de pod et de service Kubernetes
Si vous exécutez l’option Autres charges de travail dans votre environnement, par défaut, Kubernetes sur votre appareil Azure Stack Edge utilise les sous-réseaux 172.27.0.0/16 et 172.28.0.0/16 pour le pod et le service respectivement. Si ces sous-réseaux sont déjà utilisés dans votre réseau, vous pouvez exécuter la cmdlet Set-HcsKubeClusterNetworkInfo
pour les modifier.
Vous souhaitez effectuer cette configuration avant de configurer le calcul à partir du portail Azure, car le cluster Kubernetes est créé au cours de cette étape.
Connectez-vous à l'interface PowerShell de l'appareil.
À partir de l’interface PowerShell de l’appareil, exécutez :
Set-HcsKubeClusterNetworkInfo -PodSubnet <subnet details> -ServiceSubnet <subnet details>
Remplacez les <détails du sous-réseau > par la plage de sous-réseau que vous souhaitez utiliser.
Une fois que vous avez exécuté cette commande, vous pouvez utiliser la commande
Get-HcsKubeClusterNetworkInfo
pour vérifier que les sous-réseaux de pod et de service ont été modifiés.
Voici un exemple de sortie pour cette commande.
[10.100.10.10]: PS>Set-HcsKubeClusterNetworkInfo -PodSubnet 10.96.0.1/16 -ServiceSubnet 10.97.0.1/16
[10.100.10.10]: PS>Get-HcsKubeClusterNetworkInfo
Id PodSubnet ServiceSubnet
-- --------- -------------
6dbf23c3-f146-4d57-bdfc-76cad714cfd1 10.96.0.1/16 10.97.0.1/16
[10.100.10.10]: PS>
Déboguer les problèmes Kubernetes liés à IoT Edge
Avant de commencer, vous devez disposer des éléments suivants :
- Réseau de calcul configuré. Consultez Tutoriel : configurer le réseau pour Azure Stack Edge Pro avec GPU.
- Rôle de calcul configuré sur votre appareil.
Sur un appareil GPU Azure Stack Edge Pro sur lequel le rôle de calcul est configuré, vous pouvez dépanner ou superviser l’appareil à l’aide de deux ensembles de commandes distincts.
- À l’aide des commandes
iotedge
. Ces commandes sont disponibles pour les opérations de base pour votre appareil. - À l’aide des commandes
kubectl
. Ces commandes sont disponibles pour un ensemble complet d’opérations pour votre appareil.
Pour exécuter les jeux de commandes ci-dessus, vous devez vous connecter à l’interface PowerShell.
Utiliser les commandes iotedge
Pour afficher la liste des commandes disponibles, connectez-vous à l’interface PowerShell et utilisez la fonction iotedge
.
[10.100.10.10]: PS>iotedge -?
Usage: iotedge COMMAND
Commands:
list
logs
restart
[10.100.10.10]: PS>
Le tableau ci-après contient une brève description des commandes disponibles pour iotedge
:
commande | Description |
---|---|
list |
Faire la liste des modules |
logs |
Extraire les journaux d’un module |
restart |
Arrêter et redémarrer un module |
Répertorier tous les modules IoT Edge
Pour répertorier tous les modules en cours d’exécution sur votre appareil, utilisez la commande iotedge list
.
Voici un exemple de sortie de cette commande. Cette commande répertorie tous les modules, la configuration associée et les adresses IP externes associées aux modules. Par exemple, vous pouvez accéder à l’application WebServer à l’adresse URL https://10.128.44.244
.
[10.100.10.10]: PS>iotedge list
NAME STATUS DESCRIPTION CONFIG EXTERNAL-IP
---- ------ ----------- ------ -----
gettingstartedwithgpus Running Up 10 days mcr.microsoft.com/intelligentedge/solutions:latest
iotedged Running Up 10 days azureiotedge/azureiotedge-iotedged:0.1.0-beta10 <none>
edgehub Running Up 10 days mcr.microsoft.com/azureiotedge-hub:1.0 10.128.44.243
edgeagent Running Up 10 days azureiotedge/azureiotedge-agent:0.1.0-beta10
webserverapp Running Up 10 days nginx:stable 10.128.44.244
[10.100.10.10]: PS>
Redémarrer les modules
Vous pouvez utiliser la commande list
pour répertorier tous les modules en cours d’exécution sur votre appareil. Identifiez ensuite le nom du module que vous souhaitez redémarrer et utilisez-le avec la restart
commande.
Voici un exemple de sortie de la procédure de redémarrage d’un module. En fonction de la description relative à la durée d’exécution du module, vous pouvez voir que cuda-sample1
a été redémarré.
[10.100.10.10]: PS>iotedge list
NAME STATUS DESCRIPTION CONFIG EXTERNAL-IP PORT(S)
---- ------ ----------- ------ ----------- -------
edgehub Running Up 5 days mcr.microsoft.com/azureiotedge-hub:1.0 10.57.48.62 443:31457/TCP,5671:308
81/TCP,8883:31753/TCP
iotedged Running Up 7 days azureiotedge/azureiotedge-iotedged:0.1.0-beta13 <none> 35000/TCP,35001/TCP
cuda-sample2 Running Up 1 days nvidia/samples:nbody
edgeagent Running Up 7 days azureiotedge/azureiotedge-agent:0.1.0-beta13
cuda-sample1 Running Up 1 days nvidia/samples:nbody
[10.100.10.10]: PS>iotedge restart cuda-sample1
[10.100.10.10]: PS>iotedge list
NAME STATUS DESCRIPTION CONFIG EXTERNAL-IP PORT(S)
---- ------ ----------- ------ ----------- -------
edgehub Running Up 5 days mcr.microsoft.com/azureiotedge-hub:1.0 10.57.48.62 443:31457/TCP,5671:30
881/TCP,8883:31753/TC
P
iotedged Running Up 7 days azureiotedge/azureiotedge-iotedged:0.1.0-beta13 <none> 35000/TCP,35001/TCP
cuda-sample2 Running Up 1 days nvidia/samples:nbody
edgeagent Running Up 7 days azureiotedge/azureiotedge-agent:0.1.0-beta13
cuda-sample1 Running Up 4 minutes nvidia/samples:nbody
[10.100.10.10]: PS>
Obtenir les journaux des modules
Utilisez la commande logs
pour obtenir les journaux des modules IoT Edge en cours d’exécution sur votre appareil.
Si une erreur s’est produite lors de la création de l’image de conteneur ou lors de l’extraction de l’image, exécutez logs edgeagent
. edgeagent
est le conteneur de runtime IoT Edge qui est responsable de la mise en service des autres conteneurs. Étant donné que logs edgeagent
vide les journaux, un bon moyen de voir les erreurs récentes consiste à utiliser l’option --tail
0`.
Voici un exemple de sortie :
[10.100.10.10]: PS>iotedge logs cuda-sample2 --tail 10
[10.100.10.10]: PS>iotedge logs edgeagent --tail 10
<6> 2021-02-25 00:52:54.828 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:52:54.829 +00:00 [INF] - Plan execution ended for deployment 11
<6> 2021-02-25 00:53:00.191 +00:00 [INF] - Plan execution started for deployment 11
<6> 2021-02-25 00:53:00.191 +00:00 [INF] - Executing command: "Create an EdgeDeployment with modules: [cuda-sample2, edgeAgent, edgeHub, cuda-sample1]"
<6> 2021-02-25 00:53:00.212 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:53:00.212 +00:00 [INF] - Plan execution ended for deployment 11
<6> 2021-02-25 00:53:05.319 +00:00 [INF] - Plan execution started for deployment 11
<6> 2021-02-25 00:53:05.319 +00:00 [INF] - Executing command: "Create an EdgeDeployment with modules: [cuda-sample2, edgeAgent, edgeHub, cuda-sample1]"
<6> 2021-02-25 00:53:05.412 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:53:05.412 +00:00 [INF] - Plan execution ended for deployment 11
[10.100.10.10]: PS>
Remarque
Les méthodes directes, telles que GetModuleLogs ou UploadModuleLogs, ne sont pas prises en charge par IoT Edge sur Kubernetes sur votre appareil Azure Stack Edge.
Utiliser des commandes kubectl
Sur un appareil GPU Azure Stack Edge Pro sur lequel le rôle de calcul est configuré, toutes les commandes kubectl
sont disponibles pour surveiller ou dépanner les modules. Pour afficher la liste des commandes disponibles, exécutez kubectl --help
à partir de la fenêtre Commande.
C:\Users\myuser>kubectl --help
kubectl controls the Kubernetes cluster manager.
Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/
Basic Commands (Beginner):
create Create a resource from a file or from stdin.
expose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service
run Run a particular image on the cluster
set Set specific features on objects
run-container Run a particular image on the cluster. This command is deprecated, use "run" instead
==============CUT=============CUT============CUT========================
Usage:
kubectl [flags] [options]
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
C:\Users\myuser>
Pour obtenir la liste complète des commandes kubectl
, accédez à l’kubectl
aide-mémoire.
Pour faire en sorte que l’adresse IP d’un service ou d’un module soit exposée en dehors du cluster Kubernetes
Pour obtenir l’adresse IP d’un service d’équilibrage de charge ou de modules exposés en dehors de Kubernetes, exécutez la commande suivante :
kubectl get svc -n iotedge
Voici un exemple de sortie de tous les services ou modules exposés en dehors du cluster Kubernetes.
[10.100.10.10]: PS>kubectl get svc -n iotedge
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
edgehub LoadBalancer 10.103.52.225 10.128.44.243 443:31987/TCP,5671:32336/TCP,8883:30618/TCP 34h
iotedged ClusterIP 10.107.236.20 <none> 35000/TCP,35001/TCP 3d8h
webserverapp LoadBalancer 10.105.186.35 10.128.44.244 8080:30976/TCP 16h
[10.100.10.10]: PS>
L’adresse IP dans la colonne IP externe correspond au point de terminaison externe pour le service ou le module. Vous pouvez également Récupérer l’adresse IP externe dans le tableau de bord Kubernetes.
Pour vérifier si le module a été déployé avec succès
Les modules de calcul sont des conteneurs avec une logique métier implémentée. Un pod Kubernetes peut avoir plusieurs conteneurs en cours d’exécution.
Pour vérifier si un module de calcul est correctement déployé, connectez-vous à l’interface PowerShell de l’appareil.
Exécutez la commande get pods
et vérifiez l’exécution du conteneur (correspondant au module de calcul).
Pour obtenir la liste de tous les pods en cours d’exécution dans un espace de noms spécifique, exécutez la commande suivante :
get pods -n <namespace>
Pour vérifier les modules déployés via IoT Edge, exécutez la commande suivante :
get pods -n iotedge
Voici un exemple de sortie de tous les pods en cours d’exécution dans l’espace de noms iotedge
.
[10.100.10.10]: PS>kubectl get pods -n iotedge
NAME READY STATUS RESTARTS AGE
edgeagent-cf6d4ffd4-q5l2k 2/2 Running 0 20h
edgehub-8c9dc8788-2mvwv 2/2 Running 0 56m
filemove-66c49984b7-h8lxc 2/2 Running 0 56m
iotedged-675d7f4b5f-9nml4 1/1 Running 0 20h
[10.100.10.10]: PS>
L’État indique que tous pods de l’espace de noms sont en cours d’exécution et Prêt indique le nombre de conteneurs déployés dans un pod. Dans l’exemple précédent, tous les pods sont en cours d’exécution et tous les modules déployés dans chaque pod sont en cours d’exécution.
Pour vérifier les modules déployés via Azure Arc, exécutez la commande suivante :
get pods -n azure-arc
Vous pouvez également Vous connecter au tableau de bord Kubernetes pour voir les déploiements IoT Edge ou Azure Arc.
Pour obtenir une sortie plus détaillée d’un pod spécifique pour un espace de noms donné, vous pouvez exécuter la commande suivante :
kubectl describe pod <pod name> -n <namespace>
Un exemple de sortie est présenté ici.
[10.100.10.10]: PS>kubectl describe pod filemove-66c49984b7 -n iotedge
Name: filemove-66c49984b7-h8lxc
Namespace: iotedge
Priority: 0
Node: k8s-1hwf613cl-1hwf613/10.139.218.12
Start Time: Thu, 14 May 2020 12:46:28 -0700
Labels: net.azure-devices.edge.deviceid=myasegpu-edge
net.azure-devices.edge.hub=myasegpu2iothub.azure-devices.net
net.azure-devices.edge.module=filemove
pod-template-hash=66c49984b7
Annotations: net.azure-devices.edge.original-moduleid: filemove
Status: Running
IP: 172.17.75.81
IPs: <none>
Controlled By: ReplicaSet/filemove-66c49984b7
Containers:
proxy:
Container ID: docker://fd7975ca78209a633a1f314631042a0892a833b7e942db2e7708b41f03e8daaf
Image: azureiotedge/azureiotedge-proxy:0.1.0-beta8
Image ID: docker://sha256:5efbf6238f13d24bab9a2b499e5e05bc0c33ab1587d6cf6f289cdbe7aa667563
Port: <none>
Host Port: <none>
State: Running
Started: Thu, 14 May 2020 12:46:30 -0700
Ready: True
Restart Count: 0
Environment:
PROXY_LOG: Debug
=============CUT===============================CUT===========================
Volumes:
config-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: iotedged-proxy-config
Optional: false
trust-bundle-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: iotedged-proxy-trust-bundle
Optional: false
myasesmb1local:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: myasesmb1local
ReadOnly: false
myasesmb1:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: myasesmb1
ReadOnly: false
filemove-token-pzvw8:
Type: Secret (a volume populated by a Secret)
SecretName: filemove-token-pzvw8
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>
[10.100.10.10]: PS>
Pour obtenir les journaux d’activité de conteneur
Pour obtenir les journaux d’un module, exécutez la commande suivante à partir de l’interface PowerShell de l’appareil :
kubectl logs <pod_name> -n <namespace> --all-containers
Étant donné que l’indicateur all-containers
vide les journaux pour tous les conteneurs, un bon moyen de voir les erreurs récentes est d’utiliser l’option --tail 10
.
Voici un exemple de sortie.
[10.100.10.10]: PS>kubectl logs filemove-66c49984b7-h8lxc -n iotedge --all-containers --tail 10
DEBUG 2020-05-14T20:40:42Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 1 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:12Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 1 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
05/14/2020 19:46:44: Info: Opening module client connection.
05/14/2020 19:46:45: Info: Open done.
05/14/2020 19:46:45: Info: Initializing with input: /home/input, output: /home/output, protocol: Amqp.
05/14/2020 19:46:45: Info: IoT Hub module client initialized.
[10.100.10.10]: PS>
Modifier la mémoire et les limites du processeur pour le nœud Worker Kubernetes
Pour modifier la mémoire ou les limites du processeur pour le nœud Worker Kubernetes, procédez comme suit :
Connectez-vous à l'interface PowerShell de l'appareil.
Pour obtenir les ressources actuelles du nœud Worker et les options de rôle, exécutez la commande suivante :
Get-AzureDataBoxEdgeRole
Voici un exemple de sortie : Notez les valeurs de
Name
etCompute
dans la sectionResources
.MemoryInBytes
etProcessorCount
indiquent les valeurs de mémoire et de nombre de processeurs pour le nœud Worker Kubernetes.[10.100.10.10]: PS>Get-AzureDataBoxEdgeRole ImageDetail : Name:mcr.microsoft.com/azureiotedge-agent Tag:1.0 PlatformType:Linux EdgeDeviceConnectionString : IotDeviceConnectionString : HubHostName : ase-srp-007.azure-devices.net IotDeviceId : srp-007-storagegateway EdgeDeviceId : srp-007-edge Version : Id : 6ebeff9f-84c5-49a7-890c-f5e05520a506 Name : IotRole Type : IOT Resources : Compute: MemoryInBytes:34359738368 ProcessorCount:12 VMProfile: Storage: EndpointMap: EndpointId:c0721210-23c2-4d16-bca6-c80e171a0781 TargetPath:mysmbedgecloudshare1 Name:mysmbedgecloudshare1 Protocol:SMB EndpointId:6557c3b6-d3c5-4f94-aaa0-6b7313ab5c74 TargetPath:mysmbedgelocalshare Name:mysmbedgelocalshare Protocol:SMB RootFileSystemStorageSizeInBytes:0 HostPlatform : KubernetesCluster State : Created PlatformType : Linux HostPlatformInstanceId : 994632cb-853e-41c5-a9cd-05b36ddbb190 IsHostPlatformOwner : True IsCreated : True [10.100.10.10]: PS>
Pour modifier les valeurs de mémoire et de processeurs pour le nœud Worker, exécutez la commande suivante :
Set-AzureDataBoxEdgeRoleCompute -Name <Name value from the output of Get-AzureDataBoxEdgeRole> -Memory <Value in Bytes> -ProcessorCount <No. of cores>
Voici un exemple de sortie :
[10.100.10.10]: PS>Set-AzureDataBoxEdgeRoleCompute -Name IotRole -MemoryInBytes 32GB -ProcessorCount 16 ImageDetail : Name:mcr.microsoft.com/azureiotedge-agent Tag:1.0 PlatformType:Linux EdgeDeviceConnectionString : IotDeviceConnectionString : HubHostName : ase-srp-007.azure-devices.net IotDeviceId : srp-007-storagegateway EdgeDeviceId : srp-007-edge Version : Id : 6ebeff9f-84c5-49a7-890c-f5e05520a506 Name : IotRole Type : IOT Resources : Compute: MemoryInBytes:34359738368 ProcessorCount:16 VMProfile: Storage: EndpointMap: EndpointId:c0721210-23c2-4d16-bca6-c80e171a0781 TargetPath:mysmbedgecloudshare1 Name:mysmbedgecloudshare1 Protocol:SMB EndpointId:6557c3b6-d3c5-4f94-aaa0-6b7313ab5c74 TargetPath:mysmbedgelocalshare Name:mysmbedgelocalshare Protocol:SMB RootFileSystemStorageSizeInBytes:0 HostPlatform : KubernetesCluster State : Created PlatformType : Linux HostPlatformInstanceId : 994632cb-853e-41c5-a9cd-05b36ddbb190 IsHostPlatformOwner : True IsCreated : True [10.100.10.10]: PS>
Lorsque vous modifiez la mémoire et l’utilisation du processeur, suivez ces instructions.
- La mémoire par défaut correspond à 25 % de la spécification de l’appareil.
- Le nombre de processeurs par défaut représente 30 % de la spécification de l’appareil.
- Quand vous modifiez les valeurs de mémoire et de nombre de processeurs, nous vous recommandons de faire varier les valeurs de mémoire de l’appareil et de nombre de processeurs entre 15 % et 60 %.
- Nous vous conseillons d’utiliser une limite supérieure de 60 % afin de disposer de suffisamment de ressources pour les composants système.
Se connecter au contrôleur BMC
Remarque
Le contrôleur de gestion de la carte mère (BMC) n’est pas disponible sur Azure Stack Edge Pro 2 et Azure Stack Edge Mini R. Les applets de commande décrites dans cette section s’appliquent uniquement au GPU Azure Stack Edge Pro et à Azure Stack Edge Pro R.
BMC est utilisé pour surveiller et gérer à distance votre appareil. Cette section décrit les cmdlets qui peuvent être utilisées pour gérer la configuration du contrôleur BMC. Avant d'exécuter l'une de ces cmdlets, consultez Se connecter à l'interface PowerShell de l'appareil.
Get-HcsNetBmcInterface
: Utilisez cette applet de commande pour obtenir les propriétés de configuration réseau du BMC, par exemple,IPv4Address
,IPv4Gateway
,IPv4SubnetMask
,DhcpEnabled
.Voici un exemple de sortie :
[10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.53.186 10.128.52.1 255.255.252.0 False [10.100.10.10]: PS>
Set-HcsNetBmcInterface
: Vous pouvez utiliser cette applet de commande des deux manières suivantes.Utilisez la cmdlet pour activer ou désactiver la configuration DHCP du contrôleur BMC en utilisant la valeur appropriée pour le paramètre
UseDhcp
.Set-HcsNetBmcInterface -UseDhcp $true
Voici un exemple de sortie :
[10.100.10.10]: PS>Set-HcsNetBmcInterface -UseDhcp $true [10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.54.8 10.128.52.1 255.255.252.0 True [10.100.10.10]: PS>
Utilisez cette cmdlet pour configurer la configuration statique du contrôleur BMC. Vous pouvez spécifier les valeurs des éléments suivants :
IPv4Address
,IPv4Gateway
etIPv4SubnetMask
.Set-HcsNetBmcInterface -IPv4Address "<IPv4 address of the device>" -IPv4Gateway "<IPv4 address of the gateway>" -IPv4SubnetMask "<IPv4 address for the subnet mask>"
Voici un exemple de sortie :
[10.100.10.10]: PS>Set-HcsNetBmcInterface -IPv4Address 10.128.53.186 -IPv4Gateway 10.128.52.1 -IPv4SubnetMask 255.255.252.0 [10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.53.186 10.128.52.1 255.255.252.0 False [10.100.10.10]: PS>
Set-HcsBmcPassword
: Utilisez cette applet de commande pour modifier le mot de passe BMC pourEdgeUser
. Le nom d'utilisateur (EdgeUser
) est sensible à la casse.Voici un exemple de sortie :
[10.100.10.10]: PS> Set-HcsBmcPassword -NewPassword "Password1" [10.100.10.10]: PS>
Fermeture de la session à distance
Pour quitter la session PowerShell à distance, fermez la fenêtre PowerShell.
Étapes suivantes
- Déployer Azure Stack Edge Pro avec GPU dans le portail Azure.