توزيع مجموعة 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 16.04 LTS:
بـالنسبة إلى Ubuntu 18.04 LTS:
بالنسبة إلى Ubuntu 18.04 LTS، فإن الفرق بين النموذجين هو
- السِمة vmImageSku التي يتم تعيينها إلى "18.04-LTS"
- يتم تعيين نوع HandlerVersion لكل عقدة إلى 1.1
- Microsoft.ServiceFabric/مورد نظام المجموعة
- apiVersion الذي يتم تعِيينه إلى "2019-03-01" أو أعلى
- خاصية vmImage التي يتم تَعيينها إلى "Ubuntu18_04"
يوزع هذا القالب مجموعة آمنة من سبعة أجهزة ظاهرية وثلاثة أنواع عقد في شبكة ظاهرية. يمكن العثور على نماذج أخرى علىGitHub. يوزعAzureDeploy.jsonعددًا من الموارد، بما في ذلك ما يلي.
مجموعة Service Fabric
في مورد Microsoft.ServiceFabric/clusters، يتم توزيع مورد Linux مع الخصائص التالية:
- ثلاثة أنواع مِن العقد
- خمس عُقد في نوع العقدة الأساسية (قابلة للتكوين في معلمات القالب)، عقدة واحدة في كل نوع من أنواع العقد الأخرى
- نظام التشغيل: (أوبونتو 16.04 LTS / أوبونتو 18.04 LTS) (قابل للتكوين في مَعلمات القالب)
- شهادة مَضمونة (قابلة للتكوين في معلمات القالب)
- تمكينخِدمة 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 للسماح بازدحام البيانات.
تعيين معلمات القالب
يعلن ملف معلماتazuredeploy.parameters.jsonعن العديد من القيم المستخدمة لتوزيع المجموعة والموارد المرتبطة بها. بعض المعلمات التي قد تحتاج إلى تعديلها للتوزيع:
| المعلمة | قيمة المثال | ملاحظات |
|---|---|---|
| اسم المستخدم المسؤول | vmadmin | اسم المستخدم المسؤول للكتلة VMs. |
| adminPassword | كلمة المرور#1234 | كلمة مرور المسؤول للكتلة VMs. |
| اسم المجموعة | mysfcluster123 | اسم المجموعة. |
| الموقع | جنوب وسط الولايات المتحدة | موقع الكتلة. |
| شهادة البصمة | يجب أن تكون القيمة فارغة إذا كان إنشاء شهادة موقعة ذاتيًّا أو توفير ملف الشهادة. لاستخدام شهادة موجودة تم تحميلها مسبقًا إلى قبو مفتاح، قم بتعبئة قيمة بصمة الإبهام شهادة لوغاريتم التجزئة الآمن 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
تنظيف الموارد
إذا كنت لن تنتقل على الفور إلى المقالة التالية، فقد ترغب فيحذف المجموعةلتجنب تكبد رسوم.
الخطوات التالية
تعرف على كيفية توسيع نِطاق مجموعة.
يوزع القالب الموجود في هذه المقالة مجموعة تستخدم الطباعة المصغرة للشهادة لتعريف شهادة نظام المجموعة. لا يمكن أن يكون هناك نوعان من الشهادات بنفس بصمة الإبهام، مما يجعل إدارة الشهادات أكثر صعوبة. يجعل تبديل مجموعة تم توزيعها من استخدام بصمات الشهادات المصغرة إلى استخدام الأسماء الشائعة للشهادات إدارة الشهادات أكثر بساطة. لمعرفة كيفية تحديث المجموعة لاستخدام الأسماء الشائعة للشهادة لإدارة الشهادات، راجعتغيير المجموعة إلى إدارة الاسم الشائع للشهادة.