تثبيت ملحق Event Grid على مجموعة Kubernetes الممكنة في Azure Arc

يرشدك هذا المقال خلال الخطوات لتثبيت "شبكة الأحداث" على نظام مجموعةKubernetes الممكّن بواسطة Azure Arc.

للإيجاز، تشير هذه المقالة إلى "شبكة الأحداث على امتداد Kubernetes" ك "شبكة الأحداث على Kubernetes" أو "شبكة الأحداث" فقط.

هام

تكون Event Grid على Kubernetes مع Azure Arc حالياً في المعاينة العامة. يتم توفير إصدار المعاينة هذا بدون اتفاقية مستوى الخدمة، ولا يوصى به لأحمال العمل الخاصة بالإنتاج. بعض الميزات ربما لا تكون مدعمة أو بها بعض القدرات المقيدة. لمزيد من المعلومات، راجع ⁧⁩شروط الاستخدام التكميلية لمعاينات Microsoft Azure⁧⁩.

توزيعات Kubernetes المدعومة

فيما يلي توزيعات Kubernetes المعتمدة التي يمكن نشر شبكة الأحداث وتشغيلها.

  1. دعمت Azure AKS توزيعات Kubernetes.
  2. RedHat OpenShift Container Platform.

امتداد Event Grid

العملية التي تقوم بتثبيت مثيل خدمة شبكة الأحداث على كتلة Kubernetes هو إنشاء ملحق الكتلة القوس Azure الذي ينشر وسيط شبكة الأحداث ومشغل شبكة الأحداث. لمزيد من المعلومات حول وظيفة الوسيط والمشغل، راجع شبكة الأحداث على مكونات Kubernetes. توفر ميزة ملحق نظام مجموعة Azure Arc إدارة دورة الحياة باستخدام عمليات وحدة التحكم في Azure Resource Manager (ARM) إلى Event Grid المنشورة في مجموعات Kubernetes الممكنة في Azure Arc.

ملاحظة

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

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

قبل المتابعة مع تثبيت شبكة الأحداث، تأكد من استيفاء المتطلبات الأساسية التالية.

  1. كتلة تعمل على أحد التوزيعات Kubernetes المعتمدة.
  2. اشتراك Azure.
  3. شهادات PKI لاستخدامها في تأسيس اتصال HTTPS مع وسيط شبكة الأحداث.
  4. قم بتوصيل مجموعتك بـ Azure Arc.

الحصول على الدعم

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

متطلبات شهادة PKI

وسيط شبكة الأحداث (الخادم) يخدم نوعين من العملاء. تتم مصادقة الخادم باستخدام الشهادات. تتم مصادقة العميل باستخدام الشهادات أو مفاتيح SAS استنادا إلى نوع العميل.

  • تتم مصادقة عوامل تشغيل Event Grid التي تقدم طلبات مستوى التحكم إلى وسيط Event Grid باستخدام الشهادات.
  • تتم المصادقة على ناشري Event Grid الذين ينشرون أحداثاً إلى موضوع Event Grid باستخدام مفاتيح SAS للموضوع.

لإنشاء اتصال HTTPS آمن مع وسيط شبكة الأحداث ومشغل شبكة الأحداث، نستخدم شهادات PKI أثناء تثبيت ملحق شبكة الأحداث. فيما يلي المتطلبات العامة لشهادات PKI هذه:

  1. يجب أن تكون الشهادات والمفاتيح شهادات X.509 وخصوصية المحسنة البريد PEM ترميز.

  2. لتكوين شهادة وسيط شبكة الأحداث (الخادم) أثناء التثبيت، ستحتاج إلى توفير:

    1. شهادة CA
    2. شهادة عامة
    3. مفتاح خاص
  3. لتكوين شهادة عامل تشغيل شبكة الأحداث (العميل)، ستحتاج إلى توفير:

    1. شهادة CA
    2. شهادة عامة
    3. مفتاح خاص

    يمكن استخدام عملاء النشر شهادة المرجع المصدق وسيط شبكة الأحداث للتحقق من صحة الخادم عند نشر الأحداث إلى موضوع.

    هام

    بينما قد يكون مجالاً مقترناً بالعميل أكثر من شهادة عامة صادرة عن المراجع المصدقة مختلفة، شبكة الأحداث على Kubernetes يسمح فقط تحميل شهادة CA واحد للعملاء عند تثبيت شبكة الأحداث. وكنتيجة لذلك، يجب أن يتم إصدار الشهادات الخاصة عامل تشغيل شبكة الأحداث (موقعة) من قبل نفس المرجع المصدق (CA) كي ينجح التحقق من صحة سلسلة الشهادات وجلسة عمل TLS بنجاح.

  4. عند تكوين الاسم الشائع (CN) لشهادات الخادم والعميل، تأكد من أنها مختلفة عن CN المتوفرة لشهادة المرجع المصدق.

    هام

    وبالنسبة للمراحل المبكرة لإثبات المفهوم، قد تكون الشهادات الموقعة ذاتيا خيارا، ولكن بصفة عامة، ينبغي شراء واستخدام شهادات مرفق الKI المناسبة الموقعة من قبل هيئة الشهادات.

تثبيت باستخدام مدخل Azure

  1. على مدخل Azure، ابحث (حقل في الأعلى) عن Azure Arc

  2. حدد مجموعة Kubernetes في القائمة اليمنى في قسم البنية الأساسية

  3. ضمن قائمة الكتل، حدد موقع المجموعة التي تريد تثبيت شبكة الأحداث عليها، وحددها. يتم عرض الصفحة نظرة عامة للكتلة.

    حدد نظام مجموعة Kubernetes

  4. حدد ملحقات في مجموعة الإعدادات في القائمة اليمنى.

  5. حدد ⁧⁩⁩+ Add⁦⁩. يتم عرض صفحة تعرض ملحقات Azure Arc Kubernetes المتوفرة.

    ملحقات المجموعات - إضافة زر

  6. في صفحة الموارد الجديدة، حدد شبكة الأحداث على ملحق Kubernetes.

    تحديد Event Grid على ملحق Kubernetes

  7. في صفحة "شبكة الأحداث" على صفحة ملحق Kubernetes، حدد إنشاء.

    حدد إنشاء ملحق Kubernetes

  8. علامة التبويب أساسيات الصفحة تثبيت شبكة الأحداث اتبع الخطوات التالية.

    1. يعرض قسم تفاصيل Project قيم الاشتراك فقط للقراءة ومجموعة الموارد لأن ملحقات Azure Arc يتم نشرها ضمن نفس اشتراك Azure ومجموعة الموارد الخاصة بالكتلة المتصلة التي تم تثبيتها عليها.

    2. توفير اسم في حقل اسم ملحق شبكة الأحداث. يجب أن يكون هذا الاسم فريداً بين ملحقات Azure Arc الأخرى المنشورة على نفس الكتلة المتصلة Azure Arc.

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

    4. في قسم تفاصيل وسيط شبكة الأحداث، يظهر نوع الخدمة. وسيط شبكة الأحداث، وهو المكون الذي يعرض نقاط نهاية الموضوع التي يتم إرسال الأحداث إليها، يتعرض كنوع خدمة Kubernetes ClusterIP. ومن ثم، تستخدم IP المعينة لجميع المواضيع مساحة IP الخاصة المكونة للكتلة.

    5. قم بتوفير اسم فئة التخزين الذي تريد استخدامه للوسيط وهذا مدعوم من قبل توزيع Kubernetes الخاص بك. على سبيل المثال، إذا كنت تستخدم AKS، فيمكنك استخدام azurefile، والذي يستخدم تخزين Azure Standard. لمزيد من المعلومات حول فئات التخزين المعرفة مسبقا المدعومة من AKS، راجع فئات التخزين في AKS. إذا كنت تستخدم توزيعات Kubernetes أخرى، فراجع وثائق توزيع Kubernetes لفئات التخزين المعرفة مسبقاً المدعومة أو الطريقة التي يمكنك من توفيرها بنفسك.

    6. حجم التخزين. الافتراضي هو 1 GiB. فكر في معدل الابتلاع عند تحديد حجم التخزين. معدل الابتلاع في MiB/second مقاسا بحجم الأحداث الخاصة بك مرات معدل النشر (الأحداث في الثانية) عبر جميع المواضيع على وسيط شبكة الأحداث عامل رئيسي عند تخصيص التخزين. الأحداث عابرة في طبيعتها وبمجرد تسليمها، لا يوجد استهلاك تخزين لتلك الأحداث. في حين أن معدل الابتلاع هو المحرك الرئيسي لاستخدام التخزين، إلا إنه ليس الوحيد. تستهلك بيانات التعريف التي تحتوي على موضوع وتكوين اشتراك الحدث أيضاً مساحة تخزين، ولكن هذا يتطلب عادة مساحة تخزين أقل من الأحداث التي يتم تناولها وتسليمها بواسطة شبكة الأحداث.

    7. حد الذاكرة. الافتراضي هو 1 GiB.

    8. طلب الذاكرة. الافتراضي هو 200 ميجابيت. هذا الحقل غير قابل للتحرير.

      تثبيت ملحق شبكة الأحداث - صفحة الأساسيات

    9. حدد التالي: التكوين في أسفل الصفحة.

  9. في علامة التبويب تكوين الصفحة تثبيت شبكة الأحداث، قم بالخطوات التالية:

    1. تمكين اتصال HTTP (غير آمن). حدد هذا المربع إذا كنت تريد استخدام قناة غير مؤمنة عند اتصال العملاء مع وسيط شبكة الأحداث.

      هام

      يؤدي تمكين هذا الخيار إلى جعل الاتصال مع وسيط Event Grid لاستخدام HTTP كنقل. وبالتالي، لن يتصل أي عميل نشر ومشغل شبكة الأحداث مع وسيط شبكة الأحداث بشكل آمن. يجب استخدام هذا الخيار فقط خلال المراحل المبكرة من التطوير.

    2. إذا لم تقم بتمكين اتصال HTTP، فحدد كل ملف من ملفات شهادات PKI التي اشتريتها واستيفاء متطلبات شهادة PKI.

      تثبيت ملحق شبكة الأحداث - صفحة التكوين

    3. حدد التالي: مراقبة في أسفل الصفحة.

  10. في علامة التبويب مراقبة من الصفحة تثبيت شبكة الأحداث، قم بالخطوات التالية:

    1. حدد تمكين المقاييس (اختياري). إذا قمت بتحديد هذا الخيار، فإن شبكة الأحداث على Kubernetes تعرض مقاييس للمواضيع والاشتراكات في الأحداث باستخدام تنسيق معرض Prometheus.

      تثبيت ملحق شبكة الأحداث - صفحة المراقبة

    2. حدد التالي: العلامات للانتقال إلى صفحة العلامات.

  11. في الصفحة علامات، قم بالخطوات التالية:

    1. تعريف العلامات، إذا لزم الأمر.

      تثبيت ملحق شبكة الأحداث - صفحة العلامات

    2. حدد Review + create من أسفل الصفحة.

  12. حدد Review + create من علامة التبويب، حدد Create.

    تثبيت ملحق شبكة الأحداث - مراجعة الصفحة وإنشاؤها

    هام

    تثبيت شبكة الأحداث هو عملية غير متزامنة التي قد تعمل لفترة أطول على كتلة Kubernetes من الوقت الذي تشاهد إعلام على مدخل Azure إعلام النشر كاملة. انتظر 5 دقائق على الأقل بعد ظهور إعلام بأن "النشر الخاص بك مكتمل" قبل محاولة إنشاء موقع مخصص (الخطوة التالية). إذا كان لديك حق الوصول إلى كتلة Kubernetes، في جلسة عمل bash يمكنك تنفيذ الأمر التالي للتحقق من صحة ما إذا كان وسيط شبكة الأحداث والقرون عامل شبكة الأحداث في حالة تشغيل، ما يشير إلى اكتمال التثبيت:

    kubectl get pods -n \<release-namespace-name\>
    

    هذا هو نموذج الإخراج:

    NAME                                  READY   STATUS    RESTARTS   AGE
    eventgrid-broker-568f75976-wxkd2      1/1     Running   0          2m28s
    eventgrid-operator-6c4c6c675d-ttjv5   1/1     Running   0          2m28s    
    

    هام

    يجب إنشاء موقع مخصص قبل محاولة نشر مواضيع شبكة الأحداث. لإنشاء موقع مخصص، يمكنك تحديد صفحة السياق في أسفل 5 دقائق بعد ظهور إعلام "النشر الخاص بك مكتمل". بدلاً من ذلك، يمكنك إنشاء موقع مخصص باستخدام مدخل Azure. لمزيد من المعلومات، راجع وثائق الموقع المخصص.

  13. بعد نجاح عملية النشر، ستتمكن من مشاهدة إدخال في صفحة الإضافات بالاسم الذي قدمته إلى ملحق شبكة الأحداث. إذا رأيت Pendingلحالة التثبيت، فانتظر لبضع دقائق، ثم حدد Refresh على شريط الأدوات.

    ملحق شبكة الأحداث - مثبت

تثبيت باستخدام Azure CLI

  1. بدء جلسة عمل shell. يمكنك بدء جلسة عمل على الكمبيوتر أو يمكنك فتح مستعرض إلى https://shell.azure.com.

  2. أنشئ ملف التكوين protected-settings-extension.json. يتم تمرير هذا الملف كمعلمة عند إنشاء ملحق شبكة الأحداث.

    في الأمر التالي وفي كل من خطوط التكوين استبدال filenameبالاسم الذي يحتوي على الشهادة العمومية أو شهادة المرجع المصدق (CA) أو مفتاح عامل التشغيل (العميل) أو broker (الخادم)، وفقا لذلك. يجب أن تكون جميع الشهادات المتوفرة base64 ترميزاً مع التفاف سطر لا. وبالتالي، فإن استخدام الأمرbase64 --wrap=0.

    echo "{ 
        \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityKey\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridoperator.identityCert.base64EncodedIdentityCaCert\":\"$(base64 <filename> --wrap=0)\",
        \"eventgridbroker.service.tls.base64EncodedServerCert\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerKey\":  \"$(base64 <filename> --wrap=0)\" ,
        \"eventgridbroker.service.tls.base64EncodedServerCaCert\":  \"$(base64 <filename> --wrap=0)\" 
    }" > protected-settings-extension.json 
    

    على سبيل المثال، إذا تم استدعاء الشهادة العامة للوسيط (عنصر التكوين الأول أعلاه) client.cer، فيجب أن يبدو سطر التكوين الأول كما يلي:

    \"eventgridoperator.identityCert.base64EncodedIdentityCert\":\"$(base64 client.cer --wrap=0)\",    
    
  3. أنشئ ملف التكوين settings-extension.json. يتم تمرير هذا الملف كمعلمة عند إنشاء ملحق شبكة الأحداث.

    هام

    لا يجوز لك تغيير القيم الخاصة ServiceAccount وserviceType. أثناء إصدار المعاينة، يكون نوع خدمة Kubernetes الوحيد المعتمد هو ClusterIP.

    storageClassNameلتوفير فئة التخزين التي تريد استخدامها للوسيط والتي يتم دعمها من قبل توزيع Kubernetes الخاص بك. على سبيل المثال، إذا كنت تستخدم AKS، فيمكنك استخدام azurefile ، والذي يستخدم تخزين Azure Standard. لمزيد من المعلومات حول فئات التخزين المعرفة مسبقا المدعومة من AKS، راجع فئات التخزين في AKS. إذا كنت تستخدم توزيعات Kubernetes أخرى، فراجع وثائق توزيع Kubernetes لفئات التخزين المعرفة مسبقاً المدعومة أو الطريقة التي يمكنك من توفيرها بنفسك.

    تعيين reporterType إلى prometheus لتمكين مقاييس للمواضيع والاشتراكات الحدث باستخدام تنسيق معرض Prometheus.

    هام

    أثناء إصدار المعاينة، استخدام عميل Prometheus هو الآلية الوحيدة المعتمدة للحصول على مقاييس.

    echo "{
        \"Microsoft.CustomLocation.ServiceAccount\":\"eventgrid-operator\",
        \"eventgridbroker.service.serviceType\": \"ClusterIP\",
        \"eventgridbroker.dataStorage.storageClassName\": \"<storage_class_name>\",
        \"eventgridbroker.diagnostics.metrics.reporterType\":\"prometheus\"
    }" > settings-extension.json
    
  4. إنشاء ملحق Kubernetes تثبيت مكونات شبكة الأحداث على الكتلة الخاصة بك.

    بالنسبة لمعلمات cluster-name و، يجب استخدام نفس resource-group الأسماء المتوفرة عند توصيل نظام المجموعة بـ Azure Arc.

    release-namespace هو مساحة الاسم حيث سيتم نشر مكونات شبكة الأحداث في. الافتراضي هو نظام شبكة الحدث. قد تحتاج إلى توفير قيمة لتجاوز الافتراضي. على سبيل المثال، قد تحتاج إلى مساحة اسم مفردة لجميع الخدمات تمكين القوس Azure نشرها إلى الكتلة. إذا لم تكن مساحة الاسم المتوفرة موجودة، يتم إنشاؤها لك.

    هام

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

    az k8s-extension create \
        --cluster-type connectedClusters \
        --cluster-name <connected_cluster_name> \
        --resource-group <resource_group_of_connected_cluster> \
        --name <event_grid_extension_name> \
        --extension-type Microsoft.EventGrid \
        --scope cluster \
        --auto-upgrade-minor-version true \
        --release-train Stable \
        --release-namespace <namespace_name> \
        --configuration-protected-settings-file protected-settings-extension.json \
        --configuration-settings-file settings-extension.json    
    

    لمزيد من المعلومات حول أمر CLI، راجع az k8s-extension create. لاحظ أنه يمكنك استخدام المعلمة --config-file لتمرير اسم ملف json الذي يحتوي على معلومات التكوين المتعلقة بشبكة الأحداث. لدعم HTTP، قم بتضمين الإعداد التالي.

    "eventgridbroker.service.supportedProtocols[0]": "http" 
    

    فيما يلي نموذج settings-extension.json مع الإعداد أعلاه.

    {
        "Microsoft.CustomLocation.ServiceAccount": "eventgrid-operator",
        "eventgridbroker.service.serviceType": "ClusterIP",
        "eventgridbroker.service.supportedProtocols[0]": "http",
        "eventgridbroker.dataStorage.storageClassName": "default",
        "eventgridbroker.diagnostics.metrics.reporterType": "prometheus"
    }    
    
  5. تحقق من تثبيت ملحق Event Grid بنجاح.

    az k8s-extension show  --cluster-type connectedClusters --cluster-name <connected_cluster_name> --resource-group <resource_group_of_connected_cluster> --name <event_grid_extension_name>
    

    يجب أن تكون خاصية installedState هي Installed إذا تم نشر مكونات ملحق شبكة الأحداث بنجاح.

الموقع المخصص

هام

يجب إنشاء موقع مخصص قبل محاولة نشر مواضيع شبكة الأحداث. يمكنك إنشاء موقع مخصص باستخدام مدخل Azure.

استكشاف الأخطاء وإصلاحها

مشكلات نظام مجموعة لتوصيل Azure Arc

المشكلة: عند الانتقال إلى Azure Arc وتحديد مجموعة Kubernetes في القائمة اليسرى، لا تعرض الصفحة المعروضة مجموعة Kubernetes حيث أقصد تثبيت Event Grid.

الدقة: لم يتم تسجيل كتلة Kubernetes الخاصة بك مع Azure. اتبع الخطوات الواردة في المقالة توصيل مجموعة Kubernetes موجودة ب Azure Arc. إذا كانت لديك مشكلة أثناء هذه الخطوة، فتقدم بطلب دعم مع فريق Kubernetes الذي يدعم Azure Arc.

مشكلات ملحق شبكة الأحداث

المشكلة: عند محاولة تثبيت "ملحق شبكة الأحداث"، تحصل على الرسالة التالية: "عملية غير صالحة - مثيل شبكة الأحداث تم تثبيته بالفعل على نظام مجموعة Kubernetes المتصلة هذه. يتم نطاق ملحق شبكة الأحداث على مستوى الكتلة، ما يعني أنه يمكن تثبيت مثيل واحد فقط على نظام مجموعة."

توضيح: لديك بالفعل شبكة الأحداث المثبتة. يعتمد إصدار المعاينة من شبكة الأحداث مثيل ملحق شبكة الأحداث واحد فقط نشر إلى كتلة.

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

إنشاء موقع مخصص ثم اتبع الإرشادات في أحداث مجموعة النظراء Route سريعة إلى Webhooks مع Azure Event Grid على Kubernetes.