نشر ملحقات Azure IoT Operations Preview إلى مجموعة Kubernetes

هام

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

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

نشر Azure IoT Operations Preview إلى مجموعة Kubernetes باستخدام Azure CLI. بمجرد نشر عمليات Azure IoT، يمكنك استخدام خدمة Azure IoT Orchestrator Preview لإدارة أحمال العمل الأخرى ونشرها في مجموعتك.

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

موارد السحابة:

  • اشتراك Azure.

  • أذونات الوصول إلى Azure. كحد أدنى، لديك أذونات المساهم في اشتراك Azure الخاص بك. اعتمادا على حالة علامة ميزة النشر التي تحددها، قد تحتاج أيضا إلى أذونات Microsoft/Authorization/roleAssignments/write لمجموعة الموارد التي تحتوي على مجموعة Kubernetes الممكنة بواسطة Arc. يمكنك إنشاء دور مخصص في التحكم في الوصول المستند إلى دور Azure أو تعيين دور مضمن يمنح هذا الإذن. لمزيد من المعلومات، راجع أدوار Azure المضمنة ل General.

    إذا لم يكن لديك أذونات كتابة تعيين الدور، فلا يزال بإمكانك نشر عمليات Azure IoT عن طريق تعطيل بعض الميزات. تتم مناقشة هذا الأسلوب بمزيد من التفصيل في قسم نشر الملحقات في هذه المقالة.

    • في Azure CLI، استخدم الأمر az role assignment create لمنح الأذونات. على سبيل المثال، az role assignment create --assignee sp_name --role "Role Based Access Control Administrator" --scope subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/MyResourceGroup

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

      لقطة شاشة تعرض تعيين وصول دور متميز للغاية للمستخدمين في مدخل Microsoft Azure.

  • Azure Key Vault الذي يحتوي على نموذج الإذن الذي تم تعيينه إلى نهج الوصول إلى Vault. يمكنك التحقق من هذا الإعداد في قسم تكوين Access في مخزن مفاتيح موجود. إذا كنت بحاجة إلى إنشاء مخزن مفاتيح جديد، فاستخدم الأمر az keyvault create :

    az keyvault create --enable-rbac-authorization false --name "<KEYVAULT_NAME>" --resource-group "<RESOURCE_GROUP>"
    

موارد التطوير:

  • تم تثبيت Azure CLI على جهاز التطوير الخاص بك. لمزيد من المعلومات، راجع كيفية تثبيت Azure CLI. يتطلب هذا السيناريو الإصدار 2.46.0 من Azure CLI أو أعلى. استخدم az --version للتحقق من الإصدار وتحديثه az upgrade إذا لزم الأمر.

  • ملحق عمليات Azure IoT ل Azure CLI. استخدم الأمر التالي لإضافة الملحق أو تحديثه إلى أحدث إصدار:

    az extension add --upgrade --name azure-iot-ops
    

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

  • نظام مجموعة Kubernetes المُمكّن في Azure Arc. إذا لم يكن لديك واحد، فاتبع الخطوات الواردة في إعداد مجموعة Kubernetes الممكنة في Azure Arc.

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

    يجب أن تعمل عمليات Azure IoT على أي مجموعة kubernetes متوافقة مع CNCF. حاليا، تدعم Microsoft فقط K3s على Ubuntu Linux وWSL، أو AKS Edge Essentials على Windows. استخدام Ubuntu في نظام Windows الفرعي لـ Linux‬ (WSL) هو أبسط طريقة للحصول على مجموعة Kubernetes للاختبار.

    استخدم ملحق عمليات Azure IoT ل Azure CLI للتحقق من تكوين مضيف نظام المجموعة بشكل صحيح للتوزيع باستخدام الأمر verify-host على مضيف نظام المجموعة:

    az iot ops verify-host
    

نشر الملحقات

استخدم Azure CLI لنشر مكونات عمليات Azure IoT إلى مجموعة Kubernetes التي تدعم Arc.

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

    az login
    

    إشعار

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

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

    بشكل افتراضي، az iot ops init يتخذ الأمر الإجراءات التالية، والتي يتطلب بعضها أن يكون للمدير الذي سجل الدخول إلى CLI أذونات مرتفعة:

    • إعداد كيان الخدمة وتسجيل التطبيق لمنح نظام المجموعة حق الوصول إلى مخزن المفاتيح.
    • تكوين شهادات TLS.
    • قم بتكوين مخزن أسرار على نظام المجموعة الخاص بك يتصل بخزنة المفاتيح.
    • توزيع موارد عمليات Azure IoT.
    az iot ops init --cluster <CLUSTER_NAME> --resource-group <RESOURCE_GROUP> --kv-id <KEYVAULT_ID>
    

    إذا لم يكن لديك أذونات Microsoft.Authorization/roleAssignment/write في مجموعة الموارد، أضف علامة الميزة --disable-rsync-rules . تقوم هذه العلامة بتعطيل قواعد مزامنة الموارد في التوزيع.

    إذا كنت ترغب في استخدام كيان خدمة موجود وتسجيل التطبيق بدلا من السماح init بإنشاء خدمة جديدة، فضمن --sp-app-id,--sp-object-idالمعلمات و --sp-secret . لمزيد من المعلومات، راجع تكوين كيان الخدمة وKey Vault يدويا.

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

    az iot ops check
    

    يمكنك أيضا التحقق من تكوينات مخططات المواضيع وQoS ومسارات الرسائل عن طريق إضافة المعلمة --detail-level 2 لطريقة عرض مطولة.

تكوين شبكة نظام المجموعة (AKS EE)

في مجموعات AKS Edge Essentials، قم بتمكين الاتصالات الواردة إلى وسيط Azure IoT MQ Preview وتكوين إعادة توجيه المنفذ:

  1. تمكين قاعدة جدار الحماية للمنفذ 8883:

    New-NetFirewallRule -DisplayName "Azure IoT MQ" -Direction Inbound -Protocol TCP -LocalPort 8883 -Action Allow
    
  2. قم بتشغيل الأمر التالي وقم بتدوين عنوان IP للخدمة المسماة aio-mq-dmqtt-frontend:

    kubectl get svc aio-mq-dmqtt-frontend -n azure-iot-operations -o jsonpath='{.status.loadBalancer.ingress[0].ip}'
    
  3. تمكين إعادة توجيه المنفذ للمنفذ 8883. استبدل <aio-mq-dmqtt-frontend IP address> بعنوان IP الذي لاحظته في الخطوة السابقة:

    netsh interface portproxy add v4tov4 listenport=8883 listenaddress=0.0.0.0 connectport=8883 connectaddress=<aio-mq-dmqtt-frontend IP address>
    

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

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

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

kubectl get pods -n azure-iot-operations

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

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

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

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

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

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

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

تلميح

يمكنك تشغيل az iot ops check لتقييم صحة وتكوينات أحمال عمل AIO المنشورة. بشكل افتراضي، يتم تقييم MQ بما في ذلك موصلات السحابة ويمكنك تحديد الخدمة باستخدام --ops-service --svc.

تحديث عملية توزيع

حاليا، لا يوجد دعم لتحديث توزيع عمليات Azure IoT الموجودة. بدلا من ذلك، ابدأ بمجموعة نظيفة لنشر جديد.

إذا كنت ترغب في حذف نشر عمليات Azure IoT على نظام المجموعة الخاص بك بحيث يمكنك إعادة النشر إليه، فانتقل إلى نظام المجموعة الخاص بك على مدخل Microsoft Azure. حدد ملحقات النوع microsoft.iotoperations.x وmicrosoft.deviceregistry.assets، ثم حدد إلغاء التثبيت. احتفظ بموفر البيانات السرية على نظام المجموعة الخاص بك، لأن هذا شرط أساسي للتوزيع ولا يتم تضمينه في عملية نشر جديدة.

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

إذا كانت مكوناتك بحاجة إلى الاتصال بنقاط نهاية Azure مثل SQL أو Fabric، فتعرف على كيفية إدارة الأسرار لتوزيع Azure IoT Operations Preview.