Share via


Een Azure Stack Edge Pro GPU-apparaat beheren via Windows PowerShell

VAN TOEPASSING OP: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

Met azure Stack Edge Pro GPU-oplossing kunt u gegevens verwerken en verzenden via het netwerk naar Azure. In dit artikel worden enkele configuratie- en beheertaken voor uw Azure Stack Edge Pro GPU-apparaat beschreven. U kunt de Azure-portal, de lokale webinterface of de Windows PowerShell-interface gebruiken om uw apparaat te beheren.

In dit artikel wordt uitgelegd hoe u verbinding kunt maken met de PowerShell-interface van het apparaat en de taken die u met deze interface kunt uitvoeren.

Verbinding maken met de PowerShell-interface

Afhankelijk van het besturingssysteem van de client zijn de procedures om extern verbinding te maken met het apparaat anders.

Extern verbinding maken vanaf een Windows-client

Vereisten

Zorg voordat u begint voor het volgende:

  • Op uw Windows-client wordt Windows PowerShell 5.0 of hoger uitgevoerd.

  • Uw Windows-client heeft de ondertekeningsketen (basiscertificaat) die overeenkomt met het knooppuntcertificaat dat op het apparaat is geïnstalleerd. Zie Certificaat installeren op uw Windows-client voor gedetailleerde instructies.

  • Het hosts bestand dat zich voor C:\Windows\System32\drivers\etc uw Windows-client bevindt, heeft een vermelding die overeenkomt met het knooppuntcertificaat in de volgende indeling:

    <Device IP> <Node serial number>.<DNS domain of the device>

    Hier volgt een voorbeeldvermelding voor het hosts bestand:

    10.100.10.10 1HXQG13.wdshcsso.com

Gedetailleerde stappen

Volg deze stappen om extern verbinding te maken vanaf een Windows-client.

  1. Voer een Windows PowerShell-sessie uit als beheerder.

  2. Zorg ervoor dat de Windows Remote Management-service wordt uitgevoerd op uw client. Typ bij de opdrachtprompt:

    winrm quickconfig
    

    Zie Installatie en configuratie voor Windows Remote Management voor meer informatie.

  3. Wijs een variabele toe aan de verbindingsreeks die in het hosts bestand worden gebruikt.

    $Name = "<Node serial number>.<DNS domain of the device>"
    

    Vervang en vervang <Node serial number> het <DNS domain of the device> serienummer van het knooppunt en het DNS-domein van uw apparaat. U kunt de waarden voor het serienummer van het knooppunt ophalen via de pagina Certificaten en DNS-domein op de pagina Apparaat in de lokale webgebruikersinterface van uw apparaat.

  4. Als u deze verbindingsreeks voor uw apparaat wilt toevoegen aan de lijst met vertrouwde hosts van de client, typt u de volgende opdracht:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Start een Windows PowerShell-sessie op het apparaat:

    Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
    

    Als er een fout wordt weergegeven met betrekking tot de vertrouwensrelatie, controleert u of de ondertekeningsketen van het knooppuntcertificaat dat naar uw apparaat is geüpload, ook is geïnstalleerd op de client die toegang heeft tot uw apparaat.

  6. Geef het wachtwoord op wanneer u hierom wordt gevraagd. Gebruik hetzelfde wachtwoord dat wordt gebruikt om u aan te melden bij de lokale webgebruikersinterface. Het standaardwachtwoord voor de lokale webgebruikersinterface is Password1. Wanneer u verbinding maakt met het apparaat via externe PowerShell, ziet u de volgende voorbeelduitvoer:

    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>
    

Wanneer u de -UseSSL optie gebruikt, krijgt u externe toegang via PowerShell via https. U wordt aangeraden altijd https te gebruiken om extern verbinding te maken via PowerShell. Binnen vertrouwde netwerken is externe communicatie via PowerShell via http acceptabel. U schakelt eerst externe PowerShell in via http in de lokale gebruikersinterface. Vervolgens kunt u verbinding maken met de PowerShell-interface van het apparaat met behulp van de voorgaande procedure zonder de -UseSSL optie.

Als u de certificaten niet gebruikt (we raden u aan de certificaten te gebruiken!), kunt u de certificaatvalidatiecontrole overslaan met behulp van de sessieopties: -SkipCACheck -SkipCNCheck -SkipRevocationCheck

$sessOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck 
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL -SessionOption $sessOptions    

Hier volgt een voorbeelduitvoer bij het overslaan van de certificaatcontrole:

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>

Belangrijk

In de huidige release kunt u alleen via een Windows-client verbinding maken met de PowerShell-interface van het apparaat. De -UseSSL optie werkt niet met de Linux-clients.

Een ondersteuningspakket maken

Als u problemen ondervindt met apparaten, kunt u een ondersteuningspakket maken vanuit de systeemlogboeken. Microsoft Ondersteuning dit pakket gebruikt om de problemen op te lossen. Volg deze stappen om een ondersteuningspakket te maken:

  1. Verbinding maken naar de PowerShell-interface van uw apparaat.

  2. Gebruik de Get-HcsNodeSupportPackage opdracht om een ondersteuningspakket te maken. Het gebruik van de cmdlet is als volgt:

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

    De cmdlet verzamelt logboeken van uw apparaat en kopieert deze logboeken naar een opgegeven netwerk of lokale share.

    De gebruikte parameters zijn als volgt:

    • -Path - Geef het netwerk of het lokale pad op naar het ondersteuningspakket te kopiëren. (vereist)
    • -Credential - Geef de referenties op voor toegang tot het beveiligde pad.
    • -Zip - Geef op om een zip-bestand te genereren.
    • -Include - Geef op dat de onderdelen moeten worden opgenomen in het ondersteuningspakket. Als dit niet is opgegeven, Default wordt ervan uitgegaan.
    • -IncludeArchived - Geef op dat gearchiveerde logboeken in het ondersteuningspakket moeten worden opgenomen.
    • -IncludePeriodicStats - Geef op dat u periodieke logboeken wilt opnemen in het ondersteuningspakket.

Apparaatgegevens weergeven

  1. Maak verbinding met de PowerShell-interface.

  2. Gebruik de opdracht Get-HcsApplianceInfo om de informatie voor uw apparaat op te halen.

    In het volgende voorbeeld ziet u het gebruik van deze 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
    

    Hier volgt een tabel met een overzicht van enkele belangrijke apparaatgegevens:

    Parameter Description
    FriendlyName De beschrijvende naam van het apparaat zoals geconfigureerd via de lokale webgebruikersinterface tijdens de implementatie van het apparaat. De standaard beschrijvende naam is het serienummer van het apparaat.
    SerialNumber Het serienummer van het apparaat is een uniek nummer dat in de fabriek is toegewezen.
    Model Het model voor uw Azure Stack Edge- of Data Box Gateway-apparaat. Het model is fysiek voor Azure Stack Edge en virtueel voor Data Box Gateway.
    FriendlySoftwareVersion De beschrijvende tekenreeks die overeenkomt met de softwareversie van het apparaat. Voor een systeem met preview is de beschrijvende softwareversie Data Box Edge 1902.
    HcsVersion De HCS-softwareversie die op uw apparaat wordt uitgevoerd. De HCS-softwareversie die overeenkomt met Data Box Edge 1902 is bijvoorbeeld 1.4.771.324.
    LocalCapacityInMb De totale lokale capaciteit van het apparaat in Megabits.
    IsRegistered Deze waarde geeft aan of uw apparaat is geactiveerd met de service.

Informatie over GPU-stuurprogramma weergeven

Als de rekenrol op uw apparaat is geconfigureerd, kunt u ook informatie over het GPU-stuurprogramma ophalen via de PowerShell-interface.

  1. Maak verbinding met de PowerShell-interface.

  2. Gebruik de opdracht Get-HcsGpuNvidiaSmi om informatie over het GPU-stuurprogramma voor uw apparaat op te halen.

    In het volgende voorbeeld ziet u het gebruik van deze cmdlet:

    Get-HcsGpuNvidiaSmi
    

    Noteer de stuurprogrammagegevens uit de voorbeelduitvoer van deze cmdlet.

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

Multi-Process Service (MPS) inschakelen

Een MULTI-Process Service (MPS) op Nvidia GPU's biedt een mechanisme waarin GPU's kunnen worden gedeeld door meerdere taken, waarbij elke taak een percentage van de GPU-resources wordt toegewezen. MPS is een preview-functie op uw Azure Stack Edge Pro GPU-apparaat. Voer de volgende stappen uit om MPS in te schakelen op uw apparaat:

  1. Zorg voordat u begint voor het volgende:

    1. U hebt uw Azure Stack Edge Pro-apparaat geconfigureerd en geactiveerd met een Azure Stack Edge-resource in Azure.
    2. U hebt rekenkracht geconfigureerd op dit apparaat in Azure Portal.
  2. Maak verbinding met de PowerShell-interface.

  3. Gebruik de volgende opdracht om MPS in te schakelen op uw apparaat.

    Start-HcsGpuMPS
    

Notitie

Wanneer de apparaatsoftware en het Kubernetes-cluster worden bijgewerkt, blijft de MPS-instelling niet behouden voor de workloads. U moet MPS opnieuw inschakelen.

Uw apparaat opnieuw instellen

Om uw apparaat te herstellen naar de fabrieksinstellingen, moet u alle gegevens op de gegevensschijf en de opstartschijf veilig wissen.

Gebruik de cmdlet Reset-HcsAppliance om zowel de gegevensschijven als de opstartschijf of alleen de gegevensschijven te wissen. Met SecureWipeBootDisk de schakelopties SecureWipeDataDisks kunt u de opstartschijf en de gegevensschijven wissen.

Met de schakeloptie SecureWipeBootDisk wordt de opstartschijf gewist en wordt het apparaat onbruikbaar. Deze optie dient alleen te worden gebruikt wanneer het apparaat moet worden geretourneerd naar Microsoft. Raadpleeg voor meer informatie Het apparaat terugsturen naar Microsoft.

Als u het apparaat opnieuw instelt in de lokale webinterface, worden alleen de gegevensschijven veilig gewist, maar wordt de opstartschijf intact gehouden. De opstartschijf bevat de apparaatconfiguratie.

  1. Maak verbinding met de PowerShell-interface.

  2. Typ bij de opdrachtprompt:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    In het volgende voorbeeld ziet u hoe u deze cmdlet gebruikt:

    [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
    

Rekenlogboeken ophalen

Als de rekenrol op uw apparaat is geconfigureerd, kunt u de rekenlogboeken ook ophalen via de PowerShell-interface.

  1. Maak verbinding met de PowerShell-interface.

  2. Gebruik de opdracht Get-AzureDataBoxEdgeComputeRoleLogs om de rekenlogboeken voor uw apparaat op te halen.

    In het volgende voorbeeld ziet u het gebruik van deze cmdlet:

    Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection    
    

    Hier volgt een beschrijving van de parameters die worden gebruikt voor de cmdlet:

    • Path: Geef een netwerkpad op naar de share waar u het rekenlogboekpakket wilt maken.
    • Credential: Geef de gebruikersnaam op voor de netwerkshare. Wanneer u deze cmdlet uitvoert, moet u het wachtwoord voor de share opgeven.
    • FullLogCollection: Deze parameter zorgt ervoor dat het logboekpakket alle rekenlogboeken bevat. Standaard bevat het logboekpakket alleen een subset van logboeken.

Kubernetes-workloadprofielen wijzigen

Nadat u een cluster hebt gevormd en geconfigureerd en u nieuwe virtuele switches hebt gemaakt, kunt u virtuele netwerken toevoegen of verwijderen die zijn gekoppeld aan uw virtuele switches. Zie Virtuele switches configureren voor gedetailleerde stappen.

Nadat virtuele switches zijn gemaakt, kunt u de switches voor Kubernetes-rekenverkeer inschakelen om een Kubernetes-workloadprofiel op te geven. Als u dit wilt doen met behulp van de lokale gebruikersinterface, gebruikt u de stappen in Reken-IPS configureren. Voer hiervoor de volgende stappen uit met behulp van PowerShell:

  1. Maak verbinding met de PowerShell-interface.

  2. Gebruik de Get-HcsApplianceInfo cmdlet om de huidige KubernetesPlatform en KubernetesWorkloadProfile instellingen voor uw apparaat op te halen.

  3. Gebruik de Get-HcsKubernetesWorkloadProfiles cmdlet om de profielen te identificeren die beschikbaar zijn op uw Azure Stack Edge-apparaat.

    [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>
    
  4. Gebruik de Set-HcsKubernetesWorkloadProfile cmdlet om het workloadprofiel in te stellen voor AP5GC, een Azure Private MEC-oplossing.

    In het volgende voorbeeld ziet u het gebruik van deze cmdlet:

    Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
    

    Hier volgt voorbeelduitvoer voor deze cmdlet:

    [10.100.10.10]: PS>KubernetesPlatform : AKS
    [10.100.10.10]: PS>KubernetesWorkloadProfile : AP5GC
    [10.100.10.10]: PS>
    

Subnetten voor Kubernetes-pods en -services wijzigen

Als u de andere workloads in uw omgeving uitvoert, gebruikt Kubernetes op uw Azure Stack Edge-apparaat standaard subnetten 172.27.0.0/16 en 172.28.0.0/16 voor pods en services. Als deze subnetten al in uw netwerk worden gebruikt, kunt u de Set-HcsKubeClusterNetworkInfo cmdlet uitvoeren om deze subnetten te wijzigen.

U wilt deze configuratie uitvoeren voordat u rekenkracht vanuit Azure Portal configureert wanneer het Kubernetes-cluster in deze stap wordt gemaakt.

  1. Verbinding maken naar de PowerShell-interface van het apparaat.

  2. Voer vanuit de PowerShell-interface van het apparaat het volgende uit:

    Set-HcsKubeClusterNetworkInfo -PodSubnet <subnet details> -ServiceSubnet <subnet details>

    Vervang de details van het <subnet door het subnetbereik> dat u wilt gebruiken.

  3. Zodra u deze opdracht hebt uitgevoerd, kunt u de Get-HcsKubeClusterNetworkInfo opdracht gebruiken om te controleren of de pod- en servicesubnetten zijn gewijzigd.

Hier volgt een voorbeelduitvoer voor deze opdracht.

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

Voordat u begint, moet u het volgende hebben:

Op een Azure Stack Edge Pro GPU-apparaat waarop de rekenrol is geconfigureerd, kunt u problemen met het apparaat oplossen of bewaken met behulp van twee verschillende sets opdrachten.

  • Opdrachten iotedge gebruiken. Deze opdrachten zijn beschikbaar voor basisbewerkingen voor uw apparaat.
  • Opdrachten kubectl gebruiken. Deze opdrachten zijn beschikbaar voor een uitgebreide set bewerkingen voor uw apparaat.

Als u een van de bovenstaande opdrachten wilt uitvoeren, moet u Verbinding maken naar de PowerShell-interface.

Opdrachten gebruiken iotedge

Als u een lijst met beschikbare opdrachten wilt zien, maakt u verbinding met de PowerShell-interface en gebruikt u de iotedge functie.

[10.100.10.10]: PS>iotedge -?                                                                                                                           
Usage: iotedge COMMAND

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

De volgende tabel bevat een korte beschrijving van de opdrachten die beschikbaar zijn voor iotedge:

opdracht Beschrijving
list Modules in lijst weergeven
logs De logboeken van een module ophalen
restart Een module stoppen en opnieuw starten

Alle IoT Edge-modules weergeven

Gebruik de iotedge list opdracht om alle modules weer te geven die op uw apparaat worden uitgevoerd.

Hier volgt een voorbeeld van de uitvoer van deze opdracht. Met deze opdracht worden alle modules, de bijbehorende configuratie en de externe IP-adressen weergegeven die aan de modules zijn gekoppeld. U hebt bijvoorbeeld toegang tot de webserver-app op 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>

Modules opnieuw opstarten

U kunt de list opdracht gebruiken om alle modules weer te geven die op uw apparaat worden uitgevoerd. Identificeer vervolgens de naam van de module die u opnieuw wilt opstarten en gebruik deze met de restart opdracht.

Hier volgt een voorbeelduitvoer van het opnieuw starten van een module. Op basis van de beschrijving van hoelang de module wordt uitgevoerd, kunt u zien dat cuda-sample1 deze opnieuw is opgestart.

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

Modulelogboeken ophalen

Gebruik de logs opdracht om logboeken op te halen voor elke IoT Edge-module die op uw apparaat wordt uitgevoerd.

Als er een fout is opgetreden bij het maken van de containerinstallatiekopie of tijdens het ophalen van de installatiekopie, voert u de opdracht uit logs edgeagent. edgeagent is de IoT Edge-runtimecontainer die verantwoordelijk is voor het inrichten van andere containers. Omdat logs edgeagent alle logboeken worden gedumpt, kunt u de recente fouten zien door de optie --tail 0 te gebruiken.

Hier is een voorbeelduitvoer.

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

Notitie

De directe methoden, zoals GetModuleLogs of UploadModuleLogs, worden niet ondersteund in IoT Edge in Kubernetes op uw Azure Stack Edge.

Kubectl-opdrachten gebruiken

Op een Azure Stack Edge Pro GPU-apparaat waarop de rekenrol is geconfigureerd, zijn alle kubectl opdrachten beschikbaar voor het bewaken of oplossen van problemen met modules. Als u een lijst met beschikbare opdrachten wilt zien, voert u deze uit kubectl --help vanuit het opdrachtvenster.

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>

Ga naar cheatsheet voor kubectl een uitgebreide lijst met opdrachtenkubectl.

IP-adres van de service of module ophalen die buiten het Kubernetes-cluster wordt weergegeven

Voer de volgende opdracht uit om het IP-adres van een taakverdelingsservice of -modules op te halen die buiten de Kubernetes worden weergegeven:

kubectl get svc -n iotedge

Hieronder volgt een voorbeelduitvoer van alle services of modules die buiten het Kubernetes-cluster worden weergegeven.

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

Het IP-adres in de kolom Extern IP komt overeen met het externe eindpunt voor de service of de module. U kunt ook het externe IP-adres ophalen in het Kubernetes-dashboard.

Controleren of de module is geïmplementeerd

Compute-modules zijn containers waarvoor bedrijfslogica is geïmplementeerd. Een Kubernetes-pod kan meerdere containers uitvoeren.

Als u wilt controleren of een rekenmodule is geïmplementeerd, maakt u verbinding met de PowerShell-interface van het apparaat. Voer de get pods opdracht uit en controleer of de container (die overeenkomt met de rekenmodule) wordt uitgevoerd.

Voer de volgende opdracht uit om de lijst met alle pods op te halen die worden uitgevoerd in een specifieke naamruimte:

get pods -n <namespace>

Voer de volgende opdracht uit om de modules te controleren die zijn geïmplementeerd via IoT Edge:

get pods -n iotedge

Hieronder volgt een voorbeelduitvoer van alle pods die worden uitgevoerd in de iotedge naamruimte.

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

De statusstatusgeeft aan dat alle pods in de naamruimte worden uitgevoerd en de gereedheid geeft het aantal containers aan dat in een pod is geïmplementeerd. In het voorgaande voorbeeld worden alle pods uitgevoerd en worden alle modules uitgevoerd die in elk van de pods zijn geïmplementeerd.

Voer de volgende opdracht uit om de modules te controleren die zijn geïmplementeerd via Azure Arc:

get pods -n azure-arc

U kunt ook Verbinding maken naar het Kubernetes-dashboard om IoT Edge- of Azure Arc-implementaties te bekijken.

Voor een uitgebreidere uitvoer van een specifieke pod voor een bepaalde naamruimte kunt u de volgende opdracht uitvoeren:

kubectl describe pod <pod name> -n <namespace>

De voorbeelduitvoer wordt hier weergegeven.

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

Containerlogboeken ophalen

Als u de logboeken voor een module wilt ophalen, voert u de volgende opdracht uit vanuit de PowerShell-interface van het apparaat:

kubectl logs <pod_name> -n <namespace> --all-containers

Omdat all-containers vlag alle logboeken voor alle containers dumpt, kunt u de recente fouten zien door de optie --tail 10te gebruiken.

Hieronder volgt een voorbeelduitvoer.

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

Geheugen of limieten voor processor wijzigen voor Kubernetes-werkknooppunt

Voer de volgende stappen uit om de geheugen- of processorlimieten voor het Kubernetes-werkknooppunt te wijzigen:

  1. Verbinding maken naar de PowerShell-interface van het apparaat.

  2. Voer de volgende opdracht uit om de huidige resources voor het werkknooppunt en de rolopties op te halen:

    Get-AzureDataBoxEdgeRole

    Hier is een voorbeelduitvoer. Noteer de waarden voor Name en Compute onder Resources sectie. MemoryInBytes en ProcessorCount geeft het aantal momenteel toegewezen waarden aan voor geheugen en processor voor het Kubernetes-werkknooppunt.

    [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>
    
  3. Voer de volgende opdracht uit om de waarden van het geheugen en de processors voor het werkknooppunt te wijzigen:

    Set-AzureDataBoxEdgeRoleCompute -Name <Name value from the output of Get-AzureDataBoxEdgeRole> -Memory <Value in Bytes> -ProcessorCount <No. of cores>
    

    Hier is een voorbeelduitvoer.

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

Volg deze richtlijnen tijdens het wijzigen van het geheugen- en processorgebruik.

  • Het standaardgeheugen is 25% van de apparaatspecificatie.
  • Het standaardaantal processoren is 30% van de apparaatspecificatie.
  • Bij het wijzigen van de waarden voor het aantal geheugen en processor wordt u aangeraden de waarden tussen 15% en 60% van het geheugen van het apparaat en het aantal processoren te variëren.
  • We raden een bovengrens van 60% aan, zodat er voldoende resources zijn voor systeemonderdelen.

Verbinding maken naar BMC

Notitie

BMC (Baseboard Management Controller) is niet beschikbaar op Azure Stack Edge Pro 2 en Azure Stack Edge Mini R. De cmdlets die in deze sectie worden beschreven, zijn alleen van toepassing op Azure Stack Edge Pro GPU en Azure Stack Edge Pro R.

BMC wordt gebruikt om uw apparaat op afstand te bewaken en te beheren. In deze sectie worden de cmdlets beschreven die kunnen worden gebruikt voor het beheren van de BMC-configuratie. Voordat u een van deze cmdlets uitvoert, Verbinding maken u naar de PowerShell-interface van het apparaat.

  • Get-HcsNetBmcInterface: Gebruik deze cmdlet om de netwerkconfiguratie-eigenschappen van de BMC op te halen, bijvoorbeeld , IPv4AddressIPv4Gateway, IPv4SubnetMask. DhcpEnabled

    Hier volgt een voorbeeld van uitvoer:

    [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: U kunt deze cmdlet op de volgende twee manieren gebruiken.

    • Gebruik de cmdlet om DHCP-configuratie voor BMC in of uit te schakelen met behulp van de juiste waarde voor UseDhcp de parameter.

      Set-HcsNetBmcInterface -UseDhcp $true
      

      Hier volgt een voorbeeld van uitvoer:

      [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>
      
    • Gebruik deze cmdlet om de statische configuratie voor de BMC te configureren. U kunt de waarden voor IPv4Address, IPv4Gatewayen IPv4SubnetMask.

      Set-HcsNetBmcInterface -IPv4Address "<IPv4 address of the device>" -IPv4Gateway "<IPv4 address of the gateway>" -IPv4SubnetMask "<IPv4 address for the subnet mask>"
      

      Hier volgt een voorbeeld van uitvoer:

      [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: Gebruik deze cmdlet om het BMC-wachtwoord voor EdgeUserte wijzigen. De gebruikersnaam - EdgeUseris hoofdlettergevoelig.

    Hier volgt een voorbeeld van uitvoer:

    [10.100.10.10]: PS> Set-HcsBmcPassword -NewPassword "Password1"
    [10.100.10.10]: PS>
    

De externe sessie afsluiten

Sluit het PowerShell-venster om de externe PowerShell-sessie af te sluiten.

Volgende stappen