التشغيل السريع: تشغيل Azure IoT Operations Preview في GitHub Codespaces باستخدام K3s
هام
معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.
ستحتاج إلى نشر تثبيت Azure IoT Operations جديد عند توفير إصدار متوفر بشكل عام. لن تتمكن من ترقية تثبيت معاينة.
للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.
في هذا التشغيل السريع، يمكنك نشر مجموعة من خدمات IoT إلى مجموعة Kubernetes التي تدعم Azure Arc بحيث يمكنك إدارة أجهزتك وأحمال العمل عن بعد. Azure IoT Operations هي مجموعة من الخدمات للعمليات الرقمية. يرشدك هذا التشغيل السريع خلال استخدام Orchestrator لنشر هذه الخدمات إلى مجموعة Kubernetes. في نهاية التشغيل السريع، لديك مجموعة يمكنك إدارتها من السحابة التي تنشئ عينة من البيانات لاستخدامها في عمليات التشغيل السريع التالية.
تعتمد بقية عمليات التشغيل السريع في هذه السلسلة الشاملة على هذه السلسلة لتحديد نماذج الأصول وتدفقات معالجة البيانات والمرئيات.
إذا كنت ترغب في نشر عمليات Azure IoT إلى مجموعة محلية مثل Azure Kubernetes Service Edge Essentials أو K3s على Ubuntu، راجع تفاصيل النشر.
قبل البدء
تهدف هذه السلسلة من عمليات التشغيل السريع إلى مساعدتك على البدء في عمليات Azure IoT في أسرع وقت ممكن بحيث يمكنك تقييم سيناريو شامل. في بيئة تطوير أو إنتاج حقيقية، تقوم فرق متعددة تعمل معا بتنفيذ هذه المهام وقد تتطلب بعض المهام أذونات مرتفعة.
للحصول على أفضل تجربة مستخدم جديدة، نوصي باستخدام حساب Azure المجاني بحيث يكون لديك أذونات المالك على الموارد في هذه قوالب التشغيل السريع. كما نقدم خطوات لاستخدام GitHub Codespaces كبيئة ظاهرية يمكنك فيها البدء بسرعة في نشر الموارد وتشغيل الأوامر دون تثبيت أدوات جديدة على أجهزتك الخاصة.
المتطلبات الأساسية
لهذا التشغيل السريع، يمكنك إنشاء مجموعة Kubernetes لتلقي توزيع عمليات Azure IoT.
إذا كنت ترغب في إعادة استخدام مجموعة تحتوي بالفعل على عمليات Azure IoT منشورة عليها، فراجع الخطوات الواردة في تنظيف الموارد لإلغاء تثبيت عمليات Azure IoT قبل المتابعة.
قبل البدء، قم بإعداد المتطلبات الأساسية التالية:
اشتراك Azure. إذا لم يكن لديك اشتراك Azure، فأنشئ اشتراكاً مجاناً قبل البدء.
حساب GitHub.
Visual Studio Code مثبت على جهاز التطوير الخاص بك. لمزيد من المعلومات، راجع تنزيل Visual Studio Code.
أذونات Microsoft.Authorization/roleAssignments/write على مستوى مجموعة الموارد.
ما هي المشكلة التي سنحلها؟
عمليات Azure IoT هي مجموعة من خدمات البيانات التي تعمل على مجموعات Kubernetes. تريد إدارة هذه المجموعات عن بعد من السحابة، والقدرة على التواصل بأمان مع موارد السحابة ونقاط النهاية. نحن نعالج هذه المخاوف مع المهام التالية في هذا التشغيل السريع:
- إنشاء مجموعة Kubernetes وتوصيلها ب Azure Arc للإدارة عن بعد.
- إنشاء سجل مخطط.
- توزيع عمليات Azure IoT إلى نظام المجموعة.
توصيل مجموعة Kubernetes ب Azure Arc
تدعم عمليات Azure IoT Azure Kubernetes Service (AKS) Edge Essentials وK3s على مجموعات Ubuntu. ومع ذلك، من أجل السرعة والراحة، يستخدم هذا التشغيل السريع GitHub Codespaces لاستضافة مجموعتك.
من السهل إعداد مساحات التعليمات البرمجية بسرعة وهدمها لاحقا، ولكنها غير مناسبة لتقييم الأداء أو اختبار المقياس. استخدم GitHub Codespaces للاستكشاف فقط. لمعرفة كيفية نشر عمليات Azure IoT إلى نظام مجموعة على Windows أو Ubuntu، راجع إعداد مجموعة Kubernetes الممكنة في Azure Arc.
في هذا القسم، يمكنك إنشاء مجموعة جديدة وتوصيلها ب Azure Arc. إذا كنت ترغب في إعادة استخدام نظام مجموعة قمت بنشر عمليات Azure IoT إليه سابقا، فراجع الخطوات الواردة في تنظيف الموارد لإلغاء تثبيت عمليات Azure IoT قبل المتابعة.
استخدم GitHub Codespaces لتجربة عمليات Azure IoT على مجموعة Kubernetes دون تثبيت أي شيء على جهازك المحلي. تم تكوين مساحة التعليمات البرمجية Azure-Samples/explore-iot-operations مسبقا باستخدام:
- K3s قيد التشغيل في K3d لمجموعة Kubernetes خفيفة الوزن
- Azure CLI
- Kubectl لإدارة موارد Kubernetes
- أدوات مفيدة أخرى مثل Helm وk9s
لإنشاء مساحة التعليمات البرمجية والمجموعة، استخدم الخطوات التالية:
إنشاء مساحة تعليمات برمجية في GitHub Codespaces.
قم بتوفير الأسرار الموصى بها التالية لمساحة التعليمات البرمجية الخاصة بك:
المعلمة القيمة SUBSCRIPTION_ID معرّف اشتراك Azure. RESOURCE_GROUP اسم لمجموعة موارد Azure جديدة حيث سيتم إنشاء نظام المجموعة الخاص بك. الموقع منطقة Azure قريبة منك. للحصول على قائمة المناطق المدعومة حاليا، راجع المناطق المدعومة. تلميح
يتم حفظ القيم التي تقدمها كأسرار في هذه الخطوة على حساب GitHub الخاص بك لاستخدامها في مساحات التعليمات البرمجية هذه والمستقبلية. تتم إضافتها كمتغيرات بيئة في الوحدة الطرفية لمساحة التعليمات البرمجية، ويمكنك استخدام متغيرات البيئة هذه في أوامر CLI في القسم التالي.
بالإضافة إلى ذلك، تنشئ مساحة التعليمات البرمجية
CLUSTER_NAME
هذه متغير بيئة يتم تعيينه باسم مساحة التعليمات البرمجية.حدد Create new codespace.
بمجرد أن تصبح مساحة التعليمات البرمجية جاهزة، حدد زر القائمة في أعلى اليسار، ثم حدد Open in VS Code Desktop.
إذا طلب منك ذلك، قم بتثبيت ملحق GitHub Codespaces ل Visual Studio Code وسجل الدخول إلى GitHub.
في Visual Studio Code، حدد View>Terminal.
استخدم هذه المحطة الطرفية لتشغيل جميع أوامر CLI لإدارة نظام المجموعة.
لتوصيل مجموعتك ب Azure Arc:
في الوحدة الطرفية لمساحة التعليمات البرمجية، سجل الدخول إلى Azure CLI:
az login
تلميح
إذا كنت تستخدم بيئة مساحة التعليمات البرمجية GitHub في مستعرض بدلا من سطح مكتب VS Code، فإن التشغيل
az login
يرجع خطأ localhost. لإصلاح الخطأ، إما:- افتح مساحة التعليمات البرمجية في VS Code لسطح المكتب، ثم ارجع إلى محطة المتصفح وأعد تشغيل
az login
. - أو، بعد أن تحصل على خطأ المضيف المحلي على المتصفح، انسخ عنوان URL من المتصفح وقم بتشغيله
curl "<URL>"
في علامة تبويب محطة طرفية جديدة. يجب أن تشاهد استجابة JSON مع الرسالة "لقد قمت بتسجيل الدخول إلى Microsoft Azure!".
- افتح مساحة التعليمات البرمجية في VS Code لسطح المكتب، ثم ارجع إلى محطة المتصفح وأعد تشغيل
بعد تسجيل الدخول، يعرض Azure CLI جميع اشتراكاتك ويشير إلى اشتراكك الافتراضي بعلامة نجمية
*
. لمتابعة اشتراكك الافتراضي، حددEnter
. وإلا، اكتب عدد اشتراك Azure الذي تريد استخدامه.تسجيل موفري الموارد المطلوبين في اشتراكك:
إشعار
يجب تشغيل هذه الخطوة مرة واحدة فقط لكل اشتراك. لتسجيل موفري الموارد، تحتاج إلى إذن للقيام بالعملية
/register/action
، والتي يتم تضمينها في أدوار المساهم والمالك للاشتراك. لمزيد من المعلومات، راجع موفري موارد Azure وأنواعها.az provider register -n "Microsoft.ExtendedLocation" az provider register -n "Microsoft.Kubernetes" az provider register -n "Microsoft.KubernetesConfiguration" az provider register -n "Microsoft.IoTOperations" az provider register -n "Microsoft.DeviceRegistry" az provider register -n "Microsoft.SecretSyncController"
استخدم الأمر az group create لإنشاء مجموعة موارد في اشتراك Azure لتخزين جميع الموارد:
az group create --location $LOCATION --resource-group $RESOURCE_GROUP
استخدم الأمر az connectedk8s connect إلى Arc-enable نظام مجموعة Kubernetes وإدارته كجزء من مجموعة موارد Azure:
az connectedk8s connect --name $CLUSTER_NAME --location $LOCATION --resource-group $RESOURCE_GROUP
تلميح
يتم تعيين قيمة
$CLUSTER_NAME
تلقائيا إلى اسم مساحة التعليمات البرمجية الخاصة بك. استبدل متغير البيئة إذا كنت تريد استخدام اسم مختلف.احصل على
objectId
تطبيق معرف Microsoft Entra الذي تستخدمه خدمة Azure Arc في المستأجر الخاص بك واحفظه كمتغير بيئة. قم بتشغيل الأمر التالي تماما كما هو مكتوب، دون تغيير قيمة GUID.export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
استخدم الأمر az connectedk8s enable-features لتمكين دعم الموقع المخصص على مجموعتك. يستخدم
objectId
هذا الأمر تطبيق معرف Microsoft Entra الذي تستخدمه خدمة Azure Arc.az connectedk8s enable-features -n $CLUSTER_NAME -g $RESOURCE_GROUP --custom-locations-oid $OBJECT_ID --features cluster-connect custom-locations
إنشاء حساب تخزين وسجل مخطط
تتطلب عمليات Azure IoT سجل مخطط على نظام المجموعة الخاص بك. يتطلب سجل المخطط حساب تخزين Azure بحيث يمكنه مزامنة معلومات المخطط بين السحابة والحافة.
يتطلب الأمر لإنشاء سجل مخطط في هذا القسم أذونات Microsoft.Authorization/roleAssignments/write على مستوى مجموعة الموارد.
قم بتشغيل أوامر CLI التالية في محطة Codespaces الطرفية.
تعيين متغيرات البيئة للموارد التي تقوم بإنشائها في هذا القسم.
Placeholder القيمة <STORAGE_ACCOUNT_NAME> اسم لحساب التخزين. يجب أن يتراوح طول أسماء حسابات التخزين بين 3 و24 حرفا وأن تحتوي فقط على أرقام وأحرف صغيرة. <SCHEMA_REGISTRY_NAME> اسم لسجل المخطط الخاص بك. <SCHEMA_REGISTRY_NAMESPACE> اسم لمساحة اسم سجل المخطط. تعرف مساحة الاسم بشكل فريد سجل مخطط داخل المستأجر. export STORAGE_ACCOUNT=<STORAGE_ACCOUNT_NAME> export SCHEMA_REGISTRY=<SCHEMA_REGISTRY_NAME> export SCHEMA_REGISTRY_NAMESPACE=<SCHEMA_REGISTRY_NAMESPACE>
إنشاء حساب تخزين مع تمكين مساحة اسم هرمية.
az storage account create --name $STORAGE_ACCOUNT --location $LOCATION --resource-group $RESOURCE_GROUP --enable-hierarchical-namespace
إنشاء سجل مخطط يتصل بحساب التخزين الخاص بك. ينشئ هذا الأمر أيضا حاوية كائن ثنائي كبير الحجم تسمى المخططات في حساب التخزين إذا لم تكن موجودة بالفعل.
az iot ops schema registry create --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP --registry-namespace $SCHEMA_REGISTRY_NAMESPACE --sa-resource-id $(az storage account show --name $STORAGE_ACCOUNT -o tsv --query id)
نشر Azure IoT Operations Preview
في هذا القسم، يمكنك تكوين نظام المجموعة الخاص بك مع التبعيات لمكونات عمليات Azure IoT، ثم توزيع عمليات Azure IoT.
قم بتشغيل أوامر CLI التالية في محطة Codespaces الطرفية.
تهيئة نظام المجموعة لعمليات Azure IoT.
تلميح
init
يجب تشغيل الأمر مرة واحدة فقط لكل نظام مجموعة. إذا كنت تعيد استخدام نظام مجموعة تم نشر الإصدار 0.8.0 من عمليات Azure IoT عليه بالفعل، يمكنك تخطي هذه الخطوة.az iot ops init --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
قد يستغرق هذا الأمر عدة دقائق ليكتمل. يمكنك مشاهدة التقدم في عرض تقدم التوزيع في المحطة الطرفية.
توزيع عمليات Azure IoT. يستغرق هذا الأمر عدة دقائق لإكماله:
az iot ops create --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --name ${CLUSTER_NAME}-instance --sr-resource-id $(az iot ops schema registry show --name $SCHEMA_REGISTRY --resource-group $RESOURCE_GROUP -o tsv --query id) --broker-frontend-replicas 1 --broker-frontend-workers 1 --broker-backend-part 1 --broker-backend-workers 1 --broker-backend-rf 2 --broker-mem-profile Low
قد يستغرق هذا الأمر عدة دقائق ليكتمل. يمكنك مشاهدة التقدم في عرض تقدم التوزيع في المحطة الطرفية.
إذا تلقيت رسالة خطأ تفيد بأن جهازك مطلوب لإدارته للوصول إلى موردك، فقم بتشغيله
az login
مرة أخرى وتأكد من تسجيل الدخول بشكل تفاعلي باستخدام مستعرض.
عرض الموارد في نظام المجموعة
أثناء عملية النشر قيد التقدم، تظهر لك واجهة تقدم CLI مرحلة التوزيع التي أنت فيها. بمجرد اكتمال النشر، يمكنك استخدام أوامر kubectl لمراقبة التغييرات على نظام المجموعة أو، نظرا لأن نظام المجموعة ممكن على Arc، يمكنك استخدام مدخل Azure.
لعرض pods على نظام المجموعة، قم بتشغيل الأمر التالي:
kubectl get pods -n azure-iot-operations
لعرض مواردك على مدخل Microsoft Azure، استخدم الخطوات التالية:
في مدخل Microsoft Azure، انتقل إلى مجموعة الموارد التي تحتوي على مثيل عمليات Azure IoT، أو ابحث عن Azure IoT Operations وحددها.
حدد اسم مثيل عمليات Azure IoT.
في صفحة نظرة عامة على المثيل الخاص بك، تعرض علامة التبويب ملحقات Arc الموارد التي تم نشرها في نظام المجموعة.
كيف قمنا بحل المشكلة؟
في هذا التشغيل السريع، قمت بتكوين مجموعة Kubernetes الممكنة بواسطة Arc بحيث يمكنها الاتصال بأمان بمكونات عمليات Azure IoT. بعد ذلك، قمت بنشر هذه المكونات إلى نظام المجموعة الخاص بك. بالنسبة لسيناريو الاختبار هذا، لديك مجموعة Kubernetes واحدة تعمل على الأرجح محليا على جهازك. ومع ذلك، في سيناريو الإنتاج، يمكنك استخدام نفس الخطوات لنشر أحمال العمل إلى العديد من المجموعات عبر العديد من المواقع.
تنظيف الموارد
إذا كنت تستمر في التشغيل السريع التالي، فاحتفظ بكافة مواردك.
إذا كنت ترغب في إزالة نشر عمليات Azure IoT مع الاحتفاظ بالمجموعة الخاصة بك، فاستخدم الأمر az iot ops delete :
az iot ops delete --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP
إذا كنت ترغب في حذف جميع الموارد التي قمت بإنشائها لهذا التشغيل السريع، فاحذف مجموعة Kubernetes حيث قمت بنشر عمليات Azure IoT ثم قم بإزالة مجموعة موارد Azure التي تحتوي على نظام المجموعة.
إذا استخدمت Codespaces لهذه قوالب التشغيل السريع، فاحذف Codespace من GitHub.