توزيع مجموعة Linux Service Fabric في شبكة Azure الظاهرية
تتعلم في هذه المقالة كيفية نشر مجموعة Linux Service Fabric في شبكة افتراضية Azure (VNET) باستخدام Azure CLI ونموذج. عند الانتهاء، يكون لديك كتلة قيد التشغيل في السحابة يمكنك توزيع التطبيقات عليها. لكي تنشئ مجموعة Windows باستخدام PowerShell، راجع إنشاء مجموعة Windows آمنة على Azure.
المتطلبات الأساسية
قبل البدء:
- عند عدم وجود اشتراك في Azure، فقم بإنشاء حساب مجاني
- ثبت Service Fabric CLI
- قم بتثبيت Azure CLI.
- لمعرفة المفاهيم الأساسية للمَجموعات، اقرأ نظرة عامة على مجموعات Azure
- التخطيط والتحضير لتوزيع نظام مجموعة الإنتاج.
الإجراءات التالية لإنشاء كتلة "نسيج الخدمة" سبع عقد. لحساب التكلفة المتكبدة عن طريق تشغيل مجموعة Service Fabric في Azure ، استخدم Azure Pricing Calculator .
تنزيل القالب واستكشافه
حمل ملفات قوالب Azure Resource Manager التالية:
بـالنسبة إلى Ubuntu 18.04 LTS:
- AzureDeploy.json
- يتم تعيين سمة vmImageSku إلى "18.04-LTS"
- مورد Microsoft.ServiceFabric/clusters
- يتم تعيين apiVersion إلى "2019-03-01"
- خاصية vmImage التي يتم تَعيينها إلى "Ubuntu18_04"
- AzureDeploy.Parameters.json
بـالنسبة إلى Ubuntu 20.04 LTS:
- AzureDeploy.json
- يتم تعيين سمة vmImageSku إلى "20.04-LTS"
- مورد Microsoft.ServiceFabric/clusters
- يتم تعيين apiVersion إلى "2019-03-01"
- يتم تعيين خاصية vmImage إلى "Ubuntu20_04"
- AzureDeploy.Parameters.json
توزع هذه القوالب نظام مجموعة آمن مكون من سبعة أجهزة ظاهرية وثلاثة أنواع عقد في شبكة ظاهرية. يمكن العثور على نماذج قوالب أخرى على GitHub. يوزع AzureDeploy.json عددًا من الموارد، بما في ذلك ما يلي.
كتلة نسيج الخدمة
في مورد Microsoft.ServiceFabric/clusters، يتم توزيع مورد Linux مع الخصائص التالية:
- ثلاثة أنواع مِن العقد
- خمس عُقد في نوع العقدة الأساسية (قابلة للتكوين في معلمات القالب)، عقدة واحدة في كل نوع من أنواع العقد الأخرى
- نظام التشغيل: (Ubuntu 18.04 LTS / Ubuntu 20.04) (قابل للتكوين في مَعلمات القالب)
- شهادة مَضمونة (قابلة للتكوين في معلمات القالب)
- تمكينخِدمة DNS
- مستوى القدرة على الصمودالبرونزي (قابل للتكوين في معلمات القالب)
- مستوى الموثوقيةالفضي (قابل للتكوين في معلمات القالب)
- نقطة نهاية اتصال العميل: 19000 (قابل للتكوين في معلمات القالب)
- نقطة نهاية بوابة HTTP: 19080 (قابل للتكوين في معلمات القالب)
موازنة تحميل Azure
في مورد Microsoft.Network/loadBalancers، يُكوّن موازن تحميل ويُتحقق منه، وتُعدّ القواعد للمنافذ التالية:
- نقطة نهاية اتصال العَميل: 19000
- نقطة نهاية HTTP للبوابة: 19080
- مُنفذ تطبيقات: 80
- مُنفذ تطبيقات: 443
شبكة افتراضية وشبكة فرعية
يتم الإعلان عن أسماء الشبكة الظاهرية وشبكة فرعية في مَعلمات القالب. يتم أيضا الإعلان عن مساحات العناوين للشبكة الظاهرية والشبكة الفرعية في معلمات القالب وتكوينها في مورد Microsoft.Network/virtualNetworks :
- مساحة عنوان الشبكة الظاهرية: 10.0.0.0/16
- مِساحة عنوان الشبكة الفرعية للخدمة Fabric: 10.0.2.0/24
إذا كانت هناك حاجة إلى أي منافذ تطبيقات أخرى، سوف تحتاج إلى ضبط مورد Microsoft.Network/loadBalancers للسماح بازدحام البيانات.
ملحق Service Fabric
في مورد Microsoft.Compute/virtualMachineScaleSets ، يتم تكوين ملحق Service Fabric Linux. يستخدم هذا الملحق ل bootstrap Service Fabric إلى أجهزة Azure الظاهرية وتكوين أمان العقدة.
فيما يلي مقتطف قالب لملحق Service Fabric Linux:
"extensions": [
{
"name": "[concat('ServiceFabricNodeVmExt','_vmNodeType0Name')]",
"properties": {
"type": "ServiceFabricLinuxNode",
"autoUpgradeMinorVersion": true,
"enableAutomaticUpgrade": true,
"protectedSettings": {
"StorageAccountKey1": "[listKeys(resourceId('Microsoft.Storage/storageAccounts', variables('supportLogStorageAccountName')),'2015-05-01-preview').key1]",
},
"publisher": "Microsoft.Azure.ServiceFabric",
"settings": {
"clusterEndpoint": "[reference(parameters('clusterName')).clusterEndpoint]",
"nodeTypeRef": "[variables('vmNodeType0Name')]",
"durabilityLevel": "Silver",
"enableParallelJobs": true,
"nicPrefixOverride": "[variables('subnet0Prefix')]",
"certificate": {
"commonNames": [
"[parameters('certificateCommonName')]"
],
"x509StoreName": "[parameters('certificateStoreValue')]"
}
},
"typeHandlerVersion": "2.0"
}
},
تعيين معلمات القالب
يعلن ملف معلماتazuredeploy.parameters.jsonعن العديد من القيم المستخدمة لتوزيع المجموعة والموارد المرتبطة بها. بعض المعلمات التي قد تحتاج إلى تعديلها للتوزيع:
المعلمة | قيمة المثال | ملاحظات |
---|---|---|
اسم المستخدم المسؤول | vmadmin | اسم المستخدم المسؤول للكتلة VMs. |
adminPassword | كلمة المرور#1234 | كلمة مرور المسؤول للكتلة VMs. |
clusterName | mysfcluster123 | اسم المجموعة. |
موقع | southcentralus | موقع الكتلة. |
شهادة البصمة | يجب أن تكون القيمة فارغة إذا كان إنشاء شهادة موقعة ذاتيًّا أو توفير ملف الشهادة. لاستخدام شهادة موجودة تم تحميلها مسبقًا إلى قبو مفتاح، قم بتعبئة قيمة بصمة الإبهام شهادة لوغاريتم التجزئة الآمن SHA1. على سبيل المثال، "6190390162C988701DB5676EB81083EA608DCCF3". |
|
شهادة قيمة الرابط | يجب أن تكون القيمة فارغة إذا كان إنشاء شهادة موقعة ذاتيًّا أو توفير ملف الشهادة. لاستخدام شهادة موجودة تم تحميلها مسبقًا إلى خزنة مفاتيح، قم بتعبئة عنوان URL للشهادة. على سبيل المثال، "https://mykeyvault.vault.azure.net:443/secrets/mycertificate/02bea722c9ef4009a76c5052bcbf8346"؛. |
|
مصدر قيمة Vault | يجب أن تكون القيمة فارغة إذا كان إنشاء شهادة موقعة ذاتيًّا أو توفير ملف الشهادة. لاستخدام شهادة موجودة تم تحميلها مسبقًا إلى خزنة مفاتيح، املأ قيمة المخزن المصدر. على سبيل المثال، "/subscriptions/333cc2c84-12fa-5778-bd71-c71c07bf873f/resourceGroups/MyTestRG/providers/Microsoft.KeyVault/vaults/MYKEYVAULT". |
نشر الشبكة الظاهرية والكتلة
بعد ذلك، إعداد طبولوجيا شبكة الاتصال، ونشر الكتلة "نسيج الخدمة". يُنشئ قالب Azure Resource ManagerAzureDeploy.json شبكة ظاهرية، وشبكة فرعية، ومجموعة أمان شبكة لـ Service Fabric. القالب أيضًا ينشر كتلة مع تمكين أمان الشهادة. بالنسبة إلى مجموعات الإنتاج، استخدم شهادة من مرجع شهادات (CA) كشهادة نظام المجموعة. يمكن استخدام شهادة موقعة ذاتيًّا لتأمين مجموعات الاختبار.
القالب في هذه المقالة يستخدم كتلة يستخدم بصمة الإبهام الشهادة لتعريف شهادة نظام المجموعة. لا يمكن أن يكون هناك نوعان من الشهادات بنفس بصمة الإبهام، مما يجعل إدارة الشهادات أكثر صعوبة. يجعل تبديل مجموعة تم توزيعها من استخدام بصمات الشهادات المصغرة إلى استخدام الأسماء الشائعة للشهادات إدارة الشهادات أكثر بساطة. لمعرفة كيفية تحديث المجموعة لاستخدام الأسماء الشائعة للشهادة لإدارة الشهادات، راجعتغيير المجموعة إلى إدارة الاسم الشائع للشهادة.
إنشاء مَجموعة باستخدام شهادة موجودة
يستخدم البرنامج النصي التالي أمر إنشاء مجموعة az sf وقالب لتوزيع مجموعة جديدة مؤمنة بشهادة موجودة. ينشئ الأمر أيضا مَخزن مفاتيح جديدًا في Azure ويرفع الشهادة.
ResourceGroupName="sflinuxclustergroup"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates\MyCertificate.pem"
# sign in to your Azure account and select your subscription
az login
az account set --subscription <guid>
# Create a new resource group for your deployment and give it a name and a location.
az group create --name $ResourceGroupName --location $Location
# Create the Service Fabric cluster.
az sf cluster create --resource-group $ResourceGroupName --location $Location \
--certificate-password $Password --certificate-file $CertPath \
--vault-name $VaultName --vault-resource-group $ResourceGroupName \
--template-file AzureDeploy.json --parameter-file AzureDeploy.Parameters.json
إنشاء مجموعة باستخدام شهادة جديدة موقعة ذاتيًا
يستخدم البرنامج النصي التالي أمر إنشاء مجموعة az sf وقالب لتوزيع مَجموعة جديدة مؤمنة بشهادة موجودة. ينشئ الأمر أيضا مخزن مفاتيح جديدا في Azure، ويضيف شهادة موقعة ذاتيا جديدة إلى مَخزن المفاتيح، ويزيل ملف الشهادة محليا.
ResourceGroupName="sflinuxclustergroup"
ClusterName="sflinuxcluster"
Location="southcentralus"
Password="q6D7nN%6ck@6"
VaultName="linuxclusterkeyvault"
VaultGroupName="linuxclusterkeyvaultgroup"
CertPath="C:\MyCertificates"
az sf cluster create --resource-group $ResourceGroupName --location $Location \
--cluster-name $ClusterName --template-file C:\temp\cluster\AzureDeploy.json \
--parameter-file C:\temp\cluster\AzureDeploy.Parameters.json --certificate-password $Password \
--certificate-output-folder $CertPath --certificate-subject-name $ClusterName.$Location.cloudapp.azure.com \
--vault-name $VaultName --vault-resource-group $ResourceGroupName
الاتصال بالعنقود الآمن
الاتصال إلى المجموعة باستخدام الأمر sfctl cluster select
Service Fabric CLI بمفتاحك. ملاحظة، استخدم فقط الخيار --no-verify لـشهادة موقعة ذاتيا.
sfctl cluster select --endpoint https://aztestcluster.southcentralus.cloudapp.azure.com:19080 \
--pem ./aztestcluster201709151446.pem --no-verify
تحقق من أنك متصل، وأن المجموعة سليمة باستخدام الأمرsfctl cluster health
.
sfctl cluster health
تنظيف الموارد
إذا لم تنتقل على الفور إلى المقالة التالية، فقد تحتاج إلى حذف نظام المجموعة لتجنب تكبد رسوم.
الخطوات التالية
تعرف على كيفية توسيع نِطاق مجموعة.
القالب في هذه المقالة يستخدم كتلة يستخدم بصمة الإبهام الشهادة لتعريف شهادة نظام المجموعة. لا يمكن أن يكون هناك نوعان من الشهادات بنفس بصمة الإبهام، مما يجعل إدارة الشهادات أكثر صعوبة. يجعل تبديل مجموعة تم توزيعها من استخدام بصمات الشهادات المصغرة إلى استخدام الأسماء الشائعة للشهادات إدارة الشهادات أكثر بساطة. لمعرفة كيفية تحديث المجموعة لاستخدام الأسماء الشائعة للشهادة لإدارة الشهادات، راجعتغيير المجموعة إلى إدارة الاسم الشائع للشهادة.