Een GPU Azure Stack Edge Pro apparaat beheren via Windows PowerShell

van toepassing op:  Ja voor Pro GPU SKU Azure stack Edge Pro-GPU  Ja voor Pro r SKU Azure stack Edge Pro r  Ja voor mini-r SKU Azure stack Edge-mini                           -r   

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

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

Verbinding maken met de PowerShell-interface

Afhankelijk van het besturingssysteem van de client zijn de procedures voor het extern verbinden met het apparaat verschillend.

Extern verbinding maken vanaf een Windows-client

Vereisten

Zorg voordat u begint voor het volgende:

  • Uw Windows-client wordt uitgevoerd Windows PowerShell versie 5.0 of hoger.

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

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

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

    Hier is een voorbeeld van een vermelding voor het hosts bestand:

    10.100.10.10 1HXQG13.wdshcsso.com

Gedetailleerde stappen

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

  1. Voer een Windows PowerShell uit als beheerder.

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

    winrm quickconfig
    

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

  3. Wijs een variabele toe aan de connection string in het bestand wordt hosts gebruikt.

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

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

  4. Als u deze connection string 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 is geüpload naar uw apparaat, ook is geïnstalleerd op de client die toegang heeft tot uw apparaat.

  6. Geef het wachtwoord op wanneer u hier om wordt gevraagd. Gebruik hetzelfde wachtwoord dat wordt gebruikt om u aan te melden bij de lokale webgebruikersinterface. Het standaardwachtwoord voor de lokale webinterface is Password1. Wanneer u verbinding met het apparaat hebt gemaakt met behulp van 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 optie -UseSSL gebruikt, gebruikt u een remoting via PowerShell via https. U wordt aangeraden altijd https te gebruiken om op afstand verbinding te maken via PowerShell. Binnen vertrouwde netwerken is remoting via PowerShell via http acceptabel. U kunt eerst externe PowerShell via http inschakelen in de lokale gebruikersinterface. Vervolgens kunt u zonder de optie verbinding maken met de PowerShell-interface van het apparaat met behulp van de voorgaande -UseSSL procedure.

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 is een voorbeeld van uitvoer 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 versie 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 het apparaat, kunt u een ondersteunings pakket maken op basis van de systeem Logboeken. Microsoft Ondersteuning gebruikt dit pakket om de problemen op te lossen. Volg deze stappen voor het maken van een ondersteunings pakket:

  1. Verbinding maken met de Power shell-interface van uw apparaat.

  2. Gebruik de Get-HcsNodeSupportPackage opdracht om een ondersteunings pakket 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 volgende para meters worden gebruikt:

    • -Path -Geef het netwerk of het lokale pad op waarnaar u het ondersteunings pakket wilt kopiëren. lang
    • -Credential -Geef de referenties op voor toegang tot het beveiligde pad.
    • -Zip -Geef op of u een zip-bestand wilt genereren.
    • -Include -Geef op of u de onderdelen wilt opnemen die moeten worden opgenomen in het ondersteunings pakket. Als niet wordt opgegeven, Default wordt ervan uitgegaan.
    • -IncludeArchived -Geef op of u gearchiveerde logboeken wilt toevoegen aan het ondersteunings pakket.
    • -IncludePeriodicStats -Geef op of u periodieke Statie logboeken wilt gebruiken in het ondersteunings pakket.

Apparaatgegevens weergeven

  1. Verbinding maken met de Power shell-interface.

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

    In het volgende voor beeld 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 een aantal belang rijke informatie over apparaten:

    Parameter Beschrijving
    FriendlyName De beschrijvende naam van het apparaat zoals geconfigureerd via de lokale web-UI tijdens de implementatie van het apparaat. De standaard beschrijvende naam is het serie nummer van het apparaat.
    SerialNumber Het serie nummer van het apparaat is een uniek nummer dat is toegewezen aan de Factory.
    Model Het model voor uw Azure Stack rand of Data Box Gateway apparaat. Het model is fysiek voor Azure Stack Edge en virtueel voor Data Box Gateway.
    FriendlySoftwareVersion De beschrijvende teken reeks die overeenkomt met de versie van de apparaatsoftware. Voor een systeem met Preview wordt de beschrijvende software versie Data Box Edge 1902.
    HcsVersion De versie van de HCS-software die op uw apparaat wordt uitgevoerd. De HCS-software versie 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's weergeven

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

  1. Verbinding maken naar de PowerShell-interface.

  2. Gebruik de Get-HcsGpuNvidiaSmi om de GPU-stuurprogrammagegevens 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 |
    +-------------------------------+----------------------+----------------------+
    

MpS (Multi-Process Service) inschakelen

Een MPS (Multi-Process Service) op Nvidia GPU's biedt een mechanisme waarbij GPU's kunnen worden gedeeld door meerdere taken, waarbij aan elke taak een bepaald percentage van de RESOURCES van de GPU wordt toegewezen. MPS is een preview-functie op uw Azure Stack Edge Pro GPU-apparaat. Als u MPS op uw apparaat wilt inschakelen, volgt u deze stappen:

  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 Compute op dit apparaat geconfigureerd in de Azure Portal.
  2. Verbinding maken met de Power shell-interface.

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

    Start-HcsGpuMPS
    

Notitie

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

Het 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 Reset-HcsAppliance cmdlet om zowel de gegevens schijven als de opstart schijf of alleen de gegevens schijven te wissen. ClearDataMet de BootDisk Opties en kunt u de gegevens schijven en de opstart schijf respectievelijk wissen.

De BootDisk Switch wist de opstart schijf en maakt het apparaat onbruikbaar. Deze optie dient alleen te worden gebruikt wanneer het apparaat moet worden geretourneerd naar Microsoft. Zie het apparaat terugsturen naar micro softvoor meer informatie.

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. Verbinding maken met de Power shell-interface.

  2. Typ in de opdrachtprompt:

    Reset-HcsAppliance -ClearData -BootDisk

    In het volgende voor beeld ziet u hoe u deze cmdlet gebruikt:

    [10.128.24.33]: PS>Reset-HcsAppliance -ClearData -BootDisk
    
    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 op halen

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

  1. Verbinding maken naar de PowerShell-interface.

  2. Gebruik de 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 is 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 voor de netwerk share op. Wanneer u deze cmdlet hebt uitgevoerd, moet u het wachtwoord voor de share opgeven.
    • FullLogCollection: Deze parameter zorgt ervoor dat het logboekpakket alle rekenlogboeken bevat. Standaard bevat het logboekpakket slechts een subset van logboeken.

Subnetten voor Kubernetes-pods en -services wijzigen

Kubernetes op uw Azure Stack Edge-apparaat maakt standaard gebruik van subnetten 172.27.0.0/16 en 172.28.0.0/16 voor pods en service. 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 configureert vanaf de Azure Portal 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 door <subnet details> het subnetbereik dat u wilt gebruiken.

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

Hier is 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 waar de rekenrol is geconfigureerd, kunt u problemen met het apparaat oplossen of controleren met behulp van twee verschillende sets opdrachten.

  • Met iotedge behulp van opdrachten. Deze opdrachten zijn beschikbaar voor basisbewerkingen voor uw apparaat.
  • Met kubectl behulp van opdrachten. Deze opdrachten zijn beschikbaar voor een uitgebreide reeks bewerkingen voor uw apparaat.

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

Opdrachten iotedge gebruiken

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

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

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

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

Een lijst met alle IoT Edge maken

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

Hier is een voorbeeld van de uitvoer van deze opdracht. Met deze opdracht worden alle modules, de bijbehorende configuratie en de externe IP's die aan de modules zijn gekoppeld, vermeld. 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 opdracht list gebruiken om alle modules weer te geven die op uw apparaat worden uitgevoerd. Identificeer vervolgens de naam van de module die u opnieuw wilt starten en gebruik deze met de restart opdracht .

Hier is een voorbeeld van de uitvoer van het opnieuw starten van een module. Op basis van de beschrijving van hoe lang de module wordt uitgevoerd, kunt u zien dat cuda-sample1 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 op halen

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

Als er een fout is opgetreden bij het maken van de containerafbeelding of tijdens het binnenhalen van de afbeelding, voer dan logs edgeagent uit. edgeagent is de IoT Edge runtimecontainer die verantwoordelijk is voor het inrichten van andere containers. Omdat alle logboeken dumpt, is het een goede manier om de recente fouten te zien met de logs edgeagent optie --tail 0'.

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 op IoT Edge kubernetes op uw Azure Stack Edge.

Kubectl-opdrachten gebruiken

Op een Azure Stack Edge Pro GPU-apparaat waar de rekenrol is geconfigureerd, zijn alle opdrachten beschikbaar voor het bewaken of kubectl oplossen van problemen met modules. Voer uit vanuit het opdrachtvenster om een lijst met beschikbare kubectl --help opdrachten weer te geven.

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 een uitgebreide kubectl lijst kubectl met opdrachten.

IP-adres van service of module buiten Kubernetes-cluster zichtbaar maken

Voer de volgende opdracht uit om het IP-adres van een taakverdelingsservice of modules buiten Kubernetes beschikbaar te maken:

kubectl get svc -n iotedge

Hieronder volgt een voorbeeld van de uitvoer van alle services of modules die buiten het Kubernetes-cluster beschikbaar worden gemaakt.

[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-adres komt overeen met het externe eindpunt voor de service of de module. U kunt ook het externe IP-adres in het Kubernetes-dashboard op halen.

Controleren of de module is geïmplementeerd

Rekenmodules zijn containers met een geïmplementeerde bedrijfslogica. 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 op te halen met alle pods die worden uitgevoerd in een specifieke naamruimte:

get pods -n <namespace>

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

get pods -n iotedge

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

[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 status Status geeft aan dat alle pods in de naamruimte worden uitgevoerd en de Status 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 te controleren Azure Arc modules zijn geïmplementeerd:

get pods -n azure-arc

U kunt ook naar Verbinding maken Kubernetes-dashboardgaan om de IoT Edge of Azure Arc zien.

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 op te halen

Voer de volgende opdracht uit vanuit de PowerShell-interface van het apparaat om de logboeken voor een module op te halen:

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

Omdat vlag alle logboeken voor alle containers dumpt, is het een goede manier om de recente fouten te zien met all-containers de optie --tail 10 .

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

Ga als volgt te werk om de geheugen- of processorlimieten voor het Kubernetes-werk knooppunt te wijzigen:

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

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

    Get-AzureDataBoxEdgeRole

    Hier is een voorbeelduitvoer. Noteer de waarden voor Name en onder de sectie Compute Resources . MemoryInBytes en geven de momenteel toegewezen waarden voor het geheugen en ProcessorCount het aantal processoren voor het Kubernetes-werk knooppunt aan.

    [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 worker-knooppunt 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.

  • Standaardgeheugen is 25% van de apparaatspecificatie.
  • Het standaardprocessortelling is 30% van de apparaatspecificatie.
  • Wanneer u de waarden voor het geheugen- en processortellingen verandert, raden we u aan de waarden te variëren tussen 15% tot 60% van het geheugen van het apparaat en het aantal processoren.
  • We raden een bovengrens van 60% aan, zodat er voldoende resources zijn voor systeemonderdelen.

Verbinding maken naar BMC

Baseboard management controller (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 gaat uitvoeren, Verbinding maken naar de PowerShell-interface van het apparaat.

  • Get-HcsNetBmcInterface: Gebruik deze cmdlet om de netwerkconfiguratie-eigenschappen van de BMC op te halen, bijvoorbeeld IPv4Address , IPv4Gateway , , 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 de DHCP-configuratie voor BMC in of uit te schakelen met behulp van de juiste waarde voor UseDhcp 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 , IPv4Gateway en IPv4SubnetMask opgeven.

      Set-HcsNetBmcInterface -IPv4Address "<IPv4 address of the device>&quot; -IPv4Gateway &quot;<IPv4 address of the gateway>&quot; -IPv4SubnetMask &quot;<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 te EdgeUser wijzigen. De gebruikersnaam - EdgeUser - is case-sensitive.

    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