Hantera en Azure Stack Edge Pro GPU-enhet via Windows PowerShell
GÄLLER FÖR: Azure Stack Edge Pro – GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure 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 Portal, lokalt webbgränssnitt 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.
Kör en Windows PowerShell-session som administratör.
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.
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.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
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.
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:
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 angesDefault
antas det.-IncludeArchived
– Ange att arkiverade loggar ska inkluderas i supportpaketet.-IncludePeriodicStats
– Ange att periodiska statistikloggar ska inkluderas i supportpaketet.
Visa enhetsinformation
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.
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:
Innan du börjar bör du kontrollera att:
- Du har konfigurerat och aktiverat din Azure Stack Edge Pro-enhet med en Azure Stack Edge-resurs i Azure.
- Du har konfigurerat beräkning på den här enheten i Azure Portal.
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.
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.
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:
Använd cmdleten
Get-HcsApplianceInfo
för att hämta aktuellaKubernetesPlatform
inställningar ochKubernetesWorkloadProfile
inställningar för din enhet.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>
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 Portal eftersom Kubernetes-klustret skapas i det här steget.
Anslut till Enhetens PowerShell-gränssnitt.
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.
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>
Felsöka Kubernetes-problem som rör IoT Edge
Innan du börjar måste du ha:
- Beräkningsnätverk har konfigurerats. Se Självstudie: Konfigurera nätverk för Azure Stack Edge Pro med GPU.
- Beräkningsroll som konfigurerats på enheten.
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 ansluta 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 på 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 kommandonakubectl
finns 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å ansluta 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:
Anslut till Enhetens PowerShell-gränssnitt.
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
ochCompute
underResources
avsnittet.MemoryInBytes
ochProcessorCount
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>
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.
Ansluta 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 ansluter du till enhetens PowerShell-gränssnitt.
Get-HcsNetBmcInterface
: Använd den här cmdleten för att hämta nätverkskonfigurationsegenskaperna för BMC,IPv4Address
till 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
,IPv4Gateway
ochIPv4SubnetMask
.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örEdgeUser
. 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
- Distribuera Azure Stack Edge Pro GPU i Azure Portal.