Управление устройством Azure Stack Edge Pro с GPU при помощи Windows PowerShell
ОБЛАСТЬ ПРИМЕНЕНИЯ: Azure Stack Edge Pro — GPUAzure Stack Edge Pro 2Azure Stack Edge Pro RAzure Stack Edge Mini R
Решение Azure Stack Edge Pro с GPU позволяет обрабатывать данные и передавать их по сети в Azure. В этой статье описываются некоторые задачи по настройке устройства Azure Stack Edge Pro с GPU и управлению им. Для управления устройством можно использовать портал 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.
Запустите сеанс Windows PowerShell от имени администратора.
Убедитесь, что на вашем клиенте запущена служба удаленного управления Windows. В командной строке введите:
winrm quickconfig
Дополнительные сведения см. в разделе "Установка и настройка" для удаленного управления Windows.
Назначьте переменную строке подключения, используемой в файле
hosts
.$Name = "<Node serial number>.<DNS domain of the device>"
Замените
<Node serial number>
и<DNS domain of the device>
серийным номером узла и доменом DNS вашего устройства. Вы можете получить значения серийного номера узла на странице Сертификаты, а домена DNS — на странице Устройство в локальном веб-интерфейсе устройства.Введите следующую команду, чтобы добавить эту строку подключения для устройства к списку доверенных узлов клиента:
Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
Запустите сеанс Windows PowerShell на устройстве:
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
При появлении ошибки, связанной с отношением доверия, проверьте, установлена ли цепочка подписывания сертификата узла, переданного на устройство, на клиенте, обращающемся к устройству.
В ответ на запрос укажите пароль. Используйте тот же пароль, который используется для входа в локальный веб-интерфейс. Пароль локального пользовательского веб-интерфейса по умолчанию — 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.
Создать пакет поддержки.
Если возникают проблемы с устройством, из системных журналов можно создать пакет поддержки. Служба поддержки Майкрософт использует этот пакет для устранения неполадок. Чтобы создать пакет поддержки, выполните следующие шаги.
Используйте команду
Get-HcsNodeSupportPackage
, чтобы создать пакет поддержки. Этот командлет используется следующим образом.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>]
Командлет собирает журналы с устройства и копирует эти журналы в указанную сеть или в локальную папку.
Можно использовать следующие параметры:
-Path
— определяет сеть или локальный путь для копирования пакета поддержки. (требуется)-Credential
— определяет учетные данные для доступа к защищенному пути.-Zip
— определяет необходимость создания ZIP-файла.-Include
— определяет, нужно ли включать в пакет поддержки подходящие для этого компоненты. Если этот параметр не задан, для него предполагается значениеDefault
.-IncludeArchived
— определяет, нужно ли включать в пакет поддержки архивированные журналы.-IncludePeriodicStats
— определяет, нужно ли включать в пакет поддержки журналы статистики.
Просмотр сведений об устройстве
Используйте
Get-HcsApplianceInfo
для получения сведений об устройстве.Следующий пример демонстрирует использование этого командлета:
[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. Модель является физической для Azure Stack Edge и виртуальной для Шлюза Data Box. FriendlySoftwareVersion Понятная строка, соответствующая версии программного обеспечения устройства. Для системы, в которой используется предварительная версия, понятным программным обеспечением будет Data Box Edge 1902. HcsVersion Версия программного обеспечения HCS, работающего на устройстве. Например, версия программного обеспечения HCS, соответствующая Data Box Edge 1902, — 1.4.771.324. LocalCapacityInMb Общая локальная емкость устройства в мегабитах. IsRegistered Это значение указывает, активировано ли устройство в службе.
Просмотр сведений о драйвере GPU
Если на устройстве настроена роль вычислений, можно также получить сведения о драйвере GPU с помощью интерфейса PowerShell.
Используйте команду
Get-HcsGpuNvidiaSmi
для получения сведений о драйвере GPU.Следующий пример демонстрирует использование этого командлета:
Get-HcsGpuNvidiaSmi
Запишите сведения о драйвере из примера выходных данных этого командлета.
+-----------------------------------------------------------------------------+ | 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) в GPU от Nvidia формирует механизм, в котором GPU могут использоваться несколькими заданиями, причем для каждого из них выделяется определенная доля ресурсов GPU. MPS — это предварительная версия функции на устройстве Azure Stack Edge Pro с GPU. Чтобы включить MPS на устройстве, выполните указанные ниже действия.
Перед тем как начать, убедитесь в следующем.
- Вы настроили и активировали свое устройство Azure Stack Edge Pro с помощью ресурса Azure Stack Edge в Azure.
- Вы настроили вычисление для этого устройства на портале Microsoft Azure.
Используйте следующую команду, чтобы включить MPS на своем устройстве.
Start-HcsGpuMPS
Примечание.
При обновлении программного обеспечения устройства и кластера Kubernetes параметр MPS не сохраняется для рабочих нагрузок. Вам потребуется заново включить MPS.
Сброс устройства
Чтобы сбросить настройки устройства, необходимо безопасно очистить все данные на диске данных и загрузочном диске устройства.
Чтобы очистить загрузочный диск и диски данных либо только диск данных, используйте командлет Reset-HcsAppliance
. SecureWipeDataDisks
И SecureWipeBootDisk
переключатели позволяют очистить загрузочный диск и диски данных соответственно.
Параметр SecureWipeBootDisk
позволяет очистить загрузочный диск, после чего устройство станет непригодным для использования. Этот параметр следует применять, только если вы собираетесь вернуть устройство в Майкрософт. Дополнительные сведения см. в статье о возврате устройства в Майкрософт.
Если воспользоваться сбросом настроек устройства в локальном пользовательском веб-интерфейсе, безопасно очистятся только диски данных, но загрузочный диск останется нетронутым. На загрузочном диске содержится конфигурация устройства.
В командной строке введите:
Reset-HcsAppliance -SecureWipeBootDisk -SecureWipeDataDisks
В следующем примере показано, как использовать этот командлет.
[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.
Используйте команду
Get-AzureDataBoxEdgeComputeRoleLogs
, чтобы получить журналы вычислений для устройства.Следующий пример демонстрирует использование этого командлета:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
Вот описание параметров этого командлета.
Path
: указание сетевого пути к общей папке, где нужно создать пакет журнала вычислений.Credential
: указание имени пользователя для сетевой папки. При выполнении этого командлета необходимо будет указать пароль для общей папки.FullLogCollection
: этот параметр обеспечивает включение в пакет журнала всех журналов вычислений. По умолчанию пакет журналов содержит только некоторое количество журналов.
Изменение профилей рабочей нагрузки Kubernetes
После формирования и настройки кластера и создания новых виртуальных коммутаторов можно добавлять или удалять виртуальные сети, связанные с виртуальными коммутаторами. Подробные инструкции см. в разделе "Настройка виртуальных коммутаторов".
После создания виртуальных коммутаторов можно включить коммутаторы для вычислительного трафика Kubernetes, чтобы указать профиль рабочей нагрузки Kubernetes. Чтобы сделать это с помощью локального пользовательского интерфейса, выполните действия, описанные в разделе "Настройка IPS вычислений". Чтобы сделать это с помощью PowerShell, выполните следующие действия.
Get-HcsApplianceInfo
Используйте командлет, чтобы получить текущиеKubernetesPlatform
иKubernetesWorkloadProfile
параметры для устройства.Get-HcsKubernetesWorkloadProfiles
Используйте командлет, чтобы определить профили, доступные на устройстве 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>
Set-HcsKubernetesWorkloadProfile
Используйте командлет, чтобы задать профиль рабочей нагрузки для AP5GC, решение Azure Private MEC.Следующий пример демонстрирует использование этого командлета:
Set-HcsKubernetesWorkloadProfile -Type "AP5GC"
Ниже приведен пример выходных данных для этого командлета:
[10.100.10.10]: PS>KubernetesPlatform : AKS [10.100.10.10]: PS>KubernetesWorkloadProfile : AP5GC [10.100.10.10]: PS>
Изменение подсетей службы и модуля pod Kubernetes
Если вы используете другие рабочие нагрузки в вашей среде, по умолчанию Kubernetes на устройстве Azure Stack Edge использует подсети 172.27.0.0/16 и 172.28.0.0/16 для pod и служб соответственно. Если эти подсети уже используются в вашей сети, их можно изменить с помощью командлета Set-HcsKubeClusterNetworkInfo
.
Настроить эти параметры следует до настройки вычислений на портале Azure, так как на этом этапе создается кластер Kubernetes.
В интерфейсе PowerShell на устройстве введите следующую команду:
Set-HcsKubeClusterNetworkInfo -PodSubnet <subnet details> -ServiceSubnet <subnet details>
Замените <сведения о> подсети диапазоном подсети, который вы хотите использовать.
После выполнения этой команды можно ввести команду
Get-HcsKubeClusterNetworkInfo
, чтобы убедиться, что подсети для модуля pod и службы изменились.
Ниже приведен пример результата выполнения этой команды.
[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>
Отладка проблем, связанных с IoT Edge, в Kubernetes
Перед началом работы убедитесь, что у вас есть перечисленные ниже ресурсы.
- Настроенная вычислительная сеть. См. руководство по настройке сети для Azure Stack Edge Pro с GPU.
- Роль вычислений, настроенная на устройстве.
Если на устройстве 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
.
Команда | Description |
---|---|
list |
Вывод списка модулей |
logs |
Получение журналов модуля |
restart |
Остановка и перезапуск модуля |
Получение списка всех модулей IoT Edge
Чтобы получить список всех модулей, запущенных на устройстве, используйте команду iotedge list
.
Ниже приведен пример результата выполнения этой команды. Эта команда возвращает список всех модулей, соответствующих конфигураций и внешних IP-адресов, связанных с модулями. Например, приложение webserver доступно по адресу 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-адрес на панели мониторинга Kubernetes.
Проверка успешности развертывания модуля
Модули вычислений — это контейнеры, в которых реализована бизнес-логика. В модуле pod Kubernetes могут работать несколько контейнеров.
Чтобы проверить, удалось ли развернуть модуль вычислений, подключитесь к интерфейсу PowerShell на устройстве.
Введите команду get pods
и проверьте, запущен ли контейнер, соответствующий модулю выполнения.
Чтобы получить список всех модулей pod, запущенных в определенном пространстве имен, введите следующую команду:
get pods -n <namespace>
Чтобы проверить модули, развернутые с помощью IoT Edge, введите следующую команду:
get pods -n iotedge
Ниже приведен пример выходных данных для всех модулей pod, запущенных в пространстве имен 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>
Состояние указывает, что все модули pod в пространстве имен запущены, а значение Готовые обозначает количество контейнеров, развернутых в модуле pod. В предыдущем примере запущены все модули pod и все дочерние модули, развернутые в каждом из них.
Чтобы проверить модули, развернутые с помощью Azure Arc, введите следующую команду:
get pods -n azure-arc
Вы также можете подключиться к панели мониторинга Kubernetes для просмотра сведений о развертываниях IoT Edge и Azure Arc.
Для получения более подробных сведений об определенном модуле pod для того или иного пространства имен можно использовать следующую команду:
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, выполните указанные ниже действия.
Чтобы получить сведения о текущих ресурсах для рабочего узла и параметрах ролей, введите следующую команду:
Get-AzureDataBoxEdgeRole
Вот пример вывода. Обратите внимание на значения
Name
иCompute
в разделеResources
. Значения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>
Чтобы изменить эти значения для рабочего узла, введите следующую команду:
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. Командлеты, описанные в этом разделе, применяются только к GPU Azure Stack Edge Pro и Azure Stack Edge Pro R.
BMC используется для удаленного мониторинга и управления устройством. В этом разделе описываются командлеты, с помощью которых можно управлять конфигурацией BMC. Прежде чем вводить какие-либо командлеты, подключитесь к интерфейсу PowerShell на устройстве.
Get-HcsNetBmcInterface
: с помощью этого командлета можно получить свойства сетевой конфигурации 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
: этот командлет можно использовать двумя способами.Этот командлет дает возможность включить или отключить конфигурацию 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>
С помощью этого командлета можно настроить статическую конфигурацию BMC. Допустимые значения:
IPv4Address
,IPv4Gateway
и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
: с помощью этого командлета можно изменить пароль BMC дляEdgeUser
. В имени пользователя (EdgeUser
) учитывается регистр.Пример выходных данных:
[10.100.10.10]: PS> Set-HcsBmcPassword -NewPassword "Password1" [10.100.10.10]: PS>
Выход из удаленного сеанса
Чтобы выйти из удаленного сеанса PowerShell, закройте окно PowerShell.
Следующие шаги
- Разверните Azure Stack Edge Pro с GPU на портале Azure.