Hantera en Azure Stack Edge Pro GPU-enhet via Windows PowerShell

GÄLLER FÖR: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

Med Azure Stack Edge Pro GPU-lösningen kan du bearbeta data och skicka dem via nätverket till Azure. Den här artikeln beskriver några av konfigurations- och hanteringsuppgifterna för din Azure Stack Edge Pro GPU-enhet. Du kan använda Azure-portalen, det lokala webbgränssnittet eller Windows PowerShell-gränssnittet för att hantera din enhet.

Den här artikeln fokuserar på hur du kan ansluta till Enhetens PowerShell-gränssnitt och de uppgifter du kan utföra med det här gränssnittet.

Ansluta till PowerShell-gränssnittet

Beroende på klientens operativsystem skiljer sig procedurerna för att fjärransluta till enheten.

Fjärranslutning från en Windows-klient

Förutsättningar

Innan du börjar bör du kontrollera att:

  • Windows-klienten kör Windows PowerShell 5.0 eller senare.

  • Windows-klienten har signeringskedjan (rotcertifikatet) som motsvarar nodcertifikatet installerat på enheten. Detaljerade anvisningar finns i Installera certifikat på din Windows-klient.

  • Filen hosts som finns på C:\Windows\System32\drivers\etc för Din Windows-klient har en post som motsvarar nodcertifikatet i följande format:

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

    Här är en exempelpost för hosts filen:

    10.100.10.10 1HXQG13.wdshcsso.com

Detaljerade steg

Följ dessa steg för att fjärransluta från en Windows-klient.

  1. Kör en Windows PowerShell-session som administratör.

  2. Kontrollera att Windows Remote Management-tjänsten körs på klienten. Skriv i kommandotolken:

    winrm quickconfig
    

    Mer information finns i Installation och konfiguration för Windows Fjärrhantering.

  3. Tilldela en variabel till den anslutningssträng som används i hosts filen.

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

    Ersätt <Node serial number> och <DNS domain of the device> med enhetens nodserienummer och DNS-domän. Du kan hämta värdena för nodserienumret från sidan Certifikat och DNS-domän från sidan Enhet i enhetens lokala webbgränssnitt.

  4. Om du vill lägga till den här anslutningssträng för enheten i klientens lista över betrodda värdar skriver du följande kommando:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Starta en Windows PowerShell-session på enheten:

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

    Om du ser ett fel som rör förtroenderelation kontrollerar du om signeringskedjan för nodcertifikatet som laddats upp till enheten också är installerad på klienten som har åtkomst till enheten.

  6. Ange lösenordet när du uppmanas att göra det. Använd samma lösenord som används för att logga in på det lokala webbgränssnittet. Standardlösenordet för det lokala webbgränssnittet är Lösenord1. När du ansluter till enheten med hjälp av fjärransluten PowerShell visas följande exempelutdata:

    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>
    

När du använder alternativet -UseSSL fjärrkommunikation via PowerShell via https. Vi rekommenderar att du alltid använder https för fjärranslutning via PowerShell. I betrodda nätverk är fjärrkommunikation via PowerShell via http acceptabelt. Du aktiverar först fjärr-PowerShell via http i det lokala användargränssnittet. Sedan kan du ansluta till PowerShell-gränssnittet på enheten med hjälp av föregående procedur utan alternativet -UseSSL .

Om du inte använder certifikaten (vi rekommenderar att du använder certifikaten!) kan du hoppa över verifieringskontrollen av certifikatet med hjälp av sessionsalternativen: -SkipCACheck -SkipCNCheck -SkipRevocationCheck.

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

Här är ett exempel på utdata när du hoppar över certifikatkontrollen:

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>

Viktigt!

I den aktuella versionen kan du ansluta till PowerShell-gränssnittet för enheten endast via en Windows-klient. Alternativet -UseSSL fungerar inte med Linux-klienterna.

Skapa ett supportpaket

Om du får problem med enheten kan du skapa ett supportpaket från systemloggarna. Microsoft Support använder det här paketet för att felsöka problemen. Följ dessa steg för att skapa ett supportpaket:

  1. Anslut till PowerShell-gränssnittet på enheten.

  2. Get-HcsNodeSupportPackage Använd kommandot för att skapa ett supportpaket. Användningen av cmdleten är följande:

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

    Cmdleten samlar in loggar från enheten och kopierar loggarna till ett angivet nätverk eller en lokal resurs.

    De parametrar som används är följande:

    • -Path – Ange nätverket eller den lokala sökväg som supportpaketet ska kopieras till. (krävs)
    • -Credential – Ange autentiseringsuppgifterna för åtkomst till den skyddade sökvägen.
    • -Zip – Ange för att generera en zip-fil.
    • -Include – Ange att de komponenter som ska ingå i supportpaketet ska inkluderas. Om det inte anges Default antas det.
    • -IncludeArchived – Ange att arkiverade loggar ska inkluderas i supportpaketet.
    • -IncludePeriodicStats – Ange att periodiska statistikloggar ska inkluderas i supportpaketet.

Visa enhetsinformation

  1. Ansluta till PowerShell-gränssnittet.

  2. Get-HcsApplianceInfo Använd för att hämta information för din enhet.

    I följande exempel visas användningen av den här cmdleten:

    [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
    

    Här är en tabell som sammanfattar en del av viktig enhetsinformation:

    Parameter Description
    FriendlyName Det egna namnet på enheten som konfigurerats via det lokala webbgränssnittet under enhetsdistributionen. Standardnamnet är enhetens serienummer.
    Serienummer Enhetens serienummer är ett unikt nummer som tilldelats i fabriken.
    Modell Modellen för din Azure Stack Edge- eller Data Box Gateway-enhet. Modellen är fysisk för Azure Stack Edge och virtuell för Data Box Gateway.
    FriendlySoftwareVersion Den egna strängen som motsvarar enhetsprogramvarans version. För ett system som kör förhandsversionen skulle den användarvänliga programvaruversionen vara Data Box Edge 1902.
    HcsVersion HCS-programvaruversionen som körs på enheten. Till exempel är HCS-programvaruversionen som motsvarar Data Box Edge 1902 1.4.771.324.
    LocalCapacityInMb Enhetens totala lokala kapacitet i Megabits.
    IsRegistered Det här värdet anger om enheten är aktiverad med tjänsten.

Visa information om GPU-drivrutin

Om beräkningsrollen har konfigurerats på enheten kan du också hämta GPU-drivrutinsinformationen via PowerShell-gränssnittet.

  1. Ansluta till PowerShell-gränssnittet.

  2. Get-HcsGpuNvidiaSmi Använd för att hämta GPU-drivrutinsinformationen för din enhet.

    I följande exempel visas användningen av den här cmdleten:

    Get-HcsGpuNvidiaSmi
    

    Anteckna drivrutinsinformationen från exempelutdata för den här cmdleten.

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

Aktivera multiprocesstjänst (MPS)

En multiprocesstjänst (MPS) på Nvidia GPU:er ger en mekanism där GPU:er kan delas av flera jobb, där varje jobb allokeras en viss procentandel av GPU:ns resurser. MPS är en förhandsversionsfunktion på din Azure Stack Edge Pro GPU-enhet. Följ dessa steg för att aktivera MPS på enheten:

  1. Innan du börjar bör du kontrollera att:

    1. Du har konfigurerat och aktiverat din Azure Stack Edge Pro-enhet med en Azure Stack Edge-resurs i Azure.
    2. Du har konfigurerat beräkning på den här enheten i Azure-portalen.
  2. Ansluta till PowerShell-gränssnittet.

  3. Använd följande kommando för att aktivera MPS på enheten.

    Start-HcsGpuMPS
    

Kommentar

När enhetsprogramvaran och Kubernetes-klustret uppdateras behålls inte MPS-inställningen för arbetsbelastningarna. Du måste aktivera MPS igen.

Återställa enheten

Om du återställa enheten måste du på ett säkert sätt rensa alla data på datadisken och startdisken på enheten.

Använd cmdleten Reset-HcsAppliance till att rensa både datadiskarna och startdisken, eller bara datadiskarna. Med SecureWipeBootDisk switcharna och SecureWipeDataDisks kan du rensa startdisken respektive datadiskarna.

Växeln SecureWipeBootDisk rensar startdisken och gör enheten oanvändbar. Den bör bara användas när enheten måste returneras till Microsoft. Mer information finns i artikeln om att returnera enheten till Microsoft.

Om du använder enhetsåterställningen i det lokala webbgränssnittet rensas bara datadiskarna på ett säkert sätt, men startdisken hålls intakt. Startdisken innehåller enhetskonfigurationen.

  1. Ansluta till PowerShell-gränssnittet.

  2. Skriv i kommandotolken:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    I följande exempel visas hur du använder denna 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
    

Hämta beräkningsloggar

Om beräkningsrollen har konfigurerats på enheten kan du även hämta beräkningsloggarna via PowerShell-gränssnittet.

  1. Ansluta till PowerShell-gränssnittet.

  2. Get-AzureDataBoxEdgeComputeRoleLogs Använd för att hämta beräkningsloggarna för din enhet.

    I följande exempel visas användningen av den här cmdleten:

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

    Här är en beskrivning av de parametrar som används för cmdleten:

    • Path: Ange en nätverkssökväg till resursen där du vill skapa beräkningsloggpaketet.
    • Credential: Ange användarnamnet för nätverksresursen. När du kör den här cmdleten måste du ange resurslösenordet.
    • FullLogCollection: Den här parametern säkerställer att loggpaketet innehåller alla beräkningsloggar. Som standard innehåller loggpaketet endast en delmängd av loggarna.

Ändra Kubernetes-arbetsbelastningsprofiler

När du har skapat och konfigurerat ett kluster och skapat nya virtuella växlar kan du lägga till eller ta bort virtuella nätverk som är associerade med dina virtuella växlar. Detaljerade steg finns i Konfigurera virtuella växlar.

När virtuella växlar har skapats kan du aktivera växlarna för Kubernetes-beräkningstrafik för att ange en Kubernetes-arbetsbelastningsprofil. Om du vill göra det med hjälp av det lokala användargränssnittet använder du stegen i Konfigurera beräknings-IPS. Använd följande steg för att göra det med Hjälp av PowerShell:

  1. Ansluta till PowerShell-gränssnittet.

  2. Använd cmdleten Get-HcsApplianceInfo för att hämta aktuella KubernetesPlatform inställningar och KubernetesWorkloadProfile inställningar för din enhet.

  3. Använd cmdleten Get-HcsKubernetesWorkloadProfiles för att identifiera de profiler som är tillgängliga på din Azure Stack Edge-enhet.

    [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. Använd cmdleten Set-HcsKubernetesWorkloadProfile för att ange arbetsbelastningsprofilen för AP5GC, en Azure Private MEC-lösning.

    I följande exempel visas användningen av den här cmdleten:

    Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
    

    Här är exempelutdata för den här cmdleten:

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

Ändra Kubernetes-pod och -tjänstundernät

Om du kör det andra arbetsbelastningsalternativet i din miljö använder Kubernetes på din Azure Stack Edge-enhet som standard undernäten 172.27.0.0/16 och 172.28.0.0/16 för poddar respektive tjänster. Om dessa undernät redan används i nätverket kan du köra cmdleten Set-HcsKubeClusterNetworkInfo för att ändra dessa undernät.

Du vill utföra den här konfigurationen innan du konfigurerar beräkning från Azure-portalen eftersom Kubernetes-klustret skapas i det här steget.

  1. Anslut till Enhetens PowerShell-gränssnitt.

  2. Från PowerShell-gränssnittet på enheten kör du:

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

    Ersätt undernätsinformationen <> med det undernätsintervall som du vill använda.

  3. När du har kört det här kommandot kan du använda Get-HcsKubeClusterNetworkInfo kommandot för att kontrollera att podd- och tjänstundernäten har ändrats.

Här är ett exempel på utdata för det här kommandot.

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

Innan du börjar måste du ha:

På en Azure Stack Edge Pro GPU-enhet som har beräkningsrollen konfigurerad kan du felsöka eller övervaka enheten med hjälp av två olika uppsättningar kommandon.

  • Använda iotedge kommandon. Dessa kommandon är tillgängliga för grundläggande åtgärder för din enhet.
  • Använda kubectl kommandon. Dessa kommandon är tillgängliga för en omfattande uppsättning åtgärder för din enhet.

Om du vill köra någon av ovanstående kommandon måste du Anslut till PowerShell-gränssnittet.

Använda iotedge kommandon

Om du vill se en lista över tillgängliga kommandon ansluter du till PowerShell-gränssnittet och använder iotedge funktionen.

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

I följande tabell finns en kort beskrivning av de kommandon som är tillgängliga för iotedge:

kommando beskrivning
list Lista med moduler
logs Hämta loggarna för en modul
restart Stoppa och starta om en modul

Visa en lista över alla IoT Edge-moduler

Om du vill visa en lista över alla moduler som körs på enheten använder du iotedge list kommandot .

Här är ett exempel på utdata från det här kommandot. Det här kommandot visar alla moduler, tillhörande konfiguration och de externa IP-adresser som är associerade med modulerna. Du kan till exempel komma åt webbserverappen 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>

Starta om moduler

Du kan använda list kommandot för att visa en lista över alla moduler som körs på enheten. Identifiera sedan namnet på modulen som du vill starta om och använda den restart med kommandot .

Här är ett exempel på hur du startar om en modul. Baserat på beskrivningen av hur länge modulen körs kan du se att cuda-sample1 den startades om.

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

Hämta modulloggar

logs Använd kommandot för att hämta loggar för alla IoT Edge-moduler som körs på enheten.

Om det uppstod ett fel när containeravbildningen skapades eller när avbildningen hämtades kör du logs edgeagent. edgeagent är IoT Edge-körningscontainern som ansvarar för etablering av andra containrar. Eftersom logs edgeagent alla loggar dumpas är ett bra sätt att se de senaste felen att använda alternativet --tail 0.

Här är ett exempel på utdata.

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

Kommentar

Direktmetoder som GetModuleLogs eller UploadModuleLogs stöds inte på IoT Edge på Kubernetes på Azure Stack Edge.

Använda kubectl-kommandon

På en Azure Stack Edge Pro GPU-enhet som har beräkningsrollen kubectl konfigurerad är alla kommandon tillgängliga för att övervaka eller felsöka moduler. Om du vill se en lista över tillgängliga kommandon kör kubectl --help du från kommandofönstret.

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>

En omfattande lista över kommandonakubectlfinns i kubectl cheatsheet.

Så här hämtar du IP-adressen för tjänsten eller modulen som exponeras utanför Kubernetes-klustret

Kör följande kommando för att hämta IP-adressen för en belastningsutjämningstjänst eller moduler som exponeras utanför Kubernetes:

kubectl get svc -n iotedge

Följande är ett exempel på utdata från alla tjänster eller moduler som exponeras utanför Kubernetes-klustret.

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

IP-adressen i kolumnen Extern IP motsvarar den externa slutpunkten för tjänsten eller modulen. Du kan också hämta den externa IP-adressen på Kubernetes-instrumentpanelen.

Kontrollera om modulen har distribuerats

Beräkningsmoduler är containrar som har en affärslogik implementerad. En Kubernetes-podd kan ha flera containrar igång.

Om du vill kontrollera om en beräkningsmodul har distribuerats ansluter du till enhetens PowerShell-gränssnitt. get pods Kör kommandot och kontrollera om containern (som motsvarar beräkningsmodulen) körs.

Kör följande kommando för att hämta listan över alla poddar som körs i ett specifikt namnområde:

get pods -n <namespace>

Kör följande kommando för att kontrollera de moduler som distribuerats via IoT Edge:

get pods -n iotedge

Följande är ett exempel på utdata från alla poddar som körs i iotedge namnområdet.

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

Statusstatusen anger att alla poddar i namnområdet körs och Ready anger antalet containrar som distribuerats i en podd. I föregående exempel körs alla poddar och alla moduler som distribueras i var och en av poddarna körs.

Kör följande kommando för att kontrollera de moduler som distribuerats via Azure Arc:

get pods -n azure-arc

Du kan också Anslut till Kubernetes-instrumentpanelen för att se IoT Edge- eller Azure Arc-distributioner.

Om du vill ha mer utförliga utdata från en specifik podd för ett visst namnområde kan du köra följande kommando:

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

Exempelutdata visas här.

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

Hämta containerloggar

Om du vill hämta loggarna för en modul kör du följande kommando från Enhetens PowerShell-gränssnitt:

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

Eftersom all-containers flaggan dumpar alla loggar för alla containrar är ett bra sätt att se de senaste felen att använda alternativet --tail 10.

Följande är ett exempel på utdata.

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

Ändra gränser för minne och processorer för Kubernetes-arbetsnod

Gör följande för att ändra minnes- eller processorgränserna för Kubernetes-arbetsnoden:

  1. Anslut till Enhetens PowerShell-gränssnitt.

  2. Kör följande kommando för att hämta de aktuella resurserna för arbetsnoden och rollalternativen:

    Get-AzureDataBoxEdgeRole

    Här är ett exempel på utdata. Observera värdena för Name och Compute under Resources avsnittet. MemoryInBytes och ProcessorCount anger de för närvarande tilldelade värdena minne och processorantal för Kubernetes-arbetsnoden.

    [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. Om du vill ändra värdena för minne och processorer för arbetsnoden kör du följande kommando:

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

    Här är ett exempel på utdata.

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

När du ändrar minnes- och processoranvändningen följer du dessa riktlinjer.

  • Standardminnet är 25 % av enhetsspecifikationen.
  • Standardantalet processorer är 30 % av enhetsspecifikationen.
  • När du ändrar värdena för antalet minne och processorer rekommenderar vi att du varierar värdena mellan 15 % och 60 % av enhetens minne och antalet processorer.
  • Vi rekommenderar en övre gräns på 60 % så att det finns tillräckligt med resurser för systemkomponenter.

Anslut till BMC

Kommentar

BMC (Baseboard Management Controller) är inte tillgängligt på Azure Stack Edge Pro 2 och Azure Stack Edge Mini R. Cmdletarna som beskrivs i det här avsnittet gäller endast för Azure Stack Edge Pro GPU och Azure Stack Edge Pro R.

BMC används för att fjärrövervaka och hantera din enhet. I det här avsnittet beskrivs de cmdletar som kan användas för att hantera BMC-konfiguration. Innan du kör någon av dessa cmdletar Anslut till enhetens PowerShell-gränssnitt.

  • Get-HcsNetBmcInterface: Använd den här cmdleten för att hämta nätverkskonfigurationsegenskaperna för BMC, IPv4Addresstill exempel , IPv4Gateway, IPv4SubnetMask, . DhcpEnabled

    Här är exempel på utdata:

    [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: Du kan använda den här cmdleten på följande två sätt.

    • Använd cmdleten för att aktivera eller inaktivera DHCP-konfiguration för BMC med hjälp av lämpligt värde för UseDhcp parametern.

      Set-HcsNetBmcInterface -UseDhcp $true
      

      Här är exempel på utdata:

      [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>
      
    • Använd den här cmdleten för att konfigurera den statiska konfigurationen för BMC. Du kan ange värdena för IPv4Address, IPv4Gatewayoch IPv4SubnetMask.

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

      Här är exempel på utdata:

      [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: Använd den här cmdleten för att ändra BMC-lösenordet för EdgeUser. Användarnamnet – EdgeUser– är skiftlägeskänsligt.

    Här är exempel på utdata:

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

Avsluta fjärrsessionen

Stäng PowerShell-fönstret för att avsluta den fjärranslutna PowerShell-sessionen.

Nästa steg