إدارة جهاز Azure Stack Edge Pro GPU عبر Windows PowerShell

ينطبق على: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 معالجة البيانات وإرسالها عبر الشبكة إلى Azure. توضح هذه المقالة بعض مهام التكوين والإدارة لجهاز Azure Stack Edge Pro GPU. يمكنك استخدام مدخل Microsoft Azure أو واجهة مستخدم الويب المحلية أو واجهة Windows PowerShell لإدارة جهازك.

تركز هذه المقالة على كيفية الاتصال بواجهة PowerShell للجهاز والمهام التي يمكنك القيام بها باستخدام هذه الواجهة.

الاتصال إلى واجهة PowerShell

اعتمادا على نظام تشغيل العميل، تختلف إجراءات الاتصال عن بعد بالجهاز.

الاتصال عن بعد من عميل Windows

المتطلبات الأساسية

قبل البدء، تأكد من:

  • يقوم عميل Windows بتشغيل Windows PowerShell 5.0 أو إصدار أحدث.

  • يحتوي عميل Windows على سلسلة التوقيع (شهادة الجذر) المقابلة لشهادة العقدة المثبتة على الجهاز. للحصول على إرشادات مفصلة، راجع تثبيت الشهادة على عميل Windows.

  • يحتوي hosts الملف الموجود في C:\Windows\System32\drivers\etc لعميل Windows على إدخال مطابق لشهادة العقدة بالتنسيق التالي:

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

    فيما يلي مثال لإدخال الملف hosts :

    10.100.10.10 1HXQG13.wdshcsso.com

الخطوات التفصيلية

اتبع هذه الخطوات للاتصال عن بعد من عميل Windows.

  1. ابدأ في جلسة Windows PowerShell كمسؤول.

  2. تأكد من تشغيل خدمة Windows Remote Management على عميل. في نافذة موجه الأوامر، يُرجى كتابة:

    winrm quickconfig
    

    لمزيد من المعلومات، راجع التثبيت والتكوين لإدارة Windows عن بعد.

  3. تعيين متغير إلى سلسلة الاتصال المستخدمة في hosts الملف.

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

    استبدل <Node serial number> و<DNS domain of the device> بالرقم التسلسلي للعقدة ومجال DNS لجهازك. يمكنك الحصول على قيم الرقم التسلسلي للعقدة من صفحة الشهادات ومجال DNS من صفحة الجهاز في واجهة مستخدم الويب المحلية لجهازك.

  4. لإضافة سلسلة الاتصال هذه لجهازك إلى قائمة المضيفين الموثوق بهم للعميل، اكتب الأمر التالي:

    Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
    
  5. ابدأ جلسة Windows PowerShell على الجهاز:

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

    إذا رأيت خطأ متعلقًا بعلاقة الثقة، فتحقق مما إذا كانت سلسلة توقيع شهادة العقدة التي تم تحميلها إلى جهازك مثبتة أيضًا على العميل الذي يصل إلى جهازك.

  6. أدخل كلمة المرور عند المطالبة. استخدم نفس كلمة المرور المستخدمة لتسجيل الدخول إلى واجهة مستخدم ويب المحلية. كلمة مرور واجهة مستخدم الويب المحلية الافتراضية هي Password1. عند الاتصال بنجاح بالجهاز باستخدام PowerShell البعيد، سترى نموذج الإخراج التالي:

    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>
    

عند استخدام -UseSSL الخيار ، كنت عن بعد عبر PowerShell عبر https. نوصي دائما باستخدام https للاتصال عن بعد عبر PowerShell. ضمن الشبكات الموثوق بها، يعد الاتصال عن بعد عبر PowerShell عبر http مقبولا. يمكنك أولا تمكين PowerShell البعيد عبر http في واجهة المستخدم المحلية. ثم يمكنك الاتصال بواجهة PowerShell للجهاز باستخدام الإجراء السابق دون -UseSSL الخيار.

إذا كنت لا تستخدم الشهادات (نوصي باستخدام الشهادات!)، يمكنك تخطي التحقق من صحة الشهادة باستخدام خيارات الجلسة: -SkipCACheck -SkipCNCheck -SkipRevocationCheck.

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

فيما يلي مثال على الإخراج عند تخطي التحقق من الشهادة:

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>

هام

في الإصدار الحالي، يمكنك الاتصال بواجهة PowerShell للجهاز فقط عبر عميل Windows. -UseSSL لا يعمل الخيار مع عملاء Linux.

إنشاء حزمة دعم

إذا واجهت أي مشكلات في الجهاز، يمكنك إنشاء حزمة دعم من سجلات النظام. يستخدم دعم Microsoft هذه الحزمة لاستكشاف المشكلات وإصلاحها. اتبع هذه الخطوات لإنشاء حزمة دعم:

  1. الاتصال إلى واجهة PowerShell لجهازك.

  2. Get-HcsNodeSupportPackage استخدم الأمر لإنشاء حزمة دعم. استخدام cmdlet كما يلي:

    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 السجلات من جهازك وينسخ هذه السجلات إلى شبكة محددة أو مشاركة محلية محددة.

    المعلمات المستخدمة هي كما يلي:

    • -Path - حدد الشبكة أو المسار المحلي لنسخ حزمة الدعم إليها. (مطلوب)
    • -Credential - حدد بيانات الاعتماد للوصول إلى المسار المحمي.
    • -Zip - حدد لإنشاء ملف مضغوط.
    • -Include - حدد لتضمين المكونات التي سيتم تضمينها في حزمة الدعم. إذا لم يتم تحديده، Default فيفترض.
    • -IncludeArchived - حدد لتضمين السجلات المؤرشفة في حزمة الدعم.
    • -IncludePeriodicStats - حدد لتضمين سجلات الإحصائيات الدورية في حزمة الدعم.

عرض معلومات الجهاز

  1. الاتصال إلى واجهة PowerShell.

  2. Get-HcsApplianceInfo استخدم للحصول على المعلومات لجهازك.

    يوضح المثال التالي استخدام cmdlet هذا:

    [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
    

    فيما يلي جدول يلخص بعض معلومات الجهاز المهمة:

    المعلمة ‏‏الوصف‬
    اسم مألوف الاسم المألوف للجهاز كما تم تكوينه من خلال واجهة مستخدم الويب المحلية أثناء نشر الجهاز. الاسم المألوف الافتراضي هو الرقم التسلسلي للجهاز.
    SerialNumber الرقم التسلسلي للجهاز هو رقم فريد تم تعيينه في المصنع.
    النموذج نموذج جهاز Azure Stack Edge أو Data Box Gateway. النموذج فعلي ل Azure Stack Edge والظاهري ل Data Box Gateway.
    FriendlySoftwareVersion السلسلة المألوفة التي تتوافق مع إصدار برنامج الجهاز. بالنسبة إلى معاينة النظام قيد التشغيل، سيكون إصدار البرنامج المألوف Data Box Edge 1902.
    HcsVersion إصدار برنامج HCS قيد التشغيل على جهازك. على سبيل المثال، إصدار برنامج HCS المطابق ل Data Box Edge 1902 هو 1.4.771.324.
    LocalCapacityInMb إجمالي السعة المحلية للجهاز في Megabits.
    IsRegistered تشير هذه القيمة إلى ما إذا تم تنشيط جهازك باستخدام الخدمة.

عرض معلومات برنامج تشغيل GPU

إذا تم تكوين دور الحساب على جهازك، يمكنك أيضا الحصول على معلومات برنامج تشغيل GPU عبر واجهة PowerShell.

  1. الاتصال إلى واجهة PowerShell.

  2. Get-HcsGpuNvidiaSmi استخدم للحصول على معلومات برنامج تشغيل GPU لجهازك.

    يوضح المثال التالي استخدام cmdlet هذا:

    Get-HcsGpuNvidiaSmi
    

    دون معلومات برنامج التشغيل من إخراج نموذج cmdlet هذا.

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

تمكين خدمة متعددة العمليات (MPS)

توفر خدمة متعددة العمليات (MPS) على وحدات معالجة الرسومات Nvidia آلية حيث يمكن مشاركة وحدات معالجة الرسومات من خلال وظائف متعددة، حيث يتم تخصيص بعض النسبة المئوية من موارد وحدة معالجة الرسومات لكل وظيفة. MPS هي ميزة معاينة على جهاز Azure Stack Edge Pro GPU. لتمكين MPS على جهازك، اتبع الخطوات التالية:

  1. قبل البدء، تأكد من:

    1. لقد قمت بتكوين جهاز Azure Stack Edge Pro وتنشيطه باستخدام مورد Azure Stack Edge في Azure.
    2. لقد قمت بتكوين الحساب على هذا الجهاز في مدخل Microsoft Azure.
  2. الاتصال إلى واجهة PowerShell.

  3. استخدم الأمر التالي لتمكين MPS على جهازك.

    Start-HcsGpuMPS
    

إشعار

عند تحديث برنامج الجهاز وكتلة Kubernetes، لا يتم الاحتفاظ بإعداد MPS لأحمال العمل. ستحتاج إلى تمكين MPS مرة أخرى.

إعادة ضبط جهازك

لإعادة ضبط جهازك، تحتاج إلى مسح جميع البيانات الموجودة على قرص البيانات وقرص التمهيد لجهازك بشكل آمن.

Reset-HcsAppliance استخدم cmdlet لمسح كل من أقراص البيانات وقرص التمهيد أو أقراص البيانات فقط. SecureWipeBootDisk تسمح لك مفاتيح التبديل و SecureWipeDataDisks بمسح قرص التمهيد وأقراص البيانات على التوالي.

يقوم SecureWipeBootDisk مفتاح التبديل بمسح قرص التمهيد ويجعل الجهاز غير قابل للاستخدام. يجب استخدامه فقط عندما يحتاج الجهاز إلى إرجاعه إلى Microsoft. لمزيد من المعلومات، راجع إرجاع الجهاز إلى Microsoft.

إذا كنت تستخدم إعادة تعيين الجهاز في واجهة مستخدم الويب المحلية، يتم مسح أقراص البيانات فقط بشكل آمن ولكن يتم الاحتفاظ بقرص التمهيد كما هو. يحتوي قرص التمهيد على تكوين الجهاز.

  1. الاتصال إلى واجهة PowerShell.

  2. في نافذة موجه الأوامر، يُرجى كتابة:

    Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks

    يوضح المثال التالي كيفية استخدام cmdlet هذا:

    [10.128.24.33]: PS>Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
    
    Confirm
    Are you sure you want to perform this action?
    Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance".
    [Y] Yes  [A] Yes to All  [N] No  [L] No to All  [?] Help (default is "Y"): N
    

الحصول على سجلات الحوسبة

إذا تم تكوين دور الحساب على جهازك، يمكنك أيضا الحصول على سجلات الحوسبة عبر واجهة PowerShell.

  1. الاتصال إلى واجهة PowerShell.

  2. Get-AzureDataBoxEdgeComputeRoleLogs استخدم للحصول على سجلات الحوسبة لجهازك.

    يوضح المثال التالي استخدام cmdlet هذا:

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

    فيما يلي وصف للمعلمات المستخدمة ل cmdlet:

    • Path: قم بتوفير مسار شبكة للمشاركة حيث تريد إنشاء حزمة سجل الحوسبة.
    • Credential: قم بتوفير اسم المستخدم لمشاركة الشبكة. عند تشغيل cmdlet هذا، ستحتاج إلى توفير كلمة مرور المشاركة.
    • FullLogCollection: تضمن هذه المعلمة أن حزمة السجل ستحتوي على جميع سجلات الحوسبة. بشكل افتراضي، تحتوي حزمة السجل على مجموعة فرعية فقط من السجلات.

تغيير ملفات تعريف حمل عمل Kubernetes

بعد تكوين نظام مجموعة وإنشاء مفاتيح ظاهرية جديدة، يمكنك إضافة أو حذف الشبكات الظاهرية المقترنة بمفاتيح التبديل الظاهرية. للحصول على خطوات مفصلة، راجع تكوين مفاتيح التبديل الظاهرية.

بعد إنشاء رموز التبديل الظاهرية، يمكنك تمكين مفاتيح حركة مرور حساب Kubernetes لتحديد ملف تعريف حمل عمل Kubernetes. للقيام بذلك باستخدام واجهة المستخدم المحلية، استخدم الخطوات في تكوين IPS للحساب. للقيام بذلك باستخدام PowerShell، استخدم الخطوات التالية:

  1. الاتصال إلى واجهة PowerShell.

  2. Get-HcsApplianceInfo استخدم الأمر cmdlet للحصول على الإعدادات KubernetesPlatform والحالية KubernetesWorkloadProfile لجهازك.

  3. Get-HcsKubernetesWorkloadProfiles استخدم cmdlet لتحديد ملفات التعريف المتوفرة على جهاز Azure Stack Edge.

    [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 استخدم cmdlet لتعيين ملف تعريف حمل العمل ل AP5GC، وهو حل Azure Private MEC.

    يوضح المثال التالي استخدام cmdlet هذا:

    Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
    

    فيما يلي عينة إخراج ل cmdlet هذا:

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

تغيير جراب Kubernetes والشبكات الفرعية للخدمة

إذا كنت تقوم بتشغيل خيار أحمال العمل الأخرى في بيئتك، بشكل افتراضي، يستخدم Kubernetes على جهاز Azure Stack Edge الشبكات الفرعية 172.27.0.0/16 و172.28.0.0/16 للحجيرة والخدمة على التوالي. إذا كانت هذه الشبكات الفرعية قيد الاستخدام بالفعل في شبكتك، يمكنك تشغيل Set-HcsKubeClusterNetworkInfo cmdlet لتغيير هذه الشبكات الفرعية.

تريد إجراء هذا التكوين قبل تكوين الحساب من مدخل Microsoft Azure حيث يتم إنشاء مجموعة Kubernetes في هذه الخطوة.

  1. الاتصال إلى واجهة PowerShell للجهاز.

  2. من واجهة PowerShell للجهاز، قم بتشغيل:

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

    <استبدل تفاصيل> الشبكة الفرعية مع نطاق الشبكة الفرعية الذي تريد استخدامه.

  3. بمجرد تشغيل هذا الأمر، يمكنك استخدام Get-HcsKubeClusterNetworkInfo الأمر للتحقق من تغيير الشبكات الفرعية للجراب والخدمة.

فيما يلي نموذج إخراج لهذا الأمر.

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

قبل البدء، يجب أن يكون لديك:

على جهاز Azure Stack Edge Pro GPU الذي تم تكوين دور الحساب له، يمكنك استكشاف أخطاء الجهاز أو مراقبته باستخدام مجموعتين مختلفتين من الأوامر.

  • استخدام iotedge الأوامر. تتوفر هذه الأوامر للعمليات الأساسية لجهازك.
  • استخدام kubectl الأوامر. تتوفر هذه الأوامر لمجموعة واسعة من العمليات لجهازك.

لتنفيذ أي من مجموعة الأوامر أعلاه، تحتاج إلى الاتصال إلى واجهة PowerShell.

استخدام iotedge الأوامر

لمشاهدة قائمة بالأوامر المتوفرة، اتصل بواجهة PowerShell واستخدم الدالة iotedge .

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

Commands:
   list
   logs
   restart

[10.100.10.10]: PS>

يحتوي الجدول التالي على وصف مختصر للأوامر المتوفرة ل iotedge:

الأمر ‏‏الوصف
list سرد الوحدات النمطية
logs إحضار سجلات وحدة نمطية
restart إيقاف وحدة نمطية وإعادة تشغيلها

سرد جميع وحدات IoT Edge

لسرد جميع الوحدات النمطية التي تعمل على جهازك، استخدم iotedge list الأمر .

فيما يلي نموذج إخراج لهذا الأمر. يسرد هذا الأمر جميع الوحدات النمطية والتكوين المقترن وIPs الخارجية المقترنة بالوحدات النمطية. على سبيل المثال، يمكنك الوصول إلى تطبيق خادم الويب في 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>

إعادة تشغيل الوحدات النمطية

يمكنك استخدام list الأمر لسرد جميع الوحدات النمطية التي تعمل على جهازك. ثم حدد اسم الوحدة النمطية التي تريد إعادة تشغيلها واستخدمها مع 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: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>

الحصول على سجلات الوحدة النمطية

logs استخدم الأمر للحصول على سجلات لأي وحدة IoT Edge تعمل على جهازك.

إذا كان هناك خطأ في إنشاء صورة الحاوية أو أثناء سحب الصورة، فقم بتشغيل logs edgeagent. edgeagent هي حاوية وقت تشغيل IoT Edge المسؤولة عن توفير حاويات أخرى. نظرا لأن logs edgeagent تفريغ كافة السجلات، فإن الطريقة الجيدة لرؤية الأخطاء الأخيرة هي استخدام الخيار --tail 0".

وفيما يلي عينة إخراج.

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

إشعار

الأساليب المباشرة مثل GetModuleLogs أو UploadModuleLogs غير مدعومة على IoT Edge على Kubernetes على Azure Stack Edge.

استخدام أوامر kubectl

على جهاز Azure Stack Edge Pro GPU الذي تم تكوين دور الحوسبة عليه، تتوفر جميع kubectl الأوامر لمراقبة الوحدات النمطية أو استكشاف الأخطاء وإصلاحها. لمشاهدة قائمة بالأوامر المتوفرة، قم بتشغيل 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>

للحصول على قائمة شاملة بالأوامر kubectl ، انتقل إلى kubectl ورقة المعلومات المرجعية.

للحصول على IP للخدمة أو الوحدة النمطية المكشوفة خارج مجموعة Kubernetes

للحصول على IP لخدمة موازنة التحميل أو الوحدات النمطية المكشوفة خارج Kubernetes، قم بتشغيل الأمر التالي:

kubectl get svc -n iotedge

فيما يلي عينة إخراج لكافة الخدمات أو الوحدات النمطية التي يتم كشفها خارج مجموعة 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>

يتوافق عنوان IP في عمود IP الخارجي مع نقطة النهاية الخارجية للخدمة أو الوحدة النمطية. يمكنك أيضا الحصول على عنوان IP الخارجي في لوحة معلومات Kubernetes.

للتحقق مما إذا كانت الوحدة النمطية قد نشرت بنجاح

وحدات الحساب هي حاويات لها منطق عمل مطبق. يمكن أن تحتوي جراب Kubernetes على حاويات متعددة قيد التشغيل.

للتحقق مما إذا تم نشر وحدة حساب بنجاح، اتصل بواجهة PowerShell للجهاز. get pods قم بتشغيل الأمر وتحقق مما إذا كانت الحاوية (المقابلة لوحدة الحساب) قيد التشغيل.

للحصول على قائمة بجميع القرون التي تعمل في مساحة اسم معينة، قم بتشغيل الأمر التالي:

get pods -n <namespace>

للتحقق من الوحدات النمطية المنشورة عبر IoT Edge، قم بتشغيل الأمر التالي:

get pods -n iotedge

فيما يلي عينة إخراج لكافة الحجيرات التي تعمل في 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>

تشير حالة الحالة إلى أن كافة pods في مساحة الاسم قيد التشغيل وتشير Ready إلى عدد الحاويات المنشورة في pod. في العينة السابقة، يتم تشغيل جميع pods ويتم تشغيل جميع الوحدات النمطية المنشورة في كل من pods.

للتحقق من الوحدات النمطية المنشورة عبر Azure Arc، قم بتشغيل الأمر التالي:

get pods -n azure-arc

بدلا من ذلك، يمكنك الاتصال إلى لوحة معلومات Kubernetes لمشاهدة عمليات نشر IoT Edge أو Azure Arc.

للحصول على إخراج أكثر إسهابا لجراب معين لمساحة اسم معينة، يمكنك تشغيل الأمر التالي:

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

يظهر إخراج العينة هنا.

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

للحصول على سجلات الحاوية

للحصول على سجلات وحدة نمطية، قم بتشغيل الأمر التالي من واجهة PowerShell للجهاز:

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

نظرا لأن all-containers العلامة تتخلص من جميع السجلات لجميع الحاويات، فإن الطريقة الجيدة لرؤية الأخطاء الأخيرة هي استخدام الخيار --tail 10.

فيما يلي عينة إخراج.

[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

لتغيير حدود الذاكرة أو المعالج لعقدة عامل Kubernetes، قم بالخطوات التالية:

  1. الاتصال إلى واجهة PowerShell للجهاز.

  2. للحصول على الموارد الحالية لعقدة العامل وخيارات الدور، قم بتشغيل الأمر التالي:

    Get-AzureDataBoxEdgeRole

    وفيما يلي عينة إخراج. لاحظ قيم القسم Name وضمنه ResourcesCompute. MemoryInBytes والإشارة ProcessorCount إلى ذاكرة القيم المعينة حاليا وعدد المعالجات لعقدة عامل 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. لتغيير قيم الذاكرة والمعالجات لعقدة العامل، قم بتشغيل الأمر التالي:

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

    وفيما يلي عينة إخراج.

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

أثناء تغيير استخدام الذاكرة والمعالج، اتبع هذه الإرشادات.

  • الذاكرة الافتراضية هي 25٪ من مواصفات الجهاز.
  • عدد المعالجات الافتراضي هو 30٪ من مواصفات الجهاز.
  • عند تغيير قيم عدد الذاكرة والمعالج، نوصي بتغيير القيم بين 15٪ إلى 60٪ من ذاكرة الجهاز وعدد المعالجات.
  • نوصي بحد أعلى يبلغ 60٪ بحيث تكون هناك موارد كافية لمكونات النظام.

الاتصال إلى BMC

إشعار

وحدة تحكم إدارة لوحة الأساس (BMC) غير متوفرة على Azure Stack Edge Pro 2 وAzure Stack Edge Mini R. تنطبق أوامر cmdlets الموضحة في هذا القسم فقط على Azure Stack Edge Pro GPU وAzure Stack Edge Pro R.

يتم استخدام BMC لمراقبة جهازك وإدارته عن بعد. يصف هذا القسم أوامر cmdlets التي يمكن استخدامها لإدارة تكوين BMC. قبل تشغيل أي من أوامر cmdlets هذه، الاتصال إلى واجهة PowerShell للجهاز.

  • Get-HcsNetBmcInterface: استخدم الأمر cmdlet هذا للحصول على خصائص تكوين الشبكة ل BMC، على سبيل المثال، IPv4Address، IPv4Gateway، ، IPv4SubnetMask. DhcpEnabled

    هنا هو إخراج العينة:

    [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: يمكنك استخدام cmdlet هذا بطريقتين التاليتين.

    • استخدم cmdlet لتمكين أو تعطيل تكوين DHCP ل BMC باستخدام القيمة المناسبة للمعلمة UseDhcp .

      Set-HcsNetBmcInterface -UseDhcp $true
      

      هنا هو إخراج العينة:

      [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>
      
    • استخدم الأمر cmdlet هذا لتكوين التكوين الثابت ل BMC. يمكنك تحديد قيم و IPv4AddressIPv4Gatewayو.IPv4SubnetMask

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

      هنا هو إخراج العينة:

      [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: استخدم cmdlet هذا لتعديل كلمة مرور BMC ل EdgeUser. اسم المستخدم - EdgeUser- حساس لحالة الأحرف.

    هنا هو إخراج العينة:

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

الخروج من جلسة العمل البعيدة

للخروج من جلسة عمل PowerShell البعيدة، أغلق نافذة PowerShell.

الخطوات التالية