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

ŞUNLAR IÇIN GEÇERLIDIR: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

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 bazı yapılandırma ve yönetim görevleri açıklanmaktadır. Cihazınızı yönetmek için Azure portalını, yerel web kullanıcı arabirimini veya Windows PowerShell arabirimini kullanabilirsiniz.

Bu makalede, cihazın PowerShell arabirimine nasıl bağlanabileceğinize ve bu arabirimi kullanarak gerçekleştirebileceğiniz görevlere odaklanılmaktadır.

PowerShell arabirimine bağlanın

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

Windows istemcisinden uzaktan bağlanma

Önkoşullar

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

  • Windows istemciniz Windows PowerShell 5.0 veya üzerini çalıştırıyor.

  • Windows istemcinizde, cihazda yüklü düğüm sertifikasına karşılık gelen imzalama zinciri (kök sertifika) vardır. Ayrıntılı yönergeler için bkz . Windows istemcinize sertifika yükleme.

  • hosts Windows istemciniz için konumunda C:\Windows\System32\drivers\etc bulunan dosyanın düğüm sertifikasına karşılık gelen bir girdisi aşağıdaki biçimdedir:

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

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

    10.100.10.10 1HXQG13.wdshcsso.com

Ayrıntılı adımlar

Windows istemcisinden uzaktan bağlanmak için bu adımları izleyin.

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

  2. İstemcinizde Windows Uzaktan Yönetim hizmetinin çalıştığından emin olun. Komut istemine şunu yazın:

    winrm quickconfig
    

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

  3. Dosyasında kullanılan bağlantı dizesi bir değişken atayınhosts.

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

    ve <DNS domain of the device> değerini cihazınızın düğüm seri numarası ve DNS etki alanı ile değiştirin<Node serial number>. Düğüm seri numarası değerlerini, cihazınızın yerel web kullanıcı arabirimindeki Cihaz sayfasından Sertifikalar sayfasından ve DNS etki alanından alabilirsiniz.

  4. Cihazınızın bu bağlantı dizesi 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 istemcide de yüklü olup olmadığını denetleyin.

  6. İstendiğinde parolayı belirtin. Yerel web kullanıcı arabiriminde oturum açmak için kullanılan parolayı kullanın. Varsayılan yerel web kullanıcı arabirimi parolası Parola1'dir. Uzak PowerShell kullanarak cihaza başarıyla bağlandığınızda aşağıdaki örnek çıkışı görürsünüz:

    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 kullandığınızda-UseSSL, Https üzerinden PowerShell üzerinden uzaktan iletişim kurabilirsiniz. PowerShell aracılığıyla uzaktan bağlanmak için her zaman https kullanmanızı öneririz. Güvenilen ağlarda, Http üzerinden PowerShell üzerinden uzaktan iletişim kabul edilebilir. Önce 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ı kullanmıyorsanız (sertifikaları kullanmanızı öneririz!), oturum seçeneklerini kullanarak sertifika doğrulama denetimini 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ğıda verilmiştir:

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 çalışmaz.

Destek paketi oluşturma

Herhangi bir cihaz sorunuyla karşılaşırsanı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 şu adımları izleyin:

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

  2. Get-HcsNodeSupportPackage 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, cihazınızdan günlükleri toplar ve bu günlükleri belirtilen bir ağa veya yerel paylaşıma kopyalar.

    Kullanılan parametreler şunlardır:

    • -Path - Destek paketinin kopyalanacak ağı veya yerel yolu belirtin. (gerekli)
    • -Credential - Korumalı yola erişmek için kimlik bilgilerini belirtin.
    • -Zip - 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 - Arşivlenmiş günlükleri destek paketine eklemek için belirtin.
    • -IncludePeriodicStats - Düzenli istatistik günlüklerini destek paketine eklemek için belirtin.

Cihaz bilgilerini görüntüleme

  1. PowerShell arabirimine bağlanma.

  2. Cihazınızın bilgilerini almak için öğesini Get-HcsApplianceInfo kullanın.

    Aşağıdaki örnekte bu cmdlet'in kullanımı gösterilmektedir:

    [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
    

    Önemli cihaz bilgilerinden bazılarını özetleyen bir tablo aşağıdadır:

    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 numaradır.
    Model Azure Stack Edge veya Data Box Gateway cihazınızın modeli. Model, Azure Stack Edge için fiziksel ve Data Box Gateway için sanaldır.
    FriendlySoftwareVersion 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 olacaktır.
    HcsVersion Cihazınızda çalışan HCS yazılım sürümü. Örneğin, Data Box Edge 1902'ye karşılık gelen HCS yazılım sürümü 1.4.771.324'dür.
    LocalCapacityInMb Cihazın Megabitlerdeki toplam yerel kapasitesi.
    IsRegistered Bu değer, cihazınızın hizmetle etkinleştirilip etkinleştirilmediğini gösterir.

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

İşlem rolü cihazınızda yapılandırıldıysa, GPU sürücü bilgilerini PowerShell arabirimi aracılığıyla da alabilirsiniz.

  1. PowerShell arabirimine bağlanma.

  2. Cihazınızın GPU sürücü bilgilerini almak için öğesini Get-HcsGpuNvidiaSmi kullanın.

    Aşağıdaki örnekte bu cmdlet'in kullanımı gösterilmektedir:

    Get-HcsGpuNvidiaSmi
    

    Bu cmdlet'in örnek çıktısından sürücü bilgilerini not edin.

    +-----------------------------------------------------------------------------+    
    | 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 İşlemli Hizmeti (MPS) etkinleştirme

Nvidia GPU'larında Çok İşlemli Hizmet (MPS), GPU'ların birden çok iş tarafından paylaşılabildiği ve her işin GPU kaynaklarının bir kısmının ayrıldığı bir mekanizma sağlar. MPS, Azure Stack Edge Pro GPU cihazınızdaki bir önizleme özelliğidir. Cihazınızda MPS'yi 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 bir Azure Stack Edge kaynağıyla yapılandırıp etkinleştirdiniz.
    2. Azure portalında bu cihazda işlem yapılandırdıysanız.
  2. PowerShell arabirimine bağlanma.

  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ştirildiğinde, MPS ayarı iş yükleri için 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.

Hem veri disklerini ve önyükleme diskini veya yalnızca veri disklerini silmek için Reset-HcsAppliance cmdlet’ini kullanın. SecureWipeBootDisk ve SecureWipeDataDisks anahtarları, önyükleme diskini ve veri disklerini sırasıyla silmenize olanak sağlar.

SecureWipeBootDisk anahtarı önyükleme diskini siler ve cihazı kullanılamaz hale getirir. Yalnızca cihazın Microsoft’a iade edilmesi gerektiğinde kullanılması gerekir. Daha fazla bilgi için bkz. Cihazı Microsoft’a iade etme.

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ğlanma.

  2. Komut istemine şunu yazın:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    Aşağıdaki örnek bu cmdlet’in nasıl kullanıldığını gösterir:

    [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
    

İşlem günlüklerini alma

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

  1. PowerShell arabirimine bağlanma.

  2. cihazınızın işlem günlüklerini almak için öğesini Get-AzureDataBoxEdgeComputeRoleLogs kullanın.

    Aşağıdaki örnekte bu cmdlet'in kullanımı gösterilmektedir:

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

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

    • Path: İşlem günlüğü paketini oluşturmak istediğiniz paylaşıma bir ağ yolu sağlayın.
    • Credential: Ağ paylaşımı için kullanıcı adını girin. Bu cmdlet'i çalıştırdığınızda, paylaşım 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 günlüklerin yalnızca bir alt kümesini içerir.

Kubernetes iş yükü profillerini değiştirme

Bir küme oluşturup yapılandırdıktan ve yeni sanal anahtarlar oluşturduktan sonra, sanal anahtarlarınızla ilişkili sanal ağları ekleyebilir veya silebilirsiniz. Ayrıntılı adımlar için bkz . Sanal anahtarları yapılandırma.

Sanal anahtarlar oluşturulduktan sonra Kubernetes işlem trafiğinin anahtarlarını etkinleştirerek bir Kubernetes iş yükü profili belirtebilirsiniz. Bunu yerel kullanıcı arabirimini kullanarak yapmak için İşlem IPS'sini yapılandırma makalesindeki adımları kullanın. PowerShell kullanarak bunu yapmak için aşağıdaki adımları kullanın:

  1. PowerShell arabirimine bağlanma.

  2. Get-HcsApplianceInfo Cihazınızın güncel KubernetesPlatform ve KubernetesWorkloadProfile ayarlarını almak için cmdlet'ini kullanın.

  3. Get-HcsKubernetesWorkloadProfiles Azure Stack Edge cihazınızda kullanılabilen profilleri belirlemek için cmdlet'ini kullanın.

    [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. Set-HcsKubernetesWorkloadProfile Bir Azure Özel MEC çözümü olan AP5GC için iş yükü profilini ayarlamak için cmdlet'ini kullanın.

    Aşağıdaki örnekte bu cmdlet'in kullanımı gösterilmektedir:

    Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
    

    Bu cmdlet için örnek çıktı aşağıda verilmiştir:

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

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

Ortamınızda diğer iş yükleri seçeneğini çalıştırıyorsanız, varsayılan olarak Azure Stack Edge cihazınızdaKi Kubernetes 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, bu alt ağları değiştirmek için cmdlet'ini Set-HcsKubeClusterNetworkInfo çalıştırabilirsiniz.

Bu adımda Kubernetes kümesi oluşturulurken Azure portalından 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>

    <Alt ağ ayrıntılarını> kullanmak istediğiniz alt ağ aralığıyla değiştirin.

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

Bu komut için örnek bir çıkış 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:

  • İşlem ağı yapılandırıldı. Bkz . Öğretici: GPU ile Azure Stack Edge Pro için ağı yapılandırma.
  • Cihazınızda yapılandırılmış işlem rolü.

İşlem rolü yapılandırılmış bir Azure Stack Edge Pro GPU cihazında iki farklı komut kümesi kullanarak cihazla ilgili sorunları giderebilir veya izleyebilirsiniz.

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

Yukarıdaki komut kümelerinden birini yürütmek için PowerShell arabirimine Bağlan gerekir.

Komutları kullanma iotedge

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

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

Aşağıdaki tabloda, için iotedgekullanılabilen komutların kısa bir açıklaması yer alır:

komut Açıklama
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 komutunu kullanın iotedge list .

Bu komutun örnek çı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 https://10.128.44.244erişebilirsiniz.

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

Cihazınızda çalışan tüm modülleri listelemek için komutunu kullanabilirsiniz list . Ardından yeniden başlatmak istediğiniz modülün adını belirleyin ve komutuyla restart kullanın.

Bir modülü yeniden başlatmanın örnek çıktısı aşağıda verilmiştir. Modülün ne kadar süreyle çalıştığının açıklamasına bağlı olarak, bunun cuda-sample1 yeniden başlatıldığını görebilirsiniz.

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

logs Cihazınızda çalışan herhangi bir IoT Edge modülünün günlüklerini almak için komutunu kullanın.

Kapsayıcı görüntüsü oluşturulurken veya görüntüyü çekerken bir hata oluştuysa komutunu çalıştırın logs edgeagent. edgeagent , diğer kapsayıcıların sağlanmasından sorumlu IoT Edge çalışma zamanı kapsayıcısıdır. logs edgeagent Tüm günlükleri döküm ettiğinden, son hataları görmenin iyi bir yolu 0' seçeneğini --tail kullanmaktır.

Aşağıda, örnek bir çıkış bulunmaktadır.

[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 Edge'inizdeki Kubernetes'te IoT Edge'de desteklenmez.

kubectl komutlarını kullanma

İş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 listesini görmek için komut penceresinden komutunu çalıştırın kubectl --help .

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 kubectl kapsamlı bir listesi için kubectl bilgi sayfasına gidin.

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

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

kubectl get svc -n iotedge

Aşağıda, Kubernetes kümesinin dışında kullanıma sunulan tüm hizmetlerin veya modüllerin örnek çıkışı 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. Kubernetes panosunda 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ığının uygulandığı kapsayıcılardır. Kubernetes pod'larının birden çok kapsayıcısı olabilir.

İş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. get pods komutunu çalıştırın 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 podları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 aşağıdaki komutu çalıştırın:

get pods -n iotedge

Aşağıda, ad alanında çalışan tüm podların örnek çı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ı içindeki tüm podların çalıştığını ve Ready ise bir podda dağıtılan kapsayıcı sayısını gösterir. Yukarıdaki örnekte tüm podlar çalışır durumdadır ve podların her birinde dağıtılan tüm modüller çalışır durumdadır.

Azure Arc aracılığıyla dağıtılan modülleri denetlemek için aşağıdaki 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 podun daha ayrıntılı bir çıkışı 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

all-containers Bayrak tüm kapsayıcılar için tüm günlükleri döküm ettiğinden, son hataları görmenin iyi bir yolu seçeneğini --tail 10kullanmaktır.

Aşağıda örnek bir çıkış verilmiştir.

[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. Cihazın PowerShell arabirimine Bağlan.

  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

    Aşağıda, örnek bir çıkış bulunmaktadır. bölümü için Name ve Compute altındaki Resources değerleri not edin. MemoryInBytes ve ProcessorCount Kubernetes çalışan düğümü için şu anda atanmış olan değerlerin bellek ve işlemci sayısını belirtir.

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

    Aşağıda, örnek bir çıkış bulunmaktadır.

    [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 belirtiminin %25'idir.
  • Varsayılan işlemci sayısı, cihaz belirtiminin %30'dur.
  • Bellek ve işlemci sayıları için değerleri değiştirirken, cihaz belleğinin %15 ile %60'ı arasındaki değerleri ve işlemci sayısını değiştirmenizi öneririz.
  • Sistem bileşenleri için yeterli kaynak olması için %60'lık bir üst sınır kullanmanızı öneririz.

BMC'ye Bağlan

Not

Temel kart yönetim denetleyicisi (BMC), Azure Stack Edge Pro 2 ve Azure Stack Edge Mini R'de kullanılamaz. Bu bölümde açıklanan cmdlet'ler yalnızca Azure Stack Edge Pro GPU ve Azure Stack Edge Pro R için geçerlidir.

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ılabilecek cmdlet'ler açıklanmaktadır. Bu cmdlet'lerden herhangi birini çalıştırmadan önce, cihazın PowerShell arabirimine Bağlan.

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

    Ö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 yolla kullanabilirsiniz.

    • Cmdlet'ini kullanarak parametre için uygun değeri UseDhcp kullanarak BMC için DHCP yapılandırmasını etkinleştirin veya devre dışı bırakı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 için statik yapılandırmayı yapılandırmak için bu cmdlet'i kullanın. , IPv4Gatewayve IPv4SubnetMaskdeğerlerini IPv4Addressbelirtebilirsiniz.

      Set-HcsNetBmcInterface -IPv4Address "<IPv4 address of the device>" -IPv4Gateway "<IPv4 address of the gateway>" -IPv4SubnetMask "<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 için EdgeUserbu cmdlet'i kullanın. Kullanıcı adı - EdgeUserbüyük/küçü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 çıkma

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

Sonraki adımlar

  • Azure portalda Azure Stack Edge Pro GPU'larını dağıtma.