Mengelola perangkat GPU Pro Azure Stack Edge melalui Windows PowerShell

BERLAKU UNTUK: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

Solusi Azure Stack Edge Pro memungkinkan Anda memproses data dan mengirimkannya melalui jaringan ke Azure. Artikel ini menjelaskan beberapa tugas konfigurasi dan manajemen untuk perangkat Azure Stack Edge Pro Anda. Anda dapat menggunakan portal Microsoft Azure, antarmuka pengguna web lokal, atau antarmuka Windows PowerShell untuk mengelola perangkat Anda.

Artikel ini berfokus pada cara Anda dapat menyambungkan ke antarmuka PowerShell perangkat dan tugas yang dapat Anda lakukan menggunakan antarmuka ini.

Menyambungkan ke antarmuka PowerShell

Tergantung pada sistem operasi klien, prosedur untuk terhubung dari jarak jauh ke perangkat berbeda.

Tersambung dari klien Windows dari jarak jauh

Prasyarat

Sebelum Anda mulai, pastikan bahwa:

  • Klien menjalankan Windows PowerShell 5.0 atau yang lebih baru.

  • Klien Windows Anda memiliki rantai penandatanganan (sertifikat akar) yang sesuai dengan sertifikat simpul yang terinstal pada perangkat. Untuk petunjuk secara terperinci, lihat Menginstal sertifikat pada klien Windows Anda.

  • File hosts yang terletak di C:\Windows\System32\drivers\etc untuk klien Windows Anda memiliki entri yang sesuai dengan sertifikat simpul dalam format berikut:

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

    Berikut contoh entri untuk file hosts:

    10.100.10.10 1HXQG13.wdshcsso.com

Langkah terperinci

Ikuti langkah-langkah ini untuk menyambungkan dari jarak jauh melalui klien Windows.

  1. Jalankan sesi Windows PowerShell sebagai admin.

  2. Pastikan layanan Manajemen Windows Remote Management dapat dijalankan di klien Anda. Pada command prompt, ketik:

    winrm quickconfig
    

    Untuk mendapatkan informasi selengkapnya, lihat Penginstalan dan konfigurasi untuk Windows Remote Management.

  3. Tetapkan variabel ke string koneksi yang digunakan dalam file hosts.

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

    Ganti <Node serial number> dan <DNS domain of the device> dengan nomor seri simpul dan domain DNS perangkat Anda. Anda bisa mendapatkan nilai untuk nomor seri simpul dari halaman Sertifikat dan domain DNS dari halaman Perangkat di UI web lokal perangkat Anda.

  4. Untuk menambahkan string koneksi ini untuk perangkat Anda ke daftar host tepercaya klien, ketik perintah berikut ini:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. Mulai sesi Windows PowerShell di perangkat:

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

    Jika Anda melihat kesalahan terkait hubungan kepercayaan, maka periksa apakah rantai penandatanganan sertifikat simpul yang diunggah ke perangkat Anda juga diinstal pada klien yang mengakses perangkat Anda.

  6. Berikan kata sandi saat diminta. Gunakan kata sandi yang sama dengan yang digunakan untuk masuk ke antarmuka pengguna web lokal. Kata sandi default UI web lokal adalah Password1. Saat Anda berhasil menyambungkan ke perangkat menggunakan PowerShell jarak jauh, Anda akan melihat contoh output berikut:

    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>
    

Saat menggunakan opsi -UseSSL, Anda menjalankan dari jarak jauh melalui PowerShell melalui https. Kami menyarankan Anda selalu menggunakan https untuk terhubung dari jarak jauh melalui PowerShell. Dalam jaringan tepercaya, terhubung dari jarak jauh melalui PowerShell menggunakan http diperbolehkan. Anda perlu mengaktifkan PowerShell jarak jauh terlebih dahulu melalui http di UI lokal. Kemudian, Anda dapat terhubung ke antarmuka PowerShell perangkat menggunakan prosedur sebelumnya tanpa opsi -UseSSL.

Jika Anda tidak menggunakan sertifikat (kami sarankan Anda menggunakan sertifikat!), Anda dapat melewati pemeriksaan validasi sertifikat menggunakan opsi sesi: -SkipCACheck -SkipCNCheck -SkipRevocationCheck.

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

Berikut contoh output saat melewatkan pemeriksaan sertifikat:

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>

Penting

Dalam rilis saat ini, Anda dapat menyambungkan ke antarmuka PowerShell perangkat hanya melalui klien Windows. Opsi -UseSSL ini tidak berfungsi dengan klien Linux.

Membuat paket dukungan

Jika mengalami masalah perangkat, Anda dapat membuat paket dukungan dari log sistem. Dukungan Microsoft menggunakan paket ini untuk memecahkan masalah tersebut. Ikuti langkah-langkah berikut untuk membuat paket dukungan:

  1. Sambungkan ke antarmuka PowerShell perangkat Anda.

  2. Gunakan perintah Get-HcsNodeSupportPackage untuk membuat paket dukungan. Penggunaan cmdlet adalah sebagai berikut:

    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 mengumpulkan log dari perangkat Anda dan menyalin log tersebut ke jaringan yang ditentukan atau berbagi lokal.

    Parameter yang digunakan adalah sebagai berikut:

    • -Path - Tentukan jaringan atau jalur lokal untuk menyalin paket dukungan. (wajib)
    • -Credential - Tentukan informasi masuk untuk mengakses jalur yang dilindungi.
    • -Zip - Tentukan untuk membuat file zip.
    • -Include - Tentukan untuk menyertakan komponen yang akan disertakan dalam paket dukungan. Jika tidak ditentukan, Default diasumsikan.
    • -IncludeArchived - Tentukan untuk menyertakan log yang diarsipkan dalam paket dukungan.
    • -IncludePeriodicStats - Tentukan untuk menyertakan log statistik berkala dalam paket dukungan.

Lihat informasi perangkat

  1. Menyambungkan ke antarmuka PowerShell.

  2. Gunakan Get-HcsApplianceInfo untuk mendapatkan informasi untuk perangkat Anda.

    Contoh berikut menunjukkan penggunaan cmdlet ini:

    [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
    

    Berikut adalah tabel yang meringkas beberapa informasi perangkat penting:

    Parameter Deskripsi
    FriendlyName Nama perangkat yang ramah seperti yang dikonfigurasi melalui UI web lokal selama penyebaran perangkat. Nama default yang ramah adalah nomor seri perangkat.
    SerialNumber Nomor seri perangkat adalah nomor unik yang ditetapkan saat di pabrik.
    Model Model untuk perangkat Azure Stack Edge atau Data Box Gateway Anda. Model ini berupa fisik untuk Azure Stack Edge dan virtual untuk Data Box Gateway.
    FriendlySoftwareVersion String yang ramah yang sesuai dengan versi perangkat lunak. Untuk pratinjau yang menjalankan sistem, versi perangkat lunak yang ramah adalah Azure Stack Edge Data Box 1902.
    HcsVersion Versi perangkat lunak HCS yang berjalan di perangkat Anda. Misalnya, versi perangkat lunak HCS yang sesuai dengan Azure Stack Edge Data Box 1902 adalah 1.4.771.324.
    LocalCapacityInMb Total kapasitas lokal perangkat dalam Megabit.
    IsRegistered Nilai ini menunjukkan apakah perangkat Anda diaktifkan dengan layanan.

Lihat informasi driver GPU

Jika peran komputasi dikonfigurasi di perangkat Anda, Anda juga bisa mendapatkan log komputasi melalui antarmuka PowerShell.

  1. Menyambungkan ke antarmuka PowerShell.

  2. Gunakan Get-HcsGpuNvidiaSmi untuk mendapatkan informasi driver GPU untuk perangkat Anda.

    Contoh berikut menunjukkan penggunaan cmdlet ini:

    Get-HcsGpuNvidiaSmi
    

    Catat informasi driver dari contoh keluaran cmdlet ini.

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

Mengaktifkan Layanan Multi-Proses (MPS)

Layanan Multi-Proses (MPS) pada GPU Nvidia menyediakan mekanisme yang mana GPU dapat dibagikan oleh beberapa pekerjaan, dengan setiap pekerjaan dialokasikan beberapa persentase sumber daya GPU. MPS adalah fitur pratinjau di perangkat GPU Azure Stack Edge Pro Anda. Untuk mengaktifkan MPS di perangkat Anda, ikuti langkah berikut:

  1. Sebelum Anda mulai, pastikan bahwa:

    1. Anda telah mengonfigurasi dan Mengaktifkan perangkat Azure Stack Edge Pro dengan sumber daya Azure Stack Edge di Azure.
    2. Anda telah Mengonfigurasi komputasi pada perangkat ini di portal Microsoft Azure.
  2. Menyambungkan ke antarmuka PowerShell.

  3. Gunakan perintah berikut untuk mengaktifkan MPS di perangkat Anda.

    Start-HcsGpuMPS
    

Catatan

Ketika perangkat lunak perangkat dan kluster Kube diperbarui, pengaturan MPS tidak dipertahankan untuk beban kerja. Anda harus mengaktifkan MPS lagi.

Atur ulang perangkat Anda

Untuk mengatur ulang perangkat, Anda perlu menghapus menyeluruh data dari disk data dan disk boot dari perangkat.

Gunakan cmdlet Reset-HcsAppliance untuk menghapus menyeluruh disk data dan disk boot atau hanya disk data. Sakelar SecureWipeBootDisk dan SecureWipeDataDisks memungkinkan Anda untuk menghapus disk boot dan disk data masing-masing.

Tombol SecureWipeBootDisk menghapus disk boot dan membuat perangkat tidak dapat digunakan. Ini harus digunakan hanya saat perangkat perlu dikembalikan ke Microsoft. Untuk informasi selengkapnya, lihat Mengembalikan perangkat ke Microsoft.

Jika Anda menggunakan pengaturan ulang perangkat di antarmuka pengguna web lokal, hanya disk data yang dihapus dengan aman, dan disk boot tetap utuh. Disk boot berisi konfigurasi perangkat.

  1. Menyambungkan ke antarmuka PowerShell.

  2. Pada command prompt, ketik:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    Contoh berikut menunjukkan cara menggunakan cmdlet ini:

    [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
    

Dapatkan log komputasi

Jika peran komputasi dikonfigurasi di perangkat Anda, Anda juga bisa mendapatkan log komputasi melalui antarmuka PowerShell.

  1. Menyambungkan ke antarmuka PowerShell.

  2. Gunakan Get-AzureDataBoxEdgeComputeRoleLogs untuk mendapatkan log komputasi untuk perangkat Anda.

    Contoh berikut menunjukkan penggunaan cmdlet ini:

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

    Berikut adalah deskripsi parameter yang digunakan untuk cmdlet:

    • Path: Sediakan jalur jaringan ke berbagi tempat Anda ingin membuat paket log komputasi.
    • Credential: Berikan nama pengguna untuk berbagi jaringan. Ketika Anda menjalankan cmdlet ini, Anda harus memberikan kata sandi berbagi.
    • FullLogCollection: Parameter ini memastikan bahwa paket log akan berisi semua log komputasi. Secara default, paket log hanya berisi sub kumpulan log.

Mengubah profil beban kerja Kubernetes

Setelah Anda membentuk dan mengonfigurasi kluster dan Anda telah membuat sakelar virtual baru, Anda dapat menambahkan atau menghapus jaringan virtual yang terkait dengan sakelar virtual Anda. Untuk langkah-langkah mendetail, lihat Mengonfigurasi sakelar virtual.

Setelah sakelar virtual dibuat, Anda dapat mengaktifkan sakelar untuk lalu lintas komputasi Kubernetes untuk menentukan profil beban kerja Kube. Untuk melakukannya menggunakan UI lokal, gunakan langkah-langkah dalam Mengonfigurasi IPS komputasi. Untuk melakukannya menggunakan PowerShell, gunakan langkah-langkah berikut:

  1. Menyambungkan ke antarmuka PowerShell.

  2. Get-HcsApplianceInfo Gunakan cmdlet untuk mendapatkan arus KubernetesPlatform dan KubernetesWorkloadProfile pengaturan untuk perangkat Anda.

  3. Get-HcsKubernetesWorkloadProfiles Gunakan cmdlet untuk mengidentifikasi profil yang tersedia di perangkat Azure Stack Edge Anda.

    [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 Gunakan cmdlet untuk mengatur profil beban kerja untuk AP5GC, solusi AZURE Private MEC.

    Contoh berikut menunjukkan penggunaan cmdlet ini:

    Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
    

    Berikut adalah contoh output untuk cmdlet ini:

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

Ubah pod Kubernetes and subnet layanan

Jika Anda menjalankan opsi beban kerja lain di lingkungan Anda, secara default, Kubernetes pada perangkat Azure Stack Edge menggunakan subnet masing-masing 172.27.0.0/16 dan 172.28.0.0/16 untuk pod dan layanan. Jika subnet ini sudah digunakan dalam jaringan Anda, Anda dapat menjalankan cmdlet Set-HcsKubeClusterNetworkInfo untuk mengubah subnet ini.

Anda ingin melakukan konfigurasi ini sebelum mengonfigurasi komputasi dari portal Microsoft Azure saat kluster Kubernetes dibuat pada langkah ini.

  1. Sambungkan ke antarmuka PowerShell perangkat.

  2. Dari antarmuka PowerShell perangkat, jalankan:

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

    <Ganti detail> subnet dengan rentang subnet yang ingin Anda gunakan.

  3. Setelah menjalankan perintah ini, Anda dapat menggunakan perintah Get-HcsKubeClusterNetworkInfo untuk memverifikasi bahwa pod dan subnet layanan telah berubah.

Berikut adalah contoh keluaran untuk perintah ini.

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

Sebelum memulai, Anda harus:

Di perangkat GPU Azure Stack Edge Pro yang memiliki peran komputasi yang dikonfigurasi, Anda dapat memecahkan masalah atau memantau perangkat menggunakan dua set perintah yang berbeda.

  • Menggunakan perintah iotedge. Perintah ini tersedia untuk operasi dasar pada perangkat Anda.
  • Menggunakan perintah kubectl. Perintah ini tersedia untuk serangkaian operasi yang luas untuk perangkat Anda.

Untuk menjalankan salah satu dari kumpulan perintah di atas, Anda perlu Menyambungkan ke antarmuka PowerShell.

Menggunakan perintah iotedge

Untuk melihat daftar perintah yang tersedia, sambungkan ke antarmuka PowerShell dan gunakan fungsi iotedge.

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

Tabel berikut memiliki deskripsi singkat tentang perintah yang tersedia untuk iotedge:

command Deskripsi
list Mencantumkan modul
logs Mengambil log modul
restart Menghentikan dan memulai ulang modul

Mencantumkan semua modul IoT Edge

Untuk mencantumkan semua modul yang berjalan di perangkat Anda, gunakan perintah iotedge list.

Berikut ini adalah sampel keluaran perintah. Perintah ini mencantumkan semua modul, konfigurasi terkait, dan IP eksternal yang terkait dengan modul. Misalnya, Anda dapat mengakses aplikasi webserver di 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>

Memulai ulang modul

Anda dapat menggunakan perintah list untuk mencantumkan semua modul yang berjalan di perangkat Anda. Kemudian identifikasi nama modul yang ingin Anda mulai ulang dan gunakan dengan perintah restart.

Berikut adalah sampel keluaran cara memulai ulang modul. Berdasarkan deskripsi berapa lama modul berjalan, Anda dapat melihat bahwa cuda-sample1 dimulai ulang.

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

Mendapatkan log modul

Gunakan perintah logs untuk mendapatkan log untuk modul IoT Edge yang berjalan di perangkat Anda.

Jika ada kesalahan dalam pembuatan citra kontainer atau saat menarik gambar, jalankan logs edgeagent. edgeagent adalah kontainer runtime IoT Edge yang bertanggung jawab untuk memprovisikan kontainer lain. Karena logs edgeagent membuang semua log, cara yang baik untuk melihat kesalahan terbaru adalah dengan menggunakan opsi --tail 0'.

Berikut adalah output sampelnya.

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

Catatan

Metode langsung seperti GetModuleLogs atau UploadModuleLogs tidak didukung pada IoT Edge di Kubernetes pada Azure Stack Edge Anda.

Menggunakan perintah kubectl

Pada perangkat GPU Azure Stack Edge Pro yang telah mengonfigurasi peran komputasi, semua perintah kubectl tersedia untuk memantau atau memecahkan masalah modul. Untuk melihat daftar perintah yang tersedia, jalankan kubectl --help dari jendela perintah.

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>

Untuk daftar komprehensif perintah kubectl, buka kubectl cheatsheet.

Untuk mendapatkan IP layanan atau modul yang terekspos di luar kluster Kubernetes

Untuk mendapatkan IP dari modul atau layanan penyeimbangan beban yang diekspos di luar Kubernetes, jalankan perintah berikut:

kubectl get svc -n iotedge

Berikut adalah sampel keluaran semua layanan atau modul yang diekspos di luar kluster Kubernetes.

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

Alamat IP di kolom IP Eksternal sesuai dengan titik akhir eksternal untuk layanan atau modul. Anda juga bisa Mendapatkan IP eksternal di dasbor Kubernetes.

Untuk memeriksa apakah modul berhasil disebarkan

Modul komputasi adalah kontainer yang memiliki logika bisnis yang diimplementasikan. Pod Kubernetes dapat memiliki beberapa kontainer yang berjalan.

Untuk memeriksa apakah modul komputasi berhasil disebarkan, sambungkan ke antarmuka PowerShell perangkat. Jalankan perintah get pods dan periksa apakah kontainer (sesuai dengan modul komputasi) sedang berjalan.

Untuk mendapatkan daftar semua pod yang berjalan di namespace layanan tertentu, jalankan perintah berikut:

get pods -n <namespace>

Untuk memeriksa modul yang diterapkan melalui IoT Edge, jalankan perintah berikut:

get pods -n iotedge

Berikut adalah contoh output semua pod yang berjalan di namespace layanan 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>

Status Status menunjukkan bahwa semua pod dalam namespace layanan berjalan dan Ready menunjukkan jumlah kontainer yang disebarkan dalam pod. Di sampel sebelumnya, semua pod berjalan dan semua modul yang disebarkan di masing-masing pod berjalan.

Untuk memeriksa modul yang disebarkan melalui Azure Arc, jalankan perintah berikut:

get pods -n azure-arc

Atau, Anda dapat Menyambungkan ke dashboard Kubernetes untuk melihat penyebaran IoT Edge atau Azure Arc.

Untuk keluaran yang lebih verbose dari pod tertentu untuk namespace layanan tertentu, Anda dapat menjalankan perintah berikut:

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

Sampel output ditunjukkan di sini.

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

Untuk mendapatkan log kontainer

Untuk mendapatkan log untuk modul, jalankan perintah berikut dari antarmuka PowerShell perangkat:

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

Karena bendera all-containers membuang semua log untuk semua kontainer, cara yang baik untuk melihat kesalahan baru-baru ini adalah dengan menggunakan opsi --tail 10.

Berikut adalah sampel keluarannya.

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

Mengubah batas memori dan prosesor untuk node pekerja Kubernetes

Untuk mengubah batas memori atau prosesor untuk node pekerja Kubernetes, lakukan langkah berikut:

  1. Sambungkan ke antarmuka PowerShell perangkat.

  2. Untuk mendapatkan sumber daya saat ini untuk node pekerja dan opsi peran, jalankan perintah berikut:

    Get-AzureDataBoxEdgeRole

    Berikut adalah output sampelnya. Perhatikan nilai untuk Name dan Compute di bawah bagian Resources. MemoryInBytes dan ProcessorCount menunjukkan jumlah memori dan prosesor nilai yang saat ini ditetapkan untuk node pekerja Kubernetes.

    [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. Untuk mengubah nilai memori dan prosesor untuk node pekerja, jalankan perintah berikut:

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

    Berikut adalah output sampelnya.

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

Saat mengubah penggunaan memori dan prosesor, ikuti panduan ini.

  • Memori default adalah 25% dari spesifikasi perangkat.
  • Jumlah prosesor default adalah 30% dari spesifikasi perangkat.
  • Saat mengubah nilai untuk jumlah memori dan prosesor, kami sarankan Anda memvariasikan nilai antara 15% hingga 60% dari jumlah memori dan prosesor perangkat.
  • Kami merekomendasikan batas atas 60% adalah agar ada cukup sumber daya untuk komponen sistem.

Menyambungkan ke BMC

Catatan

Pengontrol manajemen baseboard (BMC) tidak tersedia di Azure Stack Edge Pro 2 dan Azure Stack Edge Mini R. Cmdlet yang dijelaskan di bagian ini hanya berlaku untuk Azure Stack Edge Pro GPU dan Azure Stack Edge Pro R.

BMC digunakan untuk memantau dan mengelola perangkat Anda dari jarak jauh. Bagian ini menjelaskan cmdlet yang dapat digunakan untuk mengelola konfigurasi BMC. Sebelum menjalankan salah satu cmdlet ini, Sambungkan ke antarmuka PowerShell perangkat.

  • Get-HcsNetBmcInterface: Gunakan cmdlet ini untuk mendapatkan properti konfigurasi jaringan BMC, misalnya, IPv4Address, IPv4Gateway, IPv4SubnetMask, DhcpEnabled.

    Berikut adalah hasil sampelnya:

    [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: Anda dapat menggunakan cmdlet ini dalam dua cara berikut.

    • Gunakan cmdlet untuk mengaktifkan atau menonaktifkan konfigurasi DHCP untuk BMC dengan menggunakan nilai yang sesuai untuk parameter UseDhcp.

      Set-HcsNetBmcInterface -UseDhcp $true
      

      Berikut adalah hasil sampelnya:

      [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>
      
    • Gunakan cmdlet ini untuk mengonfigurasi konfigurasi statis untuk BMC. Anda dapat menentukan nilai untuk IPv4Address, IPv4Gateway, dan IPv4SubnetMask.

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

      Berikut adalah hasil sampelnya:

      [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: Gunakan cmdlet ini untuk memodifikasi kata sandi BMC untuk EdgeUser. Nama pengguna - EdgeUser- peka huruf besar/kecil.

    Berikut adalah hasil sampelnya:

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

Keluar dari sesi jarak jauh

Untuk keluar dari sesi PowerShell jarak jauh, tutup jendela PowerShell.

Langkah berikutnya