Azure Stack Edge Pro GPU cihazını Windows PowerShell aracılığıyla yönetme

Uygulama hedefi:  Pro GPU SKU 'SU için Evet Azure Stack Edge Pro-GPU  Yes for Pro r SKU Azure Stack Edge Pro r  Yes for mini r SKU Azure Stack Edge Mini r                             

Azure Stack Edge Pro GPU çözümü, verileri işlemenize ve ağ üzerinden Azure 'a göndermenize olanak tanır. bu makalede Azure Stack Edge Pro GPU cihazınız için yapılandırma ve yönetim görevlerinin bazıları açıklanmaktadır. cihazınızı yönetmek için Azure portal, yerel web kullanıcı arabirimini veya Windows PowerShell arabirimini kullanabilirsiniz.

Bu makale, cihazın PowerShell arabirimine ve bu arabirimi kullanarak gerçekleştirebileceğiniz görevlere nasıl bağlanabilirim.

PowerShell arabirimine bağlanın

İstemci işletim sistemine bağlı olarak, cihaza uzaktan bağlanma yordamları farklıdır.

Bir Windows istemcisinden uzaktan bağlanma

Ön koşullar

Başlamadan önce aşağıdakilerden emin olun:

  • Windows istemciniz Windows PowerShell 5,0 veya üstünü çalıştırıyor.

  • Windows istemciniz, cihazda yüklü olan düğüm sertifikasına karşılık gelen imzalama zincirine (kök sertifika) sahiptir. Ayrıntılı yönergeler için bkz. Windows istemcinizdeki sertifikayı yükler.

  • hosts C:\Windows\System32\drivers\etc Windows istemciniz için konumunda bulunan dosyası aşağıdaki biçimde düğüm sertifikasına karşılık gelen bir girdiye sahiptir:

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

    Dosya için örnek bir giriş aşağıda verilmiştir hosts :

    10.100.10.10 1HXQG13.wdshcsso.com

Ayrıntılı adımlar

Bir Windows istemcisinden uzaktan bağlanmak için aşağıdaki adımları izleyin.

  1. Yönetici olarak bir Windows PowerShell oturumu çalıştırın.

  2. Windows Uzaktan Yönetimi hizmetinin istemciniz üzerinde çalıştığından emin olun. Komut istemine şunları yazın:

    winrm quickconfig
    

    Daha fazla bilgi için bkz. Windows Uzaktan Yönetimi Için yükleme ve yapılandırma.

  3. Dosyada kullanılan bağlantı dizesine bir değişken atayın hosts .

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

    <Node serial number>Ve <DNS domain of the device> , cihazınızın seri numarasını ve DNS etki alanını değiştirin. Cihazların yerel Web Kullanıcı arabirimindeki cihaz sayfasından SERTIFIKALAR sayfasından ve DNS etki alanından düğüm seri numarası değerlerini alabilirsiniz.

  4. Cihazınızın bu bağlantı dizesini istemcinin güvenilen konaklar listesine eklemek için aşağıdaki komutu yazın:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Cihazda bir Windows PowerShell oturumu başlatın:

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

    Güven ilişkisiyle ilgili bir hata görürseniz, cihazınıza yüklenen düğüm sertifikasının imzalama zincirinin cihazınıza erişen istemciye de yüklenip yüklenmediğini kontrol edin.

  6. İstendiğinde parolayı girin. Yerel Web Kullanıcı arabiriminde oturum açmak için kullanılan parolayı kullanın. Varsayılan yerel Web UI parolası Parola1'dır. Uzak PowerShell kullanarak cihaza başarıyla bağlanınca aşağıdaki örnek çıktıyı görüyorsunuz:

    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>
    

seçeneğini -UseSSL kullanırsanız, https üzerinden PowerShell aracılığıyla iletişimde bulundurabilirsiniz. PowerShell aracılığıyla uzaktan bağlanmak için her zaman https'yi kullanmanız önerilir. Güvenilen ağlarda, http üzerinden PowerShell aracılığıyla iletişim kabul edilebilir. İlk olarak yerel kullanıcı arabiriminde http üzerinden uzak PowerShell'i etkinleştirirsiniz. Ardından, seçeneği olmadan önceki yordamı kullanarak cihazın PowerShell arabirimine -UseSSL bağlanabilirsiniz.

Sertifikaları (sertifikaları kullanmanız önerilir!) kullanıyorsanız, oturum seçeneklerini kullanarak sertifika doğrulama denetimlerini atlayabilirsiniz: -SkipCACheck -SkipCNCheck -SkipRevocationCheck .

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

Sertifika denetimi atlanırken örnek bir çıkış aşağıdaki gibidir:

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>

Önemli

Geçerli sürümde, cihazın PowerShell arabirimine yalnızca bir Windows istemcisi aracılığıyla bağlanabilirsiniz. seçeneği -UseSSL Linux istemcileriyle birlikte çalışmaz.

Destek paketi oluşturma

Herhangi bir cihaz sorunu yaşarsanız, sistem günlüklerinden bir destek paketi oluşturabilirsiniz. Microsoft Desteği sorunları gidermek için bu paketi kullanır. Destek paketi oluşturmak için aşağıdaki adımları izleyin:

  1. Cihazınızın PowerShell arabirimine bağlanın.

  2. Get-HcsNodeSupportPackageBir destek paketi oluşturmak için komutunu kullanın. Cmdlet 'in kullanımı aşağıdaki gibidir:

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

    Cmdlet 'i cihazınızdan günlükleri toplar ve bu günlükleri belirtilen bir ağa veya yerel paylaşıma kopyalar.

    Kullanılan parametreler aşağıdaki gibidir:

    • -Path -Destek paketini kopyalamak için ağı veya yerel yolu belirtin. istenir
    • -Credential -Korumalı yola erişmek için kimlik bilgilerini belirtin.
    • -Zip -Bir ZIP dosyası oluşturmak için belirtin.
    • -Include -Destek paketine dahil edilecek bileşenleri dahil etmek için belirtin. Belirtilmezse, Default varsayılır.
    • -IncludeArchived -Destek paketine arşivlenmiş günlükleri dahil etmek için belirtin.
    • -IncludePeriodicStats -Destek paketine düzenli stat günlüklerini dahil etmek için belirtin.

Cihaz bilgilerini görüntüle

  1. PowerShell arabirimine bağlanın.

  2. Get-HcsApplianceInfoCihazınızın bilgilerini almak için kullanın.

    Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:

    [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
    

    Bazı önemli cihaz bilgilerini özetleyen bir tablo aşağıda verilmiştir:

    Parametre Açıklama
    FriendlyName Cihaz dağıtımı sırasında yerel Web Kullanıcı arabirimi aracılığıyla yapılandırılan cihazın kolay adı. Varsayılan kolay ad, cihaz seri numarasıdır.
    SerialNumber Cihaz seri numarası, fabrikada atanan benzersiz bir sayıdır.
    Modelleme Azure Stack Edge veya Data Box Gateway cihazınız için model. Model, Data Box Gateway için Azure Stack Edge ve sanal için fiziksel bir modeldir.
    Daha önce yazılım sürümü Cihaz yazılımı sürümüne karşılık gelen kolay dize. Önizleme çalıştıran bir sistem için, kolay yazılım sürümü Data Box Edge 1902 olur.
    HcsVersion Cihazınızda çalışan HCS yazılım sürümü. Örneğin, 1902 Data Box Edge karşılık gelen HCS yazılım sürümü 1.4.771.324 ' dir.
    Localcapacityınmb Cihazın megabit 'daki toplam yerel kapasitesi.
    IsRegistered Bu değer, cihazınızın hizmetle etkinleştirilmiş olup olmadığını gösterir.

GPU sürücü bilgilerini görüntüle

Cihazınızda işlem rolü yapılandırılmışsa, PowerShell arabirimi aracılığıyla GPU sürücü bilgilerini de alabilirsiniz.

  1. PowerShell arabirimine Bağlan.

  2. Get-HcsGpuNvidiaSmiCIHAZıNıZıN GPU sürücü bilgilerini almak için kullanın.

    Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:

    Get-HcsGpuNvidiaSmi
    

    Bu cmdlet 'in örnek çıktısından sürücü bilgilerini bir yere unutmayın.

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

Çok Işlem hizmeti 'ni (MPS) etkinleştir

NVIDIA GPU 'larda çoklu Işlem hizmeti (MPS), her bir işin GPU kaynaklarının bir yüzdesi ayrıldığı birden çok iş tarafından paylaşılabilen bir mekanizma sağlar. MPS Azure Stack Edge Pro GPU cihazındaki bir önizleme özelliğidir. Cihazınızda MP 'leri etkinleştirmek için şu adımları izleyin:

  1. Başlamadan önce aşağıdakilerden emin olun:

    1. Azure Stack Edge Pro cihazınızı Azure 'Da Azure Stack Edge kaynağıyla yapılandırdık ve etkinleştirdiniz.
    2. Bu cihazda işlem Azure Portal yapılandırdınız.
  2. PowerShell arabirimine bağlanın.

  3. Cihazınızda MPS 'yi etkinleştirmek için aşağıdaki komutu kullanın.

    Start-HcsGpuMPS
    

Not

Cihaz yazılımı ve Kubernetes kümesi güncelleştirilirken, iş yükleri için MPS ayarı korunmaz. MPS 'yi yeniden etkinleştirmeniz gerekir.

Cihazınızı sıfırlama

Cihazınızı sıfırlamak için veri diskinde ve cihazınızın önyükleme diskinde bulunan tüm verileri güvenli bir şekilde silmeniz gerekir.

Reset-HcsApplianceCmdlet 'ini kullanarak hem veri disklerini hem de önyükleme diskini veya yalnızca veri disklerini silebilirsiniz. ClearDataVe BootDisk anahtarları, veri disklerini ve önyükleme diskini sırasıyla temizlemenize olanak tanır.

BootDiskAnahtar, önyükleme diskini temizler ve cihazın kullanılamamasına neden olur. Yalnızca cihazın Microsoft’a iade edilmesi gerektiğinde kullanılması gerekir. Daha fazla bilgi için bkz. cihazı Microsoft 'A döndürme.

Yerel web kullanıcı arabiriminde cihaz sıfırlama özelliğini kullanırsanız, yalnızca veri diskleri güvenli bir şekilde silinir ve önyükleme diskinde işlem yapılmaz. Önyükleme diski cihaz yapılandırmasını içerir.

  1. PowerShell arabirimine bağlanın.

  2. Komut istemine şunları yazın:

    Reset-HcsAppliance -ClearData -BootDisk

    Aşağıdaki örnek, bu cmdlet 'in nasıl kullanılacağını gösterir:

    [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
    

İşlem günlüklerini al

İşlem rolü cihazınızda yapılandırılmışsa, işlem günlüklerini PowerShell arabirimi aracılığıyla da alabilirsiniz.

  1. PowerShell arabirimine Bağlan.

  2. Get-AzureDataBoxEdgeComputeRoleLogsCihazınızın işlem günlüklerini almak için kullanın.

    Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:

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

    Cmdlet 'i için kullanılan parametrelerin açıklaması aşağıdadır:

    • Path: İşlem günlüğü paketini oluşturmak istediğiniz paylaşıma yönelik bir ağ yolu sağlayın.
    • Credential: Ağ paylaşımının Kullanıcı adını sağlayın. Bu cmdlet 'i çalıştırdığınızda, paylaşma parolasını sağlamanız gerekir.
    • FullLogCollection: Bu parametre, günlük paketinin tüm işlem günlüklerini içermesini sağlar. Varsayılan olarak, günlük paketi yalnızca bir Günlükler alt kümesi içerir.

Kubernetes pod ve hizmet alt ağlarını değiştirme

Azure Stack Edge cihazındaki Kubernetes varsayılan olarak, sırasıyla Pod ve hizmet için 172.27.0.0/16 ve 172.28.0.0/16 alt ağlarını kullanır. Bu alt ağlar ağınızda zaten kullanılıyorsa, Set-HcsKubeClusterNetworkInfo Bu alt ağları değiştirmek için cmdlet 'ini çalıştırabilirsiniz.

Bu adımda, Kubernetes kümesi oluşturulduğundan Azure portal işlem yapılandırmadan önce bu yapılandırmayı gerçekleştirmek istiyorsunuz.

  1. cihazın PowerShell arabirimine Bağlan.

  2. Cihazın PowerShell arabiriminden şunu çalıştırın:

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

    Öğesini <subnet details> kullanmak istediğiniz alt ağ aralığı ile değiştirin.

  3. Bu komutu çalıştırdığınızda, Get-HcsKubeClusterNetworkInfo Pod ve hizmet alt ağlarının değiştiğini doğrulamak için komutunu kullanabilirsiniz.

Bu komut için örnek bir çıktı aşağıda verilmiştir.

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

Başlamadan önce, şunları yapmanız gerekir:

işlem rolü yapılandırılmış bir Azure Stack Edge Pro GPU cihazında, iki farklı komut kümesi kullanarak cihazı sorun gidermeye veya izlemeye izleyebilirsiniz.

  • iotedgeKomutları kullanma. Bu komutlar, cihazınız için temel işlemler için kullanılabilir.
  • kubectlKomutları kullanma. Bu komutlar, cihazınız için kapsamlı bir işlem kümesi için kullanılabilir.

yukarıdaki komut kümesinden birini yürütmek için PowerShell arabirimine Bağlangerekir.

iotedgeKomutları kullanma

Kullanılabilir komutların listesini görmek için PowerShell arabirimine bağlanın ve iotedge işlevini kullanın.

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

Aşağıdaki tabloda, için kullanılabilen komutların kısa bir açıklaması verilmiştir iotedge :

command Description
list Modülleri listeleme
logs Modülün günlüklerini getirme
restart Modülü durdurma ve yeniden başlatma

Tüm IoT Edge modüllerini listeleme

Cihazınızda çalışan tüm modülleri listelemek için iotedge list komutunu kullanın.

Bu komutun örnek bir çıktısı aşağıda verilmiştir. Bu komut tüm modülleri, ilişkili yapılandırmayı ve modüllerle ilişkili dış IP 'Leri listeler. Örneğin, Web sunucusu uygulamasına adresinden erişebilirsiniz 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>

Modülleri yeniden Başlat

listCihazınızda çalışan tüm modülleri listelemek için komutunu kullanabilirsiniz. Sonra yeniden başlatmak istediğiniz modülün adını belirleyip komutuyla birlikte kullanın restart .

Modülün yeniden başlatılmasının örnek bir çıktısı aşağıda verilmiştir. Modülün ne kadar süreyle çalıştığı açıklamasına bağlı olarak, cuda-sample1 yeniden başlatıldığından emin olabilirsiniz.

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

Modül günlüklerini al

logsCihazınızda çalışan herhangi bir IoT Edge modüle ait günlükleri almak için komutunu kullanın.

Kapsayıcı görüntüsünü oluştururken veya görüntüyü çekirken bir hata oluşursa, öğesini çalıştırın logs edgeagent . edgeagent , diğer kapsayıcıları sağlamaktan sorumlu IoT Edge çalışma zamanı kapsayıcısıdır. logs edgeagentTüm günlüklerin dökümünü yaptığından, son hataları görmenin iyi bir yolu da --tail 0 ' seçeneğini kullanmaktır.

Örnek bir çıktı aşağıda verilmiştir.

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

Not

GetModuleLogs veya UploadModuleLogs gibi doğrudan Yöntemler, Azure Stack Kenarunuzdaki Kubernetes üzerinde IoT Edge desteklenmez.

Kubectl komutlarını kullanma

işlem rolü yapılandırılmış bir Azure Stack Edge Pro GPU cihazında, kubectl modülleri izlemek veya sorunlarını gidermek için tüm komutlar kullanılabilir. Kullanılabilir komutların bir listesini görmek için kubectl --help komut penceresinden komutunu çalıştırın.

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>

Komutların kapsamlı bir listesi için kubectl kubectl yazdırılabileceksayfasına gidin.

Kubernetes kümesi dışında kullanıma sunulan hizmet veya modülün IP 'yi almak için

Kubernetes dışında sunulan bir yük dengeleme hizmetinin veya modüllerinin IP 'sini almak için aşağıdaki komutu çalıştırın:

kubectl get svc -n iotedge

Aşağıda, Kubernetes kümesi dışında kullanıma sunulan tüm hizmetlerin veya modüllerin bir örnek çıktısı verilmiştir.

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

Dış IP sütunundaki IP adresi, hizmetin veya modülün dış uç noktasına karşılık gelir. Ayrıca, Kubernetes panosundaki dış IP 'yi de alabilirsiniz.

Modülün başarıyla dağıtılıp dağıtılmadığını denetlemek için

İşlem modülleri, iş mantığı uygulanmış kapsayıcılardır. Bir Kubernetes Pod çalıştıran birden çok kapsayıcı olabilir.

Bir işlem modülünün başarıyla dağıtılıp dağıtılmadığını denetlemek için cihazın PowerShell arabirimine bağlanın. Komutunu çalıştırın get pods ve kapsayıcının (işlem modülüne karşılık gelen) çalışıp çalışmadığını denetleyin.

Belirli bir ad alanında çalışan tüm yığınların listesini almak için aşağıdaki komutu çalıştırın:

get pods -n <namespace>

IoT Edge aracılığıyla dağıtılan modülleri denetlemek için şu komutu çalıştırın:

get pods -n iotedge

Aşağıda, ad alanında çalışan tüm yığınların örnek bir çıktısı verilmiştir iotedge .

[10.100.10.10]: PS>kubectl get pods -n iotedge
NAME                        READY   STATUS    RESTARTS   AGE
edgeagent-cf6d4ffd4-q5l2k   2/2     Running   0          20h
edgehub-8c9dc8788-2mvwv     2/2     Running   0          56m
filemove-66c49984b7-h8lxc   2/2     Running   0          56m
iotedged-675d7f4b5f-9nml4   1/1     Running   0          20h

[10.100.10.10]: PS>

Durum durumu , ad alanındaki tüm yığınların çalıştığını ve Ready öğesinin bir pod içinde dağıtılan kapsayıcıların sayısını belirtir. Yukarıdaki örnekte, tüm yığınların çalışıyor olması ve her bir yığından dağıtılan tüm modüllerin çalışıyor olması gerekir.

Azure Arc aracılığıyla dağıtılan modülleri denetlemek için şu komutu çalıştırın:

get pods -n azure-arc

alternatif olarak, IoT Edge veya Azure Arc dağıtımlarını görmek için kubernetes panosuna Bağlan.

Belirli bir ad alanı için belirli bir pod'un daha ayrıntılı bir çıktısı için aşağıdaki komutu çalıştırabilirsiniz:

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

Örnek çıktı burada gösterilmiştir.

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

Kapsayıcı günlüklerini almak için

Bir modülün günlüklerini almak için cihazın PowerShell arabiriminden aşağıdaki komutu çalıştırın:

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

bayrağı tüm kapsayıcıların günlüklerinin dökümlerini yaptığı için, son hataları görmenin iyi bir yolu all-containers seçeneğini --tail 10 kullanmaktır.

Aşağıda örnek bir çıktı ve ardından gelir.

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

Kubernetes çalışan düğümü için bellek, işlemci sınırlarını değiştirme

Kubernetes çalışan düğümü için bellek veya işlemci sınırlarını değiştirmek için aşağıdaki adımları uygulayın:

  1. Bağlan PowerShell arabirimine bakın.

  2. Çalışan düğümü için geçerli kaynakları ve rol seçeneklerini almak için aşağıdaki komutu çalıştırın:

    Get-AzureDataBoxEdgeRole

    Örnek bir çıktıyı burada ver. bölümünün altındaki ve değerlerini Name Compute not Resources edin. MemoryInBytes ve ProcessorCount Kubernetes çalışan düğümü için şu anda atanmış olan bellek ve işlemci sayısını gösterir.

    [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. Çalışan düğümü için bellek ve işlemci değerlerini değiştirmek için aşağıdaki komutu çalıştırın:

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

    Örnek bir çıktıyı burada ver.

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

Bellek ve işlemci kullanımını değiştirirken bu yönergeleri izleyin.

  • Varsayılan bellek, cihaz belirtimlerinin %25'idir.
  • Varsayılan işlemci sayısı, cihaz belirtimlerinin %30' parçasıdır.
  • Bellek ve işlemci sayıları için değerleri değiştirirken, değerleri cihaz belleğinin %15 ile %60'sı arasında ve işlemci sayısı arasında değiştirmenizi öneririz.
  • Sistem bileşenleri için yeterli kaynak var olmak için %60'lık bir üst sınır önerilir.

Bağlan BMC'ye

Temel pano yönetim denetleyicisi (BMC), cihazınızı uzaktan izlemek ve yönetmek için kullanılır. Bu bölümde BMC yapılandırmasını yönetmek için kullanılan cmdlet'ler açıklandı. Bu cmdlet'lerden herhangi birini çalıştırmadan Bağlan PowerShell arabirimine bakın.

  • Get-HcsNetBmcInterface: BMC'nin ağ yapılandırma özelliklerini almak için bu cmdlet'i kullanın; örneğin, IPv4Address IPv4Gateway , , IPv4SubnetMask . DhcpEnabled

    Örnek çıktı aşağıdaki gibidir:

    [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: Bu cmdlet'i aşağıdaki iki şekilde kullanabilirsiniz.

    • parametresi için uygun değeri kullanarak BMC için DHCP yapılandırmasını etkinleştirmek veya devre dışı bırakmak üzere cmdlet'ini UseDhcp kullanın.

      Set-HcsNetBmcInterface -UseDhcp $true
      

      Örnek çıktı aşağıdaki gibidir:

      [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>
      
    • BMC'nin statik yapılandırmasını yapılandırmak için bu cmdlet'i kullanın. , ve değerlerini IPv4Address IPv4Gateway IPv4SubnetMask belirtebilirsiniz.

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

      Örnek çıktı aşağıdaki gibidir:

      [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: için BMC parolasını değiştirmek üzere bu cmdlet'i EdgeUser kullanın. Kullanıcı adı - EdgeUser - büyük/büyük/büyük harfe duyarlıdır.

    Örnek çıktı aşağıdaki gibidir:

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

Uzak oturumdan çıkın

Uzak PowerShell oturumundan çıkmak için PowerShell penceresini kapatın.

Sonraki adımlar