透過 Windows PowerShell 管理 Azure Stack Edge Pro GPU 裝置
適用於: 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 入口網站、本機 Web UI 或 Windows PowerShell 介面來管理您的裝置。
本文著重於如何連線到裝置的 PowerShell 介面,以及您可以使用此介面執行的工作。
連線至 Powershell 介面
視用戶端的作業系統而定,遠端連線到裝置的程序會有所不同。
從遠端 Windows 用戶端連線
必要條件
在您開始前,請確定:
您的 Windows 用戶端執行 Windows PowerShell 5.0 以上版本。
您的 Windows 用戶端具有簽署鏈結 (根憑證) 對應到裝置上安裝的節點憑證。 如需詳細指示,請參閱在 Windows 用戶端上安裝憑證。
hosts
檔案位於 Windows 用戶端的C:\Windows\System32\drivers\etc
,具有對應至節點憑證的項目,格式如下:<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>"
以裝置的節點序號和 DNS 網域取代
<Node serial number>
和<DNS domain of the device>
。 您可以從裝置的本機 web 使用者介面中的 [裝置] 頁面,取得 [憑證] 頁面和 [DNS 網域] 中節點序號的值。若要將您裝置的此連接字串新增至用戶端的信任主機清單,請輸入下列命令:
Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force
在裝置上啟動 Windows PowerShell 工作階段:
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL
如果您看到與信任關係相關的錯誤,請檢查上傳至您裝置的節點憑證簽署鏈是否也安裝在存取您裝置的用戶端上。
出現提示時,請提供密碼。 使用與用來登入本機 Web UI 相同的密碼。 預設本機 Web UI 密碼為 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
選項時,您會以 HTTPS 透過 PowerShell 遠端處理。 建議您一律使用 HTTPS 透過 PowerShell 從遠端連線。 在信任的網路內,可接受以 HTTP 透過 PowerShell 進行遠端處理。 您必須先在本機 UI 中透過 HTTP 啟用遠端 PowerShell。 然後,您可以使用上述程序連線到裝置的 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>
重要
在目前的版本中,您只能透過 Windows 用戶端連線到裝置的 PowerShell 介面。 -UseSSL
選項不適用於 Linux 用戶端。
建立支援封裝
如果您遇到任何裝置問題,您可以從系統記錄建立支援套件。 Microsoft 支援服務會使用此套件來針對問題進行移難排解。 請遵循下列步驟以建立支援套件:
使用
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
- 指定以產生 zip 檔案。-Include
- 指定以包含要在支援套件中包含的原件。 若未指定,則會採用Default
。-IncludeArchived
- 指定以在支援套件中包含封存的記錄。-IncludePeriodicStats
- 指定以在支援套件中包含定期統計記錄。
檢視裝置資訊
使用
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
下表摘述某些重要裝置資訊:
參數 描述 FriendlyName 在裝置部署期間,透過本機 Web UI 設定的裝置自訂名稱。 預設的易記名稱是裝置序號。 SerialNumber 裝置序號是在工廠指派的唯一號碼。 模型 Azure Stack Edge 或資料箱閘道裝置的模型。 Azure Stack Edge 的此模型是實體,資料箱閘道的此模型是虛擬狀態。 FriendlySoftwareVersion 對應至裝置軟體版本的易記字串。 針對系統執行預覽,相容軟體版本會是 Data Box Edge 1902。 HcsVersion 裝置上執行的 HCS 軟體版本。 例如,對應至 Data Box Edge 1902 的 HCS 軟體版本為 1.4.771.324。 LocalCapacityInMb 裝置的總本機容量 (以百萬位元為單位)。 IsRegistered 此值表示裝置是否使用服務啟用。
檢視 GPU 驅動程式資訊
如果您的裝置上已設定計算角色,您也可以透過 PowerShell 介面取得 GPU 驅動程式資訊。
使用
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)
Nvidia GPU 上的多程序服務 (MPS) 提供一種機制,讓多個作業可以共用 GPU,其中每個作業都會配置一些百分比的 GPU 資源。 MPS 是 Azure Stack Edge Pro GPU 裝置上的預覽功能。 若要在您的裝置上啟用 MPS,請遵循下列步驟:
在您開始前,請確定:
- 您已在 Azure 中使用 Azure Stack Edge 資源設定並啟用 Azure Stack Edge Pro 裝置。
- 您已經在 Azure 入口網站中設定此裝置上的計算。
使用下列命令來啟用您裝置上的 MPS。
Start-HcsGpuMPS
注意
當裝置軟體和 Kubernetes 叢集更新時,系統不會保留工作負載的 MPS 設定。 您必須再次啟用 MPS。
重設裝置
若要重設裝置,您需要安全地抹除裝置的資料磁碟和開機磁碟上的所有資料。
使用 Reset-HcsAppliance
Cmdlet 來抹除資料磁碟和開機磁碟,或只抹除資料磁碟。 SecureWipeBootDisk
和 SecureWipeDataDisks
交換器可讓您分別抹除開機磁碟和資料磁碟。
SecureWipeBootDisk
交換器會抹除開機磁碟,並使裝置無法使用。 只有在需要將裝置傳回給 Microsoft 時,才應該使用。 如需詳細資訊,請參閱將裝置傳回給 Microsoft Word。
如果您在本機 Web UI 中使用裝置重設,則只會安全地抹除資料磁碟,但是開機磁碟會保持不變。 開機磁碟包含裝置組態。
在命令提示字元中,輸入:
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 介面取得計算記錄。
使用
Get-AzureDataBoxEdgeComputeRoleLogs
取得裝置的計算記錄。下列範例顯示此 Cmdlet 的使用方式:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollection
以下是用於 Cmdlet 的參數描述:
Path
:提供您要在其中建立計算記錄套件的共用網路路徑。Credential
:提供網路共用的使用者名稱。 當您執行此 Cmdlet 時,您必須提供共用密碼。FullLogCollection
:此參數可確保記錄套件會包含所有計算記錄。 根據預設,記錄套件只包含記錄子集。
變更 Kubernetes 工作負載設定檔
在您形成和設定叢集並建立新的虛擬交換器之後,您可以新增或刪除與虛擬交換器相關聯的虛擬網路。 如需了解詳細步驟,請參閱設定虛擬交換器。
建立虛擬交換器之後,您可以啟用 Kubernetes 計算流量的交換器,以指定 Kubernetes 工作負載配置檔。 若要使用本機 UI 執行此動作,請使用設定計算 IPS 中的步驟。 若要使用 PowerShell 執行此動作,請使用下列步驟:
使用
Get-HcsApplianceInfo
Cmdlet 來取得裝置的目前KubernetesPlatform
和KubernetesWorkloadProfile
設定。使用
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>
使用
Set-HcsKubernetesWorkloadProfile
Cmdlet 來設定 AP5GC (Azure 私人 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 Pod 和服務子網路
如果您在環境中執行 其他工作負載 選項,根據預設,Azure Stack Edge 裝置上的 Kubernetes 會分別針對 Pod 和服務使用子網 172.27.0.0/16 和 172.28.0.0/16。 如果這些子網路已在您的網路中使用,您可以執行 Set-HcsKubeClusterNetworkInfo
Cmdlet 來變更這些子網路。
您想要先執行此組態,再從 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 問題進行偵錯
開始進行之前,您必須已經:
- 設定計算網路。 請參閱教學課程:設定搭配 GPU 的 Azure Stack Edge Pro 網路。
- 在您裝置上設定的計算角色。
在已設定計算角色的 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
命令。
以下是此命令的範例輸出。 此命令會列出所有模組、相關聯的組態,以及與模組相關聯的外部 IP。 例如,您可以在 https://10.128.44.244
存取 webserver 應用程式。
[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>
注意
Azure Stack Edge 上 Kubernetes 上的 IoT Edge 不支援 GetModuleLogs 或 UploadModuleLogs 等直接方法。
使用 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
速查表。
若要取得 Kubernetes 叢集外部公開的服務或模組 IP
若要取得在 Kubernetes 外部公開的負載平衡服務或模組 IP,請執行下列命令:
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 儀表板中取得外部 IP。
若要檢查是否已成功部署模組
計算模組是已實作商務邏輯的容器。 Kubernetes Pod 可以有多個執行中的容器。
若要檢查計算模組是否已成功部署,請連線到裝置的 PowerShell 介面。
執行 get pods
命令,並檢查容器 (對應至計算模組) 是否正在執行。
若要取得在特定命名空間中執行的所有 Pod 清單,請執行下列命令:
get pods -n <namespace>
若要檢查透過 IoT Edge 部署的模組,請執行下列命令:
get pods -n iotedge
以下是在 iotedge
命名空間中執行之所有 Pod 的範例輸出。
[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 都在執行中,且每個 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
以下是範例輸出。 請記下
Resources
區段底下Name
和Compute
的值。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。本節所述的 Cmdlet 僅適用於 Azure Stack Edge Pro GPU 和 Azure Stack Edge Pro R。
BMC 用於遠端監視和管理您的裝置。 本節說明可用來管理 BMC 組態的 Cmdlet。 在執行任何此類 Cmdlet 之前,請連線到裝置的 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。藉由針對
UseDhcp
參數使用適當的值,使用 Cmdlet 啟用或停用 BMC 的 DHCP 組態。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 的靜態組態。 您可以指定
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
:使用此 Cmdlet 修改EdgeUser
的 BMC 密碼。 使用者名稱 -EdgeUser
- 區分大小寫。以下是範例輸出:
[10.100.10.10]: PS> Set-HcsBmcPassword -NewPassword "Password1" [10.100.10.10]: PS>
結束遠端工作階段
若要結束遠端 PowerShell 工作階段,請關閉 PowerShell 視窗。
下一步
- 在 Azure 入口網站中部署 Azure Stack Edge Pro GPU。