بداية سريعة: نشر حاويات Windows على نسيج الخدمة
Azure Service Fabric عبارة عن نظام أساسي للأنظمة الموزعة لنشر وإدارة خدمات وحاويات قابلة للتطوير وموثوق بها.
لا يتطلب تشغيل تطبيق موجود في حاوية Windows على مجموعة Service Fabric أي تغييرات على التطبيق الخاص بك. توضح لك هذه البداية السريعة كيفية نشر صورة حاوية Docker سابقة الإنشاء في تطبيق Service Fabric. عند الانتهاء، سيكون لديك خادم Windows Server Core 2016 وحاوية IIS قيد التشغيل. تصف هذه البداية السريعة نشر حاوية Windows. اقرأ هذه البداية السريعة لنشر حاوية Linux.
ستتعلم في هذه البداية السريعة كيفية:
- قم بتعبئة حاوية صورة Docker
- تكوين الاتصال
- بناء وحزم تطبيق نسيج الخدمة
- انشر تطبيق الحاوية على Azure
ملاحظة
نوصي باستخدام وحدة Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.
المتطلبات الأساسية
- اشتراك Azure (يمكنك إنشاء حساب مجاني ).
- كمبيوتر تطوير يعمل:
- Visual Studio 2019 أو Windows 2019.
- مجموعة أدوات تطوير البرامج (SDK) والأدوات الخاصة بـ Service Fabric .
قم بتعبئة حاوية صورة Docker باستخدام Visual Studio
توفر مجموعة أدوات تطوير البرمجيات Service Fabric SDK وأدواتها قالب خدمة لمساعدتك في نشر حاوية إلى مجموعة Service Fabric.
بدء Visual Studio كـ "المسؤول". حدد ملف>مشروع>جديد.
حدد تطبيق Service Fabric، وأطلق عليه اسم "MyFirstContainer"، ثم انقر فوق إنشاء.
حدد حاوية من نماذج الحاويات والتطبيقات المستضافة.
في اسم الصورة، أدخل "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016"، وWindows Server Core Server وصورة قاعدة IIS.
قم بتكوين تعيين منفذ الحاوية إلى منفذ المضيف بحيث يتم تعيين الطلبات الواردة إلى الخدمة على المنفذ 80 إلى المنفذ 80 في الحاوية. عيّن Container Port على "80" واضبط Host Port على "80".
قم بتسمية خدمتك "MyContainerService"، وانقر فوق موافق.
حدد إصدار نظام التشغيل لصورة الحاوية الخاصة بك
قد لا يتم تشغيل الحاويات التي تم إنشاؤها باستخدام إصدار معين من Windows Server على مضيف يقوم بتشغيل إصدار مختلف من Windows Server. على سبيل المثال، لا تعمل الحاويات التي تم إنشاؤها باستخدام الإصدار 1709 من Windows Server على الأجهزة المضيفة التي تعمل بنظام Windows Server 2016. لمعرفة المزيد، راجع نظام تشغيل Windows Server والتوافق مع نظام التشغيل المضيف .
باستخدام الإصدار 6.1 من وقت تشغيل Service Fabric والإصدارات الأحدث، يمكنك تحديد عدة صور لنظام التشغيل لكل حاوية ووضع علامة على كل منها بإصدار إنشاء نظام التشغيل الذي يجب نشره فيه. يساعد هذا في التأكد من أن التطبيق الخاص بك سيعمل عبر مضيفين يقومون بتشغيل إصدارات مختلفة من نظام التشغيل Windows. لمعرفة المزيد، راجع تحديد صور حاوية معينة لنظام التشغيل .
تنشر Microsoft صورًا مختلفة لإصدارات IIS المبنية على إصدارات مختلفة من Windows Server. للتأكد من أن Service Fabric تنشر حاوية متوافقة مع إصدار Windows Server الذي يتم تشغيله على عقد المجموعة حيث تنشر التطبيق الخاص بك، أضف الأسطر التالية إلى ملف ApplicationManifest.xml. إصدار البناء لـ Windows Server 2016 هو 14393 وإصدار البناء لـ Windows Server الإصدار 1709 هو 16299.
<ContainerHostPolicies CodePackageRef="Code">
<ImageOverrides>
...
<Image Name="mcr.microsoft.com/windows/servercore/iis:windowsservercore-1803" />
<Image Name= "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016" Os="14393" />
<Image Name="mcr.microsoft.com/windows/servercore/iis:windowsservercore-1709" Os="16299" />
</ImageOverrides>
</ContainerHostPolicies>
يستمر بيان الخدمة في تحديد صورة واحدة فقط لخادم النانو، mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016
.
أيضًا في ملف ApplicationManifest.xml، قم بتغيير PasswordEncrypted إلى خطأ. الحساب وكلمة المرور فارغان لصورة الحاوية العامة الموجودة على Docker Hub، لذلك قمنا بإيقاف التشفير لأن تشفير كلمة مرور فارغة سيؤدي إلى حدوث خطأ في الإنشاء.
<RepositoryCredentials AccountName="" Password="" PasswordEncrypted="false" />
إنشاء نظام مجموعة
يُنشئ البرنامج النصي التالي عينة مجموعة نسيج خدمة مكونة من خمس عقد مؤمنة بشهادة X.509. يقوم الأمر بإنشاء شهادة موقعة ذاتيًّا وتحميلها إلى مخزن مفاتيح جديد. يتم أيضًا نسخ الشهادة إلى دليل محلي. يمكنك معرفة المزيد حول إنشاء مجموعة باستخدام هذا البرنامج النصي في إنشاء مجموعة نسيج الخدمة .
إذا لزم الأمر، قم بتثبيت Azure PowerShell باستخدام الإرشادات الموجودة في دليل Azure PowerShell .
قبل تشغيل البرنامج النصي التالي، في PowerShell، قم بتشغيل Connect-AzAccount
لإنشاء اتصال مع Azure.
انسخ البرنامج النصي التالي إلى الحافظة وافتح Windows PowerShell ISE. قم بلصق المحتويات في إطار Untitled1.ps1 الفارغ. ثم قدم قيمًا للمتغيرات في البرنامج النصي: subscriptionId
و certpwd
و certfolder
و adminuser
و adminpwd
وما إلى ذلك. يجب أن يكون الدليل الذي تحدده لـ certfolder
موجودًا قبل تشغيل البرنامج النصي.
#Provide the subscription Id
$subscriptionId = 'yourSubscriptionId'
# Certificate variables.
$certpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
$certfolder="c:\mycertificates\"
# Variables for VM admin.
$adminuser="vmadmin"
$adminpwd="Password#1234" | ConvertTo-SecureString -AsPlainText -Force
# Variables for common values
$clusterloc="SouthCentralUS"
$clustername = "mysfcluster"
$groupname="mysfclustergroup"
$vmsku = "Standard_D2_v2"
$vaultname = "mykeyvault"
$subname="$clustername.$clusterloc.cloudapp.azure.com"
# Set the number of cluster nodes. Possible values: 1, 3-99
$clustersize=5
# Set the context to the subscription Id where the cluster will be created
Select-AzSubscription -SubscriptionId $subscriptionId
# Create the Service Fabric cluster.
New-AzServiceFabricCluster -Name $clustername -ResourceGroupName $groupname -Location $clusterloc `
-ClusterSize $clustersize -VmUserName $adminuser -VmPassword $adminpwd -CertificateSubjectName $subname `
-CertificatePassword $certpwd -CertificateOutputFolder $certfolder `
-OS WindowsServer2016DatacenterwithContainers -VmSku $vmsku -KeyVaultName $vaultname
بمجرد تقديم القيم الخاصة بك للمتغيرات، اضغط على F5 لتشغيل البرنامج النصي.
بعد تشغيل البرنامج النصي وإنشاء المجموعة، ابحث عن ClusterEndpoint
في الإخراج. على سبيل المثال:
...
ClusterEndpoint : https://southcentralus.servicefabric.azure.com/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0
قم بتثبيت الشهادة الخاصة بالمجموعة
سنقوم الآن بتثبيت PFX في مخزن شهادات CurrentUser \ My. سيكون ملف PFX في الدليل الذي حددته باستخدام متغير البيئة certfolder
في برنامج PowerShell النصي أعلاه.
غيّر إلى هذا الدليل، ثم قم بتشغيل أمر PowerShell التالي، واستبدل اسم ملف PFX الموجود في الدليل certfolder
وكلمة المرور التي حددتها في المتغير certpwd
. في هذا المثال، تم تعيين الدليل الحالي على الدليل المحدد بواسطة المتغير certfolder
في البرنامج النصي PowerShell. من هناك Import-PfxCertificate
يتم تشغيل الأمر:
PS C:\mycertificates> Import-PfxCertificate -FilePath .\mysfclustergroup20190130193456.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString Password#1234 -AsPlainText -Force)
يقوم الأمر بإرجاع البصمة:
...
PSParentPath: Microsoft.PowerShell.Security\Certificate::CurrentUser\My
Thumbprint Subject
---------- -------
0AC30A2FA770BEF566226CFCF75A6515D73FC686 CN=mysfcluster.SouthCentralUS.cloudapp.azure.com
تذكر قيمة بصمة الإبهام للخطوة التالية.
انشر التطبيق على Azure باستخدام Visual Studio
الآن وبعد أن أصبح التطبيق جاهزًا، يمكنك نشره على مجموعة مباشرة من Visual Studio.
انقر بزر الماوس الأيمن فوق MyFirstContainer في مستكشف الحلول واختر نشر. يظهر مربع الحوار نشر Publish.
انسخ المحتوى التالي CN = في نافذة PowerShell عندما قمت بتشغيل الأمر Import-PfxCertificate
أعلاه، وقم بإضافة منفذ 19000
إليه. على سبيل المثال، mysfcluster.SouthCentralUS.cloudapp.azure.com:19000
. انسخه في حقل نقطة نهاية الاتصال. تذكر هذه القيمة لأنك ستحتاج إليها في خطوة مستقبلية.
انقر فوق معلمات الاتصال المتقدمة وتحقق من معلومات معلمة الاتصال. يجب أن تتطابق قيم FindValue و ServerCertThumbprint مع بصمة الشهادة المثبتة عند تشغيلك Import-PfxCertificate
في الخطوة السابقة.
انقر على نشر.
يجب أن يكون لكل تطبيق في الكتلة اسم فريد. إذا كان هناك تعارض في الأسماء، فقم بإعادة تسمية مشروع Visual Studio ونشره مرة أخرى.
افتح متصفحًا وانتقل إلى العنوان الذي أدخلته في حقل نقطة نهاية الاتصال في الخطوة السابقة. يمكنك اختياريًّا إلحاق معرف النظام، http://
، وإلحاق المنفذ، :80
، بعنوان URL. على سبيل المثال، http://mysfcluster.SouthCentralUS.cloudapp.azure.com:80.
يجب أن تشاهد صفحة الويب الافتراضية لـ IIS:
تنظيف
تستمر في تحمل الرسوم أثناء تشغيل المجموعة. ضع في الاعتبار حذف المجموعة الخاصة بك .
الخطوات التالية
في هذه البداية السريعة، تعلمت كيفية:
- قم بتعبئة حاوية صورة Docker
- تكوين الاتصال
- بناء وحزم تطبيق نسيج الخدمة
- انشر تطبيق الحاوية على Azure
لمعرفة المزيد حول العمل مع حاويات Windows في Service Fabric، تابع إلى البرنامج التعليمي لتطبيقات حاوية Windows.