Azure Stack Edge Pro GPU cihazını Windows PowerShell aracılığıyla yönetme
Uygulama hedefi:
Azure Stack Edge Pro-GPU
Azure Stack Edge Pro r
Azure Stack Edge Mini r
Azure Stack Edge Pro GPU çözümü, verileri işlemenize ve ağ üzerinden Azure 'a göndermenize olanak tanır. bu makalede Azure Stack Edge Pro GPU cihazınız için yapılandırma ve yönetim görevlerinin bazıları açıklanmaktadır. cihazınızı yönetmek için Azure portal, yerel web kullanıcı arabirimini veya Windows PowerShell arabirimini kullanabilirsiniz.
Bu makale, cihazın PowerShell arabirimine ve bu arabirimi kullanarak gerçekleştirebileceğiniz görevlere nasıl bağlanabilirim.
PowerShell arabirimine bağlanın
İstemci işletim sistemine bağlı olarak, cihaza uzaktan bağlanma yordamları farklıdır.
Bir Windows istemcisinden uzaktan bağlanma
Ön koşullar
Başlamadan önce aşağıdakilerden emin olun:
Windows istemciniz Windows PowerShell 5,0 veya üstünü çalıştırıyor.
Windows istemciniz, cihazda yüklü olan düğüm sertifikasına karşılık gelen imzalama zincirine (kök sertifika) sahiptir. Ayrıntılı yönergeler için bkz. Windows istemcinizdeki sertifikayı yükler.
hostsC:\Windows\System32\drivers\etcWindows istemciniz için konumunda bulunan dosyası aşağıdaki biçimde düğüm sertifikasına karşılık gelen bir girdiye sahiptir:<Device IP> <Node serial number>.<DNS domain of the device>Dosya için örnek bir giriş aşağıda verilmiştir
hosts:10.100.10.10 1HXQG13.wdshcsso.com
Ayrıntılı adımlar
Bir Windows istemcisinden uzaktan bağlanmak için aşağıdaki adımları izleyin.
Yönetici olarak bir Windows PowerShell oturumu çalıştırın.
Windows Uzaktan Yönetimi hizmetinin istemciniz üzerinde çalıştığından emin olun. Komut istemine şunları yazın:
winrm quickconfigDaha fazla bilgi için bkz. Windows Uzaktan Yönetimi Için yükleme ve yapılandırma.
Dosyada kullanılan bağlantı dizesine bir değişken atayın
hosts.$Name = "<Node serial number>.<DNS domain of the device>"<Node serial number>Ve<DNS domain of the device>, cihazınızın seri numarasını ve DNS etki alanını değiştirin. Cihazların yerel Web Kullanıcı arabirimindeki cihaz sayfasından SERTIFIKALAR sayfasından ve DNS etki alanından düğüm seri numarası değerlerini alabilirsiniz.Cihazınızın bu bağlantı dizesini istemcinin güvenilen konaklar listesine eklemek için aşağıdaki komutu yazın:
Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -ForceCihazda bir Windows PowerShell oturumu başlatın:
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSLGüven ilişkisiyle ilgili bir hata görürseniz, cihazınıza yüklenen düğüm sertifikasının imzalama zincirinin cihazınıza erişen istemciye de yüklenip yüklenmediğini kontrol edin.
İstendiğinde parolayı girin. Yerel Web Kullanıcı arabiriminde oturum açmak için kullanılan parolayı kullanın. Varsayılan yerel Web UI parolası Parola1'dır. Uzak PowerShell kullanarak cihaza başarıyla bağlanınca aşağıdaki örnek çıktıyı görüyorsunuz:
Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. PS C:\WINDOWS\system32> winrm quickconfig WinRM service is already running on this machine. PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com" PS C:\WINDOWS\system32> Set-Item WSMan:\localhost\Client\TrustedHosts $Name -Concatenate -Force PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing. Changes made through this interface without involving Microsoft Support could result in an unsupported configuration. [1HXQG13.wdshcsso.com]: PS>
seçeneğini -UseSSL kullanırsanız, https üzerinden PowerShell aracılığıyla iletişimde bulundurabilirsiniz. PowerShell aracılığıyla uzaktan bağlanmak için her zaman https'yi kullanmanız önerilir. Güvenilen ağlarda, http üzerinden PowerShell aracılığıyla iletişim kabul edilebilir. İlk olarak yerel kullanıcı arabiriminde http üzerinden uzak PowerShell'i etkinleştirirsiniz. Ardından, seçeneği olmadan önceki yordamı kullanarak cihazın PowerShell arabirimine -UseSSL bağlanabilirsiniz.
Sertifikaları (sertifikaları kullanmanız önerilir!) kullanıyorsanız, oturum seçeneklerini kullanarak sertifika doğrulama denetimlerini atlayabilirsiniz: -SkipCACheck -SkipCNCheck -SkipRevocationCheck .
$sessOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL -SessionOption $sessOptions
Sertifika denetimi atlanırken örnek bir çıkış aşağıdaki gibidir:
PS C:\WINDOWS\system32> $Name = "1HXQG13.wdshcsso.com"
PS C:\WINDOWS\system32> $sessOptions = New-PSSessionOption -SkipCACheck -SkipCNCheck -SkipRevocationCheck
PS C:\WINDOWS\system32> $sessOptions
MaximumConnectionRedirectionCount : 5
NoCompression : False
NoMachineProfile : False
ProxyAccessType : None
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : True
SkipCNCheck : True
SkipRevocationCheck : True
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
IncludePortInSPN : False
OutputBufferingMode : None
MaxConnectionRetryCount : 0
Culture :
UICulture :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:03:00
CancelTimeout : 00:01:00
IdleTimeout : -00:00:00.0010000
PS C:\WINDOWS\system32> Enter-PSSession -ComputerName $Name -Credential ~\EdgeUser -ConfigurationName Minishell -UseSSL -SessionOption $sessOptions
WARNING: The Windows PowerShell interface of your device is intended to be used only for the initial network configuration. Please
engage Microsoft Support if you need to access this interface to troubleshoot any potential issues you may be experiencing.
Changes made through this interface without involving Microsoft Support could result in an unsupported configuration.
[1HXQG13.wdshcsso.com]: PS>
Önemli
Geçerli sürümde, cihazın PowerShell arabirimine yalnızca bir Windows istemcisi aracılığıyla bağlanabilirsiniz. seçeneği -UseSSL Linux istemcileriyle birlikte çalışmaz.
Destek paketi oluşturma
Herhangi bir cihaz sorunu yaşarsanız, sistem günlüklerinden bir destek paketi oluşturabilirsiniz. Microsoft Desteği sorunları gidermek için bu paketi kullanır. Destek paketi oluşturmak için aşağıdaki adımları izleyin:
Get-HcsNodeSupportPackageBir destek paketi oluşturmak için komutunu kullanın. Cmdlet 'in kullanımı aşağıdaki gibidir:Get-HcsNodeSupportPackage [-Path] <string> [-Zip] [-ZipFileName <string>] [-Include {None | RegistryKeys | EtwLogs | PeriodicEtwLogs | LogFiles | DumpLog | Platform | FullDumps | MiniDumps | ClusterManagementLog | ClusterLog | UpdateLogs | CbsLogs | StorageCmdlets | ClusterCmdlets | ConfigurationCmdlets | KernelDump | RollbackLogs | Symbols | NetworkCmdlets | NetworkCmds | Fltmc | ClusterStorageLogs | UTElement | UTFlag | SmbWmiProvider | TimeCmds | LocalUILogs | ClusterHealthLogs | BcdeditCommand | BitLockerCommand | DirStats | ComputeRolesLogs | ComputeCmdlets | DeviceGuard | Manifests | MeasuredBootLogs | Stats | PeriodicStatLogs | MigrationLogs | RollbackSupportPackage | ArchivedLogs | Default}] [-MinimumTimestamp <datetime>] [-MaximumTimestamp <datetime>] [-IncludeArchived] [-IncludePeriodicStats] [-Credential <pscredential>] [<CommonParameters>]Cmdlet 'i cihazınızdan günlükleri toplar ve bu günlükleri belirtilen bir ağa veya yerel paylaşıma kopyalar.
Kullanılan parametreler aşağıdaki gibidir:
-Path-Destek paketini kopyalamak için ağı veya yerel yolu belirtin. istenir-Credential-Korumalı yola erişmek için kimlik bilgilerini belirtin.-Zip-Bir ZIP dosyası oluşturmak için belirtin.-Include-Destek paketine dahil edilecek bileşenleri dahil etmek için belirtin. Belirtilmezse,Defaultvarsayılır.-IncludeArchived-Destek paketine arşivlenmiş günlükleri dahil etmek için belirtin.-IncludePeriodicStats-Destek paketine düzenli stat günlüklerini dahil etmek için belirtin.
Cihaz bilgilerini görüntüle
Get-HcsApplianceInfoCihazınızın bilgilerini almak için kullanın.Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:
[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 : FalseBazı önemli cihaz bilgilerini özetleyen bir tablo aşağıda verilmiştir:
Parametre Açıklama FriendlyName Cihaz dağıtımı sırasında yerel Web Kullanıcı arabirimi aracılığıyla yapılandırılan cihazın kolay adı. Varsayılan kolay ad, cihaz seri numarasıdır. SerialNumber Cihaz seri numarası, fabrikada atanan benzersiz bir sayıdır. Modelleme Azure Stack Edge veya Data Box Gateway cihazınız için model. Model, Data Box Gateway için Azure Stack Edge ve sanal için fiziksel bir modeldir. Daha önce yazılım sürümü Cihaz yazılımı sürümüne karşılık gelen kolay dize. Önizleme çalıştıran bir sistem için, kolay yazılım sürümü Data Box Edge 1902 olur. HcsVersion Cihazınızda çalışan HCS yazılım sürümü. Örneğin, 1902 Data Box Edge karşılık gelen HCS yazılım sürümü 1.4.771.324 ' dir. Localcapacityınmb Cihazın megabit 'daki toplam yerel kapasitesi. IsRegistered Bu değer, cihazınızın hizmetle etkinleştirilmiş olup olmadığını gösterir.
GPU sürücü bilgilerini görüntüle
Cihazınızda işlem rolü yapılandırılmışsa, PowerShell arabirimi aracılığıyla GPU sürücü bilgilerini de alabilirsiniz.
Get-HcsGpuNvidiaSmiCIHAZıNıZıN GPU sürücü bilgilerini almak için kullanın.Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:
Get-HcsGpuNvidiaSmiBu cmdlet 'in örnek çıktısından sürücü bilgilerini bir yere unutmayın.
+-----------------------------------------------------------------------------+ | NVIDIA-SMI 440.64.00 Driver Version: 440.64.00 CUDA Version: 10.2 | |-------------------------------+----------------------+----------------------+ | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC | | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. | |===============================+======================+======================| | 0 Tesla T4 On | 000029CE:00:00.0 Off | 0 | | N/A 60C P0 29W / 70W | 1539MiB / 15109MiB | 0% Default | +-------------------------------+----------------------+----------------------+ | 1 Tesla T4 On | 0000AD50:00:00.0 Off | 0 | | N/A 58C P0 29W / 70W | 330MiB / 15109MiB | 0% Default | +-------------------------------+----------------------+----------------------+
Çok Işlem hizmeti 'ni (MPS) etkinleştir
NVIDIA GPU 'larda çoklu Işlem hizmeti (MPS), her bir işin GPU kaynaklarının bir yüzdesi ayrıldığı birden çok iş tarafından paylaşılabilen bir mekanizma sağlar. MPS Azure Stack Edge Pro GPU cihazındaki bir önizleme özelliğidir. Cihazınızda MP 'leri etkinleştirmek için şu adımları izleyin:
Başlamadan önce aşağıdakilerden emin olun:
- Azure Stack Edge Pro cihazınızı Azure 'Da Azure Stack Edge kaynağıyla yapılandırdık ve etkinleştirdiniz.
- Bu cihazda işlem Azure Portal yapılandırdınız.
Cihazınızda MPS 'yi etkinleştirmek için aşağıdaki komutu kullanın.
Start-HcsGpuMPS
Not
Cihaz yazılımı ve Kubernetes kümesi güncelleştirilirken, iş yükleri için MPS ayarı korunmaz. MPS 'yi yeniden etkinleştirmeniz gerekir.
Cihazınızı sıfırlama
Cihazınızı sıfırlamak için veri diskinde ve cihazınızın önyükleme diskinde bulunan tüm verileri güvenli bir şekilde silmeniz gerekir.
Reset-HcsApplianceCmdlet 'ini kullanarak hem veri disklerini hem de önyükleme diskini veya yalnızca veri disklerini silebilirsiniz. ClearDataVe BootDisk anahtarları, veri disklerini ve önyükleme diskini sırasıyla temizlemenize olanak tanır.
BootDiskAnahtar, önyükleme diskini temizler ve cihazın kullanılamamasına neden olur. Yalnızca cihazın Microsoft’a iade edilmesi gerektiğinde kullanılması gerekir. Daha fazla bilgi için bkz. cihazı Microsoft 'A döndürme.
Yerel web kullanıcı arabiriminde cihaz sıfırlama özelliğini kullanırsanız, yalnızca veri diskleri güvenli bir şekilde silinir ve önyükleme diskinde işlem yapılmaz. Önyükleme diski cihaz yapılandırmasını içerir.
Komut istemine şunları yazın:
Reset-HcsAppliance -ClearData -BootDiskAşağıdaki örnek, bu cmdlet 'in nasıl kullanılacağını gösterir:
[10.128.24.33]: PS>Reset-HcsAppliance -ClearData -BootDisk Confirm Are you sure you want to perform this action? Performing the operation "Reset-HcsAppliance" on target "ShouldProcess appliance". [Y] Yes [A] Yes to All [N] No [L] No to All [?] Help (default is "Y"): N
İşlem günlüklerini al
İşlem rolü cihazınızda yapılandırılmışsa, işlem günlüklerini PowerShell arabirimi aracılığıyla da alabilirsiniz.
Get-AzureDataBoxEdgeComputeRoleLogsCihazınızın işlem günlüklerini almak için kullanın.Aşağıdaki örnek, bu cmdlet 'in kullanımını gösterir:
Get-AzureDataBoxEdgeComputeRoleLogs -Path "\\hcsfs\logs\myacct" -Credential "username" -FullLogCollectionCmdlet 'i için kullanılan parametrelerin açıklaması aşağıdadır:
Path: İşlem günlüğü paketini oluşturmak istediğiniz paylaşıma yönelik bir ağ yolu sağlayın.Credential: Ağ paylaşımının Kullanıcı adını sağlayın. Bu cmdlet 'i çalıştırdığınızda, paylaşma parolasını sağlamanız gerekir.FullLogCollection: Bu parametre, günlük paketinin tüm işlem günlüklerini içermesini sağlar. Varsayılan olarak, günlük paketi yalnızca bir Günlükler alt kümesi içerir.
Kubernetes pod ve hizmet alt ağlarını değiştirme
Azure Stack Edge cihazındaki Kubernetes varsayılan olarak, sırasıyla Pod ve hizmet için 172.27.0.0/16 ve 172.28.0.0/16 alt ağlarını kullanır. Bu alt ağlar ağınızda zaten kullanılıyorsa, Set-HcsKubeClusterNetworkInfo Bu alt ağları değiştirmek için cmdlet 'ini çalıştırabilirsiniz.
Bu adımda, Kubernetes kümesi oluşturulduğundan Azure portal işlem yapılandırmadan önce bu yapılandırmayı gerçekleştirmek istiyorsunuz.
Cihazın PowerShell arabiriminden şunu çalıştırın:
Set-HcsKubeClusterNetworkInfo -PodSubnet <subnet details> -ServiceSubnet <subnet details>Öğesini <subnet details> kullanmak istediğiniz alt ağ aralığı ile değiştirin.
Bu komutu çalıştırdığınızda,
Get-HcsKubeClusterNetworkInfoPod ve hizmet alt ağlarının değiştiğini doğrulamak için komutunu kullanabilirsiniz.
Bu komut için örnek bir çıktı aşağıda verilmiştir.
[10.100.10.10]: PS>Set-HcsKubeClusterNetworkInfo -PodSubnet 10.96.0.1/16 -ServiceSubnet 10.97.0.1/16
[10.100.10.10]: PS>Get-HcsKubeClusterNetworkInfo
Id PodSubnet ServiceSubnet
-- --------- -------------
6dbf23c3-f146-4d57-bdfc-76cad714cfd1 10.96.0.1/16 10.97.0.1/16
[10.100.10.10]: PS>
IoT Edge ilgili Kubernetes sorunlarını ayıklama
Başlamadan önce, şunları yapmanız gerekir:
- İşlem ağı yapılandırıldı. bkz. öğretici: Azure Stack Edge için ağı GPU ile Pro yapılandırma.
- Cihazınızda yapılandırılan işlem rolü.
işlem rolü yapılandırılmış bir Azure Stack Edge Pro GPU cihazında, iki farklı komut kümesi kullanarak cihazı sorun gidermeye veya izlemeye izleyebilirsiniz.
iotedgeKomutları kullanma. Bu komutlar, cihazınız için temel işlemler için kullanılabilir.kubectlKomutları kullanma. Bu komutlar, cihazınız için kapsamlı bir işlem kümesi için kullanılabilir.
yukarıdaki komut kümesinden birini yürütmek için PowerShell arabirimine Bağlangerekir.
iotedgeKomutları kullanma
Kullanılabilir komutların listesini görmek için PowerShell arabirimine bağlanın ve iotedge işlevini kullanın.
[10.100.10.10]: PS>iotedge -?
Usage: iotedge COMMAND
Commands:
list
logs
restart
[10.100.10.10]: PS>
Aşağıdaki tabloda, için kullanılabilen komutların kısa bir açıklaması verilmiştir iotedge :
| command | Description |
|---|---|
list |
Modülleri listeleme |
logs |
Modülün günlüklerini getirme |
restart |
Modülü durdurma ve yeniden başlatma |
Tüm IoT Edge modüllerini listeleme
Cihazınızda çalışan tüm modülleri listelemek için iotedge list komutunu kullanın.
Bu komutun örnek bir çıktısı aşağıda verilmiştir. Bu komut tüm modülleri, ilişkili yapılandırmayı ve modüllerle ilişkili dış IP 'Leri listeler. Örneğin, Web sunucusu uygulamasına adresinden erişebilirsiniz 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>
Modülleri yeniden Başlat
listCihazınızda çalışan tüm modülleri listelemek için komutunu kullanabilirsiniz. Sonra yeniden başlatmak istediğiniz modülün adını belirleyip komutuyla birlikte kullanın restart .
Modülün yeniden başlatılmasının örnek bir çıktısı aşağıda verilmiştir. Modülün ne kadar süreyle çalıştığı açıklamasına bağlı olarak, cuda-sample1 yeniden başlatıldığından emin olabilirsiniz.
[10.100.10.10]: PS>iotedge list
NAME STATUS DESCRIPTION CONFIG EXTERNAL-IP PORT(S)
---- ------ ----------- ------ ----------- -------
edgehub Running Up 5 days mcr.microsoft.com/azureiotedge-hub:1.0 10.57.48.62 443:31457/TCP,5671:308
81/TCP,8883:31753/TCP
iotedged Running Up 7 days azureiotedge/azureiotedge-iotedged:0.1.0-beta13 <none> 35000/TCP,35001/TCP
cuda-sample2 Running Up 1 days nvidia/samples:nbody
edgeagent Running Up 7 days azureiotedge/azureiotedge-agent:0.1.0-beta13
cuda-sample1 Running Up 1 days nvidia/samples:nbody
[10.100.10.10]: PS>iotedge restart cuda-sample1
[10.100.10.10]: PS>iotedge list
NAME STATUS DESCRIPTION CONFIG EXTERNAL-IP PORT(S)
---- ------ ----------- ------ ----------- -------
edgehub Running Up 5 days mcr.microsoft.com/azureiotedge-hub:1.0 10.57.48.62 443:31457/TCP,5671:30
881/TCP,8883:31753/TC
P
iotedged Running Up 7 days azureiotedge/azureiotedge-iotedged:0.1.0-beta13 <none> 35000/TCP,35001/TCP
cuda-sample2 Running Up 1 days nvidia/samples:nbody
edgeagent Running Up 7 days azureiotedge/azureiotedge-agent:0.1.0-beta13
cuda-sample1 Running Up 4 minutes nvidia/samples:nbody
[10.100.10.10]: PS>
Modül günlüklerini al
logsCihazınızda çalışan herhangi bir IoT Edge modüle ait günlükleri almak için komutunu kullanın.
Kapsayıcı görüntüsünü oluştururken veya görüntüyü çekirken bir hata oluşursa, öğesini çalıştırın logs edgeagent . edgeagent , diğer kapsayıcıları sağlamaktan sorumlu IoT Edge çalışma zamanı kapsayıcısıdır. logs edgeagentTüm günlüklerin dökümünü yaptığından, son hataları görmenin iyi bir yolu da --tail 0 ' seçeneğini kullanmaktır.
Örnek bir çıktı aşağıda verilmiştir.
[10.100.10.10]: PS>iotedge logs cuda-sample2 --tail 10
[10.100.10.10]: PS>iotedge logs edgeagent --tail 10
<6> 2021-02-25 00:52:54.828 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:52:54.829 +00:00 [INF] - Plan execution ended for deployment 11
<6> 2021-02-25 00:53:00.191 +00:00 [INF] - Plan execution started for deployment 11
<6> 2021-02-25 00:53:00.191 +00:00 [INF] - Executing command: "Create an EdgeDeployment with modules: [cuda-sample2, edgeAgent, edgeHub, cuda-sample1]"
<6> 2021-02-25 00:53:00.212 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:53:00.212 +00:00 [INF] - Plan execution ended for deployment 11
<6> 2021-02-25 00:53:05.319 +00:00 [INF] - Plan execution started for deployment 11
<6> 2021-02-25 00:53:05.319 +00:00 [INF] - Executing command: "Create an EdgeDeployment with modules: [cuda-sample2, edgeAgent, edgeHub, cuda-sample1]"
<6> 2021-02-25 00:53:05.412 +00:00 [INF] - Executing command: "Report EdgeDeployment status: [Success]"
<6> 2021-02-25 00:53:05.412 +00:00 [INF] - Plan execution ended for deployment 11
[10.100.10.10]: PS>
Not
GetModuleLogs veya UploadModuleLogs gibi doğrudan Yöntemler, Azure Stack Kenarunuzdaki Kubernetes üzerinde IoT Edge desteklenmez.
Kubectl komutlarını kullanma
işlem rolü yapılandırılmış bir Azure Stack Edge Pro GPU cihazında, kubectl modülleri izlemek veya sorunlarını gidermek için tüm komutlar kullanılabilir. Kullanılabilir komutların bir listesini görmek için kubectl --help komut penceresinden komutunu çalıştırın.
C:\Users\myuser>kubectl --help
kubectl controls the Kubernetes cluster manager.
Find more information at: https://kubernetes.io/docs/reference/kubectl/overview/
Basic Commands (Beginner):
create Create a resource from a file or from stdin.
expose Take a replication controller, service, deployment or pod and expose it as a new Kubernetes Service
run Run a particular image on the cluster
set Set specific features on objects
run-container Run a particular image on the cluster. This command is deprecated, use "run" instead
==============CUT=============CUT============CUT========================
Usage:
kubectl [flags] [options]
Use "kubectl <command> --help" for more information about a given command.
Use "kubectl options" for a list of global command-line options (applies to all commands).
C:\Users\myuser>
Komutların kapsamlı bir listesi için kubectl kubectl yazdırılabileceksayfasına gidin.
Kubernetes kümesi dışında kullanıma sunulan hizmet veya modülün IP 'yi almak için
Kubernetes dışında sunulan bir yük dengeleme hizmetinin veya modüllerinin IP 'sini almak için aşağıdaki komutu çalıştırın:
kubectl get svc -n iotedge
Aşağıda, Kubernetes kümesi dışında kullanıma sunulan tüm hizmetlerin veya modüllerin bir örnek çıktısı verilmiştir.
[10.100.10.10]: PS>kubectl get svc -n iotedge
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
edgehub LoadBalancer 10.103.52.225 10.128.44.243 443:31987/TCP,5671:32336/TCP,8883:30618/TCP 34h
iotedged ClusterIP 10.107.236.20 <none> 35000/TCP,35001/TCP 3d8h
webserverapp LoadBalancer 10.105.186.35 10.128.44.244 8080:30976/TCP 16h
[10.100.10.10]: PS>
Dış IP sütunundaki IP adresi, hizmetin veya modülün dış uç noktasına karşılık gelir. Ayrıca, Kubernetes panosundaki dış IP 'yi de alabilirsiniz.
Modülün başarıyla dağıtılıp dağıtılmadığını denetlemek için
İşlem modülleri, iş mantığı uygulanmış kapsayıcılardır. Bir Kubernetes Pod çalıştıran birden çok kapsayıcı olabilir.
Bir işlem modülünün başarıyla dağıtılıp dağıtılmadığını denetlemek için cihazın PowerShell arabirimine bağlanın.
Komutunu çalıştırın get pods ve kapsayıcının (işlem modülüne karşılık gelen) çalışıp çalışmadığını denetleyin.
Belirli bir ad alanında çalışan tüm yığınların listesini almak için aşağıdaki komutu çalıştırın:
get pods -n <namespace>
IoT Edge aracılığıyla dağıtılan modülleri denetlemek için şu komutu çalıştırın:
get pods -n iotedge
Aşağıda, ad alanında çalışan tüm yığınların örnek bir çıktısı verilmiştir iotedge .
[10.100.10.10]: PS>kubectl get pods -n iotedge
NAME READY STATUS RESTARTS AGE
edgeagent-cf6d4ffd4-q5l2k 2/2 Running 0 20h
edgehub-8c9dc8788-2mvwv 2/2 Running 0 56m
filemove-66c49984b7-h8lxc 2/2 Running 0 56m
iotedged-675d7f4b5f-9nml4 1/1 Running 0 20h
[10.100.10.10]: PS>
Durum durumu , ad alanındaki tüm yığınların çalıştığını ve Ready öğesinin bir pod içinde dağıtılan kapsayıcıların sayısını belirtir. Yukarıdaki örnekte, tüm yığınların çalışıyor olması ve her bir yığından dağıtılan tüm modüllerin çalışıyor olması gerekir.
Azure Arc aracılığıyla dağıtılan modülleri denetlemek için şu komutu çalıştırın:
get pods -n azure-arc
alternatif olarak, IoT Edge veya Azure Arc dağıtımlarını görmek için kubernetes panosuna Bağlan.
Belirli bir ad alanı için belirli bir pod'un daha ayrıntılı bir çıktısı için aşağıdaki komutu çalıştırabilirsiniz:
kubectl describe pod <pod name> -n <namespace>
Örnek çıktı burada gösterilmiştir.
[10.100.10.10]: PS>kubectl describe pod filemove-66c49984b7 -n iotedge
Name: filemove-66c49984b7-h8lxc
Namespace: iotedge
Priority: 0
Node: k8s-1hwf613cl-1hwf613/10.139.218.12
Start Time: Thu, 14 May 2020 12:46:28 -0700
Labels: net.azure-devices.edge.deviceid=myasegpu-edge
net.azure-devices.edge.hub=myasegpu2iothub.azure-devices.net
net.azure-devices.edge.module=filemove
pod-template-hash=66c49984b7
Annotations: net.azure-devices.edge.original-moduleid: filemove
Status: Running
IP: 172.17.75.81
IPs: <none>
Controlled By: ReplicaSet/filemove-66c49984b7
Containers:
proxy:
Container ID: docker://fd7975ca78209a633a1f314631042a0892a833b7e942db2e7708b41f03e8daaf
Image: azureiotedge/azureiotedge-proxy:0.1.0-beta8
Image ID: docker://sha256:5efbf6238f13d24bab9a2b499e5e05bc0c33ab1587d6cf6f289cdbe7aa667563
Port: <none>
Host Port: <none>
State: Running
Started: Thu, 14 May 2020 12:46:30 -0700
Ready: True
Restart Count: 0
Environment:
PROXY_LOG: Debug
=============CUT===============================CUT===========================
Volumes:
config-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: iotedged-proxy-config
Optional: false
trust-bundle-volume:
Type: ConfigMap (a volume populated by a ConfigMap)
Name: iotedged-proxy-trust-bundle
Optional: false
myasesmb1local:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: myasesmb1local
ReadOnly: false
myasesmb1:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: myasesmb1
ReadOnly: false
filemove-token-pzvw8:
Type: Secret (a volume populated by a Secret)
SecretName: filemove-token-pzvw8
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events: <none>
[10.100.10.10]: PS>
Kapsayıcı günlüklerini almak için
Bir modülün günlüklerini almak için cihazın PowerShell arabiriminden aşağıdaki komutu çalıştırın:
kubectl logs <pod_name> -n <namespace> --all-containers
bayrağı tüm kapsayıcıların günlüklerinin dökümlerini yaptığı için, son hataları görmenin iyi bir yolu all-containers seçeneğini --tail 10 kullanmaktır.
Aşağıda örnek bir çıktı ve ardından gelir.
[10.100.10.10]: PS>kubectl logs filemove-66c49984b7-h8lxc -n iotedge --all-containers --tail 10
DEBUG 2020-05-14T20:40:42Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 1 events, 0.000s
DEBUG 2020-05-14T20:40:44Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:12Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 1 events, 0.000s
DEBUG 2020-05-14T20:42:14Z: loop process - 0 events, 0.000s
05/14/2020 19:46:44: Info: Opening module client connection.
05/14/2020 19:46:45: Info: Open done.
05/14/2020 19:46:45: Info: Initializing with input: /home/input, output: /home/output, protocol: Amqp.
05/14/2020 19:46:45: Info: IoT Hub module client initialized.
[10.100.10.10]: PS>
Kubernetes çalışan düğümü için bellek, işlemci sınırlarını değiştirme
Kubernetes çalışan düğümü için bellek veya işlemci sınırlarını değiştirmek için aşağıdaki adımları uygulayın:
Çalışan düğümü için geçerli kaynakları ve rol seçeneklerini almak için aşağıdaki komutu çalıştırın:
Get-AzureDataBoxEdgeRoleÖrnek bir çıktıyı burada ver. bölümünün altındaki ve değerlerini
NameComputenotResourcesedin.MemoryInBytesveProcessorCountKubernetes çalışan düğümü için şu anda atanmış olan bellek ve işlemci sayısını gösterir.[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>Çalışan düğümü için bellek ve işlemci değerlerini değiştirmek için aşağıdaki komutu çalıştırın:
Set-AzureDataBoxEdgeRoleCompute -Name <Name value from the output of Get-AzureDataBoxEdgeRole> -Memory <Value in Bytes> -ProcessorCount <No. of cores>Örnek bir çıktıyı burada ver.
[10.100.10.10]: PS>Set-AzureDataBoxEdgeRoleCompute -Name IotRole -MemoryInBytes 32GB -ProcessorCount 16 ImageDetail : Name:mcr.microsoft.com/azureiotedge-agent Tag:1.0 PlatformType:Linux EdgeDeviceConnectionString : IotDeviceConnectionString : HubHostName : ase-srp-007.azure-devices.net IotDeviceId : srp-007-storagegateway EdgeDeviceId : srp-007-edge Version : Id : 6ebeff9f-84c5-49a7-890c-f5e05520a506 Name : IotRole Type : IOT Resources : Compute: MemoryInBytes:34359738368 ProcessorCount:16 VMProfile: Storage: EndpointMap: EndpointId:c0721210-23c2-4d16-bca6-c80e171a0781 TargetPath:mysmbedgecloudshare1 Name:mysmbedgecloudshare1 Protocol:SMB EndpointId:6557c3b6-d3c5-4f94-aaa0-6b7313ab5c74 TargetPath:mysmbedgelocalshare Name:mysmbedgelocalshare Protocol:SMB RootFileSystemStorageSizeInBytes:0 HostPlatform : KubernetesCluster State : Created PlatformType : Linux HostPlatformInstanceId : 994632cb-853e-41c5-a9cd-05b36ddbb190 IsHostPlatformOwner : True IsCreated : True [10.100.10.10]: PS>
Bellek ve işlemci kullanımını değiştirirken bu yönergeleri izleyin.
- Varsayılan bellek, cihaz belirtimlerinin %25'idir.
- Varsayılan işlemci sayısı, cihaz belirtimlerinin %30' parçasıdır.
- Bellek ve işlemci sayıları için değerleri değiştirirken, değerleri cihaz belleğinin %15 ile %60'sı arasında ve işlemci sayısı arasında değiştirmenizi öneririz.
- Sistem bileşenleri için yeterli kaynak var olmak için %60'lık bir üst sınır önerilir.
Bağlan BMC'ye
Temel pano yönetim denetleyicisi (BMC), cihazınızı uzaktan izlemek ve yönetmek için kullanılır. Bu bölümde BMC yapılandırmasını yönetmek için kullanılan cmdlet'ler açıklandı. Bu cmdlet'lerden herhangi birini çalıştırmadan Bağlan PowerShell arabirimine bakın.
Get-HcsNetBmcInterface: BMC'nin ağ yapılandırma özelliklerini almak için bu cmdlet'i kullanın; örneğin,IPv4AddressIPv4Gateway, ,IPv4SubnetMask.DhcpEnabledÖrnek çıktı aşağıdaki gibidir:
[10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.53.186 10.128.52.1 255.255.252.0 False [10.100.10.10]: PS>Set-HcsNetBmcInterface: Bu cmdlet'i aşağıdaki iki şekilde kullanabilirsiniz.parametresi için uygun değeri kullanarak BMC için DHCP yapılandırmasını etkinleştirmek veya devre dışı bırakmak üzere cmdlet'ini
UseDhcpkullanın.Set-HcsNetBmcInterface -UseDhcp $trueÖrnek çıktı aşağıdaki gibidir:
[10.100.10.10]: PS>Set-HcsNetBmcInterface -UseDhcp $true [10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.54.8 10.128.52.1 255.255.252.0 True [10.100.10.10]: PS>BMC'nin statik yapılandırmasını yapılandırmak için bu cmdlet'i kullanın. , ve değerlerini
IPv4AddressIPv4GatewayIPv4SubnetMaskbelirtebilirsiniz.Set-HcsNetBmcInterface -IPv4Address "<IPv4 address of the device>" -IPv4Gateway "<IPv4 address of the gateway>" -IPv4SubnetMask "<IPv4 address for the subnet mask>"Örnek çıktı aşağıdaki gibidir:
[10.100.10.10]: PS>Set-HcsNetBmcInterface -IPv4Address 10.128.53.186 -IPv4Gateway 10.128.52.1 -IPv4SubnetMask 255.255.252.0 [10.100.10.10]: PS>Get-HcsNetBmcInterface IPv4Address IPv4Gateway IPv4SubnetMask DhcpEnabled ----------- ----------- -------------- ----------- 10.128.53.186 10.128.52.1 255.255.252.0 False [10.100.10.10]: PS>
Set-HcsBmcPassword: için BMC parolasını değiştirmek üzere bu cmdlet'iEdgeUserkullanın. Kullanıcı adı -EdgeUser- büyük/büyük/büyük harfe duyarlıdır.Örnek çıktı aşağıdaki gibidir:
[10.100.10.10]: PS> Set-HcsBmcPassword -NewPassword "Password1" [10.100.10.10]: PS>
Uzak oturumdan çıkın
Uzak PowerShell oturumundan çıkmak için PowerShell penceresini kapatın.