اقرأ باللغة الإنجليزية

مشاركة عبر


بداية سريعة: نشر حاويات Windows على نسيج الخدمة

Azure Service Fabric عبارة عن نظام أساسي للأنظمة الموزعة لنشر وإدارة خدمات وحاويات قابلة للتطوير وموثوق بها.

لا يتطلب تشغيل تطبيق موجود في حاوية Windows على مجموعة Service Fabric أي تغييرات على التطبيق الخاص بك. توضح لك هذه البداية السريعة كيفية نشر صورة حاوية Docker سابقة الإنشاء في تطبيق Service Fabric. عند الانتهاء، سيكون لديك خادم Windows Server Core 2016 وحاوية IIS قيد التشغيل. تصف هذه البداية السريعة نشر حاوية Windows. اقرأ هذا التشغيل السريع لنشر حاوية Linux.

صفحة ويب IIS الافتراضية

ستتعلم في هذه البداية السريعة كيفية:

  • قم بتعبئة حاوية صورة Docker
  • تكوين الاتصال
  • بناء وحزم تطبيق نسيج الخدمة
  • انشر تطبيق الحاوية على Azure

ملاحظة

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. للبدء، راجع تثبيت Azure PowerShell. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

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

قم بتعبئة حاوية صورة Docker باستخدام Visual Studio

توفر مجموعة أدوات تطوير البرمجيات Service Fabric SDK وأدواتها قالب خدمة لمساعدتك في نشر حاوية إلى مجموعة Service Fabric.

بدء Visual Studio كـ "المسؤول". حدد "File">"New">"Project".

حدد تطبيق Service Fabric، وقم بتسميه "MyFirstContainer"، وانقر فوق Create.

حدد Container من قوالب Hosted Containers and Applications .

في اسم الصورة، أدخل "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2016"، وWindows Server Core Server والصورة الأساسية ل IIS.

قم بتكوين تعيين منفذ الحاوية إلى منفذ المضيف بحيث يتم تعيين الطلبات الواردة إلى الخدمة على المنفذ 80 إلى المنفذ 80 في الحاوية. تعيين منفذ الحاوية إلى "80" وتعيين منفذ المضيف إلى "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.

XML
    <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 إلى false. الحساب وكلمة المرور فارغان لصورة الحاوية العامة الموجودة على Docker Hub، لذلك قمنا بإيقاف التشفير لأن تشفير كلمة مرور فارغة سيؤدي إلى حدوث خطأ في الإنشاء.

XML
<RepositoryCredentials AccountName="" Password="" PasswordEncrypted="false" />

إنشاء نظام مجموعة

يُنشئ البرنامج النصي التالي عينة مجموعة نسيج خدمة مكونة من خمس عقد مؤمنة بشهادة X.509. يقوم الأمر بإنشاء شهادة موقعة ذاتيًّا وتحميلها إلى مخزن مفاتيح جديد. يتم نسخ الشهادة أيضاً إلى دليل محلي. يمكنك معرفة المزيد حول إنشاء نظام مجموعة باستخدام هذا البرنامج النصي في إنشاء مجموعة Service Fabric.

إذا لزم الأمر، فقم بتثبيت Azure PowerShell بالاستعانة بالإرشادات المذكورة في دليل Azure PowerShell .

قبل تشغيل البرنامج النصي التالي، في PowerShell، قم بتشغيل Connect-AzAccount لإنشاء اتصال مع Azure.

انسخ البرنامج النصي التالي إلى الحافظة وافتح Windows PowerShell ISE. قم بلصق المحتويات في إطار Untitled1.ps1 الفارغ. ثم قم بتوفير قيم للمتغيرات في البرنامج النصي: subscriptionIdو certpwdcertfolderو adminuseradminpwdو و وهكذا. يجب أن يكون الدليل الذي تحدده موجودا certfolder قبل تشغيل البرنامج النصي.

PowerShell
#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 في الإخراج. على سبيل المثال:

PowerShell
...
ClusterEndpoint : https://southcentralus.servicefabric.azure.com/runtime/clusters/b76e757d-0b97-4037-a184-9046a7c818c0

قم بتثبيت الشهادة الخاصة بالمجموعة

الآن سنقوم بتثبيت PFX في CurrentUser\My certificate store. سيكون ملف PFX في الدليل الذي حددته باستخدام certfolder متغير البيئة في البرنامج النصي PowerShell أعلاه.

قم بالتغيير إلى هذا الدليل، ثم قم بتشغيل أمر PowerShell التالي، مع استبدال اسم ملف PFX الموجود في الدليل وكلمة certfolder المرور التي حددتها في certpwd المتغير. في هذا المثال، يتم تعيين الدليل الحالي إلى الدليل المحدد بواسطة certfolder المتغير في البرنامج النصي PowerShell. من هناك يتم Import-PfxCertificate تشغيل الأمر:

PowerShell
PS C:\mycertificates> Import-PfxCertificate -FilePath .\mysfclustergroup20190130193456.pfx -CertStoreLocation Cert:\CurrentUser\My -Password (ConvertTo-SecureString Password#1234 -AsPlainText -Force)

يقوم الأمر بإرجاع البصمة:

PowerShell
  ...
  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 في الخطوة السابقة. ثم اختر Publish.

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

افتح مستعرضا وانتقل إلى العنوان الذي وضعته في حقل نقطة نهاية الاتصال في الخطوة السابقة. يمكنك اختياريا إلحاق معرف النظام وإلحاق http://المنفذ ب :80URL. على سبيل المثال، http://mysfcluster.SouthCentralUS.cloudapp.azure.com:80.

يجب أن تشاهد صفحة الويب الافتراضية ل IIS: صفحة ويب IIS الافتراضية

تنظيف

تستمر في تحمل الرسوم أثناء تشغيل المجموعة. ضع في اعتبارك حذف نظام المجموعة الخاص بك.

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

في هذا البدء السريع، قد تعلّمت كيفية:

  • قم بتعبئة حاوية صورة Docker
  • تكوين الاتصال
  • بناء وحزم تطبيق نسيج الخدمة
  • انشر تطبيق الحاوية على Azure

لمعرفة المزيد حول العمل مع حاويات Windows في Service Fabric، تابع إلى البرنامج التعليمي لتطبيقات حاوية Windows.