التشغيل السريع: نشر Azure IoT Operations Preview إلى مجموعة Kubernetes الممكنة بواسطة Arc

هام

معاينة عمليات Azure IoT - التي تم تمكينها بواسطة Azure Arc قيد المعاينة حاليا. يجب عدم استخدام برنامج المعاينة هذا في بيئات الإنتاج.

للحصول على الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي، أو المعاينة، أو التي لم يتم إصدارها بعد في التوفر العام، راجع شروط الاستخدام التكميلية لمعاينات Microsoft Azure.

في هذا التشغيل السريع، يمكنك نشر مجموعة من خدمات IoT إلى مجموعة Kubernetes التي تدعم Azure Arc بحيث يمكنك إدارة أجهزتك وأحمال العمل عن بعد. عمليات Azure IoT هي مجموعة عمليات رقمية من الخدمات التي تتضمن Azure IoT Orchestrator Preview. يرشدك هذا التشغيل السريع خلال استخدام Orchestrator لنشر هذه الخدمات إلى مجموعة Kubernetes. في نهاية التشغيل السريع، لديك مجموعة يمكنك إدارتها من السحابة التي تنشئ عينة من البيانات لاستخدامها في عمليات التشغيل السريع التالية.

تتضمن الخدمات المنشورة في هذا التشغيل السريع ما يلي:

تعتمد قوالب التشغيل السريع التالية في هذه السلسلة على هذا الإصدار لتحديد نماذج الأصول، وتدفقات معالجة البيانات، والمرئيات. إذا كنت ترغب في نشر عمليات Azure IoT لتشغيل أحمال العمل الخاصة بك، راجع إعداد مجموعة Kubernetes الممكنة في Azure Arc ونشر ملحقات Azure IoT Operations Preview إلى مجموعة Kubernetes.

قبل البدء

تهدف هذه السلسلة من عمليات التشغيل السريع إلى مساعدتك على البدء في عمليات Azure IoT في أسرع وقت ممكن بحيث يمكنك تقييم سيناريو شامل. في بيئة تطوير أو إنتاج حقيقية، سيتم تنفيذ هذه المهام من قبل فرق متعددة تعمل معا وقد تتطلب بعض المهام أذونات مرتفعة.

للحصول على أفضل تجربة مستخدم جديدة، نوصي باستخدام حساب Azure المجاني بحيث يكون لديك أذونات المالك على الموارد في هذه قوالب التشغيل السريع. كما نقدم خطوات لاستخدام GitHub Codespaces كبيئة ظاهرية يمكنك فيها البدء بسرعة في نشر الموارد وتشغيل الأوامر دون تثبيت أدوات جديدة على أجهزتك الخاصة.

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

لهذا التشغيل السريع، يمكنك إنشاء مجموعة Kubernetes لتلقي توزيع عمليات Azure IoT.

إذا كنت ترغب في إعادة تشغيل هذا التشغيل السريع مع نظام مجموعة تم نشر عمليات Azure IoT إليه بالفعل، فراجع الخطوات الواردة في تنظيف الموارد لإلغاء تثبيت عمليات Azure IoT قبل المتابعة.

قبل البدء، قم بإعداد المتطلبات الأساسية التالية:

ما هي المشكلة التي سنحلها؟

عمليات Azure IoT هي مجموعة من خدمات البيانات التي تعمل على مجموعات Kubernetes. تريد إدارة هذه المجموعات عن بعد من السحابة، والقدرة على التواصل بأمان مع موارد السحابة ونقاط النهاية. نحن نعالج هذه المخاوف مع المهام التالية في هذا التشغيل السريع:

  1. إنشاء مجموعة Kubernetes وتوصيلها ب Azure Arc للإدارة عن بعد.
  2. إنشاء Azure Key Vault لإدارة البيانات السرية لنظام مجموعتك.
  3. قم بتكوين نظام المجموعة الخاص بك مع مخزن بيانات سرية ومدير خدمة للتواصل مع موارد السحابة.
  4. توزيع عمليات Azure IoT إلى نظام المجموعة.

الاتصال مجموعة Kubernetes إلى Azure Arc

يجب أن تعمل عمليات Azure IoT على أي مجموعة Kubernetes تتوافق مع معايير Cloud Native Computing Foundation (CNCF). لهذا التشغيل السريع، استخدم GitHub Codespaces لاستضافة نظام المجموعة الخاص بك.

في هذا القسم، يمكنك إنشاء مجموعة جديدة وتوصيلها ب 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 للاستكشاف فقط.

لإنشاء مساحة التعليمات البرمجية والمجموعة، استخدم الخطوات التالية:

  1. إنشاء مساحة تعليمات برمجية في GitHub Codespaces.

    إنشاء مساحة تعليمة برمجية ل explore-iot-operations

  2. قم بتوفير الأسرار الموصى بها التالية لمساحة التعليمات البرمجية الخاصة بك:

    المعلمة القيمة
    SUBSCRIPTION_ID معرّف اشتراك Azure.
    RESOURCE_GROUP اسم لمجموعة موارد Azure جديدة حيث سيتم إنشاء نظام المجموعة الخاص بك.
    الموقع منطقة Azure قريبة منك. يتم دعم المناطق التالية في المعاينة العامة: eastus أو eastus2 أو westus أو westus2 أو westus3 أو westeurope أو northeurope.

    تلميح

    يتم حفظ القيم التي تقدمها كأسرار في هذه الخطوة على حساب GitHub الخاص بك لاستخدامها في مساحات التعليمات البرمجية هذه والمستقبلية. كما تتم إضافتها تلقائيا كمتغيرات بيئة في الوحدة الطرفية لمساحة التعليمات البرمجية، ويمكنك استخدام متغيرات البيئة هذه في أوامر CLI في القسم التالي.

    بالإضافة إلى ذلك، تقوم مساحة التعليمات CLUSTER_NAME البرمجية هذه تلقائيا بإنشاء متغير بيئة يتم تعيينه باسم مساحة التعليمات البرمجية.

  3. حدد Create new codespace.

  4. بمجرد أن تصبح مساحة التعليمات البرمجية جاهزة، حدد زر القائمة في أعلى اليسار، ثم حدد Open in VS Code Desktop.

    فتح سطح مكتب VS Code

  5. إذا طلب منك ذلك، قم بتثبيت ملحق GitHub Codespaces ل Visual Studio Code وسجل الدخول إلى GitHub.

  6. في Visual Studio Code، حدد View>Terminal.

    استخدم المحطة الطرفية هذه لتشغيل كافة أوامر سطر الأوامر وCLI لإدارة نظام المجموعة.

لتوصيل مجموعتك ب Azure Arc:

  1. في الوحدة الطرفية لمساحة التعليمات البرمجية، سجل الدخول إلى Azure CLI:

    az login
    

    تلميح

    إذا كنت تستخدم بيئة مساحة التعليمات البرمجية GitHub في مستعرض بدلا من سطح مكتب VS Code، فإن التشغيل az login يرجع خطأ localhost. لإصلاح الخطأ، إما:

    • افتح مساحة التعليمات البرمجية في VS Code لسطح المكتب، ثم ارجع إلى محطة المتصفح وأعد تشغيل az login.
    • أو، بعد أن تحصل على خطأ المضيف المحلي على المتصفح، انسخ عنوان URL من المتصفح وقم بتشغيله curl "<URL>" في علامة تبويب محطة طرفية جديدة. يجب أن تشاهد استجابة JSON مع الرسالة "لقد قمت بتسجيل الدخول إلى Microsoft Azure!".
  2. تعيين سياق اشتراك Azure لكافة الأوامر:

    az account set -s $SUBSCRIPTION_ID
    
  3. تسجيل موفري الموارد المطلوبين في اشتراكك:

    إشعار

    يجب تشغيل هذه الخطوة مرة واحدة فقط لكل اشتراك.

    az provider register -n "Microsoft.ExtendedLocation"
    az provider register -n "Microsoft.Kubernetes"
    az provider register -n "Microsoft.KubernetesConfiguration"
    az provider register -n "Microsoft.IoTOperationsOrchestrator"
    az provider register -n "Microsoft.IoTOperationsMQ"
    az provider register -n "Microsoft.IoTOperationsDataProcessor"
    az provider register -n "Microsoft.DeviceRegistry"
    
  4. استخدم الأمر az group create لإنشاء مجموعة موارد في اشتراك Azure لتخزين جميع الموارد:

    az group create --location $LOCATION --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    
  5. استخدم الأمر az connectedk8s connect إلى Arc-enable نظام مجموعة Kubernetes وإدارته كجزء من مجموعة موارد Azure:

    az connectedk8s connect -n $CLUSTER_NAME -l $LOCATION -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID
    

    تلميح

    يتم تعيين قيمة $CLUSTER_NAME تلقائيا إلى اسم مساحة التعليمات البرمجية الخاصة بك. استبدل متغير البيئة إذا كنت تريد استخدام اسم مختلف.

  6. احصل على objectId تطبيق معرف Microsoft Entra الذي تستخدمه خدمة Azure Arc واحفظه كمتغير بيئة.

    export OBJECT_ID=$(az ad sp show --id bc313c14-388c-4e7d-a58e-70017303ee3b --query id -o tsv)
    
  7. استخدم الأمر 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 CLI للتحقق من تكوين مضيف نظام المجموعة بشكل صحيح للتوزيع باستخدام الأمر verify-host على مضيف نظام المجموعة:

az iot ops verify-host

يتحقق أمر المساعد هذا من الاتصال ب Azure Resource Manager ونقاط نهاية Microsoft Container Registry.

نشر Azure IoT Operations Preview

في هذا القسم، يمكنك استخدام الأمر az iot ops init لتكوين نظام المجموعة الخاص بك بحيث يمكنه الاتصال بأمان بمكونات عمليات Azure IoT وخزنة المفاتيح، ثم نشر عمليات Azure IoT.

قم بتشغيل أوامر CLI التالية في محطة Codespaces الطرفية.

  1. إنشاء مخزن رئيسي. بالنسبة لهذا السيناريو، سنستخدم نفس الاسم ومجموعة الموارد مثل مجموعتك. تحتوي أسماء Keyvault على 24 حرفا كحد أقصى، لذلك يقوم الأمر التالي باقتطاع CLUSTER_NAMEمتغير البيئة إذا لزم الأمر.

    az keyvault create --enable-rbac-authorization false --name ${CLUSTER_NAME:0:24} --resource-group $RESOURCE_GROUP
    

    تلميح

    يمكنك استخدام مخزن مفاتيح موجود للبيانات السرية الخاصة بك، ولكن تحقق من تعيين نموذج الإذن على نهج الوصول إلى Vault. يمكنك التحقق من هذا الإعداد في مدخل Microsoft Azure في قسم تكوين Access في مخزن مفاتيح موجود. أو استخدم الأمر az keyvault show للتحقق من أن enableRbacAuthorization غير صحيح.

  2. توزيع عمليات Azure IoT.

    az iot ops init --simulate-plc --cluster $CLUSTER_NAME --resource-group $RESOURCE_GROUP --kv-id $(az keyvault show --name ${CLUSTER_NAME:0:24} -o tsv --query id)
    

    إذا تلقيت رسالة خطأ تفيد بأن جهازك مطلوب لإدارته للوصول إلى موردك، فقم بتشغيله az login مرة أخرى وتأكد من تسجيل الدخول بشكل تفاعلي باستخدام مستعرض.

    تلميح

    إذا قمت بالتشغيل az iot ops init من قبل، فإنه ينشئ تلقائيا تسجيل تطبيق في معرف Microsoft Entra نيابة عنك. يمكنك إعادة استخدام هذا التسجيل بدلا من إنشاء تسجيل جديد في كل مرة. لاستخدام تسجيل تطبيق موجود، أضف المعلمة --sp-app-id <APPLICATION_CLIENT_ID>الاختيارية .

عرض الموارد في نظام المجموعة

أثناء التوزيع قيد التقدم، يمكنك مشاهدة الموارد التي يتم تطبيقها على نظام المجموعة الخاص بك. يمكنك استخدام أوامر kubectl لمراقبة التغييرات على نظام المجموعة أو، نظرا لأن نظام المجموعة ممكن بواسطة Arc، يمكنك استخدام مدخل Azure.

لعرض pods على نظام المجموعة، قم بتشغيل الأمر التالي:

kubectl get pods -n azure-iot-operations

قد يستغرق اكتمال النشر عدة دقائق. تابع تشغيل get pods الأمر لتحديث طريقة العرض.

لعرض نظام المجموعة على مدخل Microsoft Azure، استخدم الخطوات التالية:

  1. في مدخل Microsoft Azure، انتقل إلى مجموعة الموارد التي تحتوي على نظام المجموعة.

  2. من نظرة عامة على مجموعة الموارد، حدد اسم نظام المجموعة الخاص بك.

  3. في نظام المجموعة، حدد Extensions من قسم الإعدادات من القائمة.

    لقطة شاشة تعرض الملحقات المنشورة على نظام المجموعة الذي يدعم Arc.

    يمكنك أن ترى أن مجموعتك تقوم بتشغيل ملحقات من نوع microsoft.iotoperations.x، وهو اسم المجموعة لجميع مكونات عمليات Azure IoT وخدمة التنسيق. تحتوي هذه الملحقات على لاحقة فريدة تحدد التوزيع الخاص بك. في لقطة الشاشة السابقة، هذه اللاحقة هي -z2ewy.

    هناك أيضا ملحق يسمى akvsecretsprovider. هذا الملحق هو موفر الأسرار الذي قمت بتكوينه وتثبيته على نظام المجموعة الخاص بك باستخدام az iot ops init الأمر . يمكنك حذف وإعادة تثبيت مكونات عمليات Azure IoT أثناء الاختبار، ولكن احتفظ بملحق موفر الأسرار على مجموعتك.

  4. دون الاسم الكامل للملحق المسمى mq-.... يمكنك استخدام هذا الاسم في قوالب التشغيل السريع التالية.

كيف قمنا بحل المشكلة؟

في هذا التشغيل السريع، قمت بتكوين مجموعة Kubernetes الممكنة بواسطة Arc بحيث يمكنها الاتصال بأمان بمكونات عمليات Azure IoT. بعد ذلك، قمت بنشر هذه المكونات إلى نظام المجموعة الخاص بك. بالنسبة لسيناريو الاختبار هذا، لديك مجموعة Kubernetes واحدة تعمل على الأرجح محليا على جهازك. ومع ذلك، في سيناريو الإنتاج، يمكنك استخدام نفس الخطوات لنشر أحمال العمل إلى العديد من المجموعات عبر العديد من المواقع.

تنظيف الموارد

إذا كنت تستمر في التشغيل السريع التالي، فاحتفظ بكافة مواردك.

إذا كنت ترغب في حذف توزيع عمليات Azure IoT ولكنك تخطط لإعادة تثبيته على نظام المجموعة، فتأكد من الاحتفاظ بموفر البيانات السرية على نظام المجموعة.

  1. في مجموعة الموارد الخاصة بك في مدخل Microsoft Azure، حدد نظام المجموعة الخاص بك.

  2. في صفحة مورد نظام المجموعة، حدد Extensions.

  3. حدد كافة الملحقات من النوع microsoft.iotoperations.x وmicrosoft.deviceregistry.assets، ثم حدد إلغاء التثبيت. لا تقم بإلغاء تثبيت ملحق موفر البيانات السرية.

    لقطة شاشة تعرض الملحقات لإلغاء التثبيت.

  4. ارجع إلى مجموعة الموارد وحدد مورد الموقع المخصص، ثم حدد حذف.

إذا كنت ترغب في حذف كافة الموارد التي قمت بإنشائها لهذا التشغيل السريع، فاحذف مجموعة Kubernetes حيث قمت بنشر عمليات Azure IoT وإزالة مجموعة موارد Azure التي تحتوي على نظام المجموعة.

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