البرنامج التعليمي: تكوين حاوية sidecar للحاوية المخصصة في Azure App Service (معاينة)

في هذا البرنامج التعليمي، يمكنك إضافة جامع OpenTelemetry كحاوية sidecar إلى تطبيق حاوية مخصص Linux في Azure App Service.

في Azure App Service، يمكنك إضافة ما يصل إلى 4 حاويات جانبية لكل تطبيق حاوية مخصص يدعم sidecar. تتيح لك حاويات Sidecar نشر خدمات وميزات إضافية لتطبيق الحاوية الخاص بك دون جعلها مقترنة بإحكام بحاوية التطبيق الرئيسية. على سبيل المثال، يمكنك إضافة خدمات المراقبة والتسجيل والتكوين والشبكات كحاويات sidecar. يعد جامع OpenTelemetry sidecar أحد أمثلة المراقبة هذه.

لمزيد من المعلومات حول السيارة الجانبية، راجع نمط Sidecar.

إشعار

بالنسبة لفترة المعاينة، يجب تمكين دعم sidecar عند إنشاء التطبيق. لا توجد حاليا طريقة لتمكين دعم sidecar لتطبيق موجود.

إذا لم يكن لديك اشتراك في Azure، فأنشئ حساب Azure مجاني قبل أن تبدأ.

1. إعداد الموارد المطلوبة

أولا يمكنك إنشاء الموارد التي يستخدمها البرنامج التعليمي (لمزيد من المعلومات، راجع نظرة عامة على Cloud Shell). يتم استخدامها لهذا السيناريو المحدد وهي غير مطلوبة لحاويات sidecar بشكل عام.

  1. في Azure Cloud Shell، قم بتشغيل الأوامر التالية:

    git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs
    cd app-service-sidecar-tutorial-prereqs
    azd provision
    
  2. عند المطالبة، قم بتوفير اسم البيئة والاشتراك والمنطقة التي تريدها. على سبيل المثال:

    • اسم البيئة: my-sidecar-env
    • الاشتراك: اشتراكك
    • المنطقة: (أوروبا) غرب أوروبا

    عند اكتمال النشر، يجب أن تشاهد الإخراج التالي:

     APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=...
    
     Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
     
  3. افتح ارتباط مجموعة الموارد في علامة تبويب مستعرض. ستحتاج إلى استخدام سلسلة الاتصال لاحقا.

    إشعار

    azd provision يستخدم القوالب المضمنة لإنشاء موارد Azure التالية:

2. إنشاء تطبيق يدعم sidecar

  1. في صفحة إدارة مجموعة الموارد، حدد إنشاء.

  2. ابحث عن تطبيق الويب، ثم حدد السهم لأسفل في Create وحدد Web App.

    لقطة شاشة تعرض صفحة Azure Marketplace مع البحث في تطبيق الويب وإنشاء أزرار تطبيق الويب التي يتم النقر فوقها.

  3. تكوين لوحة Basics كما يلي:

    • الاسم: الاسم الفريد
    • نشر: حاوية
    • نظام التشغيل: Linux
    • المنطقة: نفس المنطقة التي اخترتها azd provision
    • خطة Linux: خطة App Service جديدة

    لقطة شاشة تعرض معالج إنشاء تطبيق الويب وإعدادات تطبيق حاوية مخصص Linux مميزا.

  4. حدد Container. تكوين لوحة الحاوية كما يلي:

    • دعم Sidecar: ممكن
    • مصدر الصورة: Azure Container Registry
    • السجل: السجل الذي تم إنشاؤه بواسطة azd provision
    • الصورة: nginx
    • العلامة: الأحدث
    • المنفذ: 80

    لقطة شاشة تعرض معالج إنشاء تطبيق الويب وإعدادات صورة الحاوية ودعم sidecar المميز.

    إشعار

    يتم تكوين هذه الإعدادات بشكل مختلف في التطبيقات التي تدعم sidecar. لمزيد من المعلومات، راجع الاختلافات للتطبيقات التي تدعم sidecar.

  5. حدد Review + create، ثم حدد Create.

  6. بمجرد اكتمال النشر، حدد Go to resource.

  7. في علامة تبويب مستعرض جديدة، انتقل إلى https://<app-name>.azurewebsites.net صفحة Nginx الافتراضية وشاهدها.

3. إضافة حاوية جانبية

في هذا القسم، يمكنك إضافة حاوية sidecar إلى تطبيق الحاوية المخصص.

  1. في صفحة إدارة التطبيق، من القائمة اليسرى، حدد Deployment Center.

    يعرض لك مركز التوزيع جميع الحاويات في التطبيق. في الوقت الحالي، يحتوي فقط على الحاوية الرئيسية.

  2. حدد Add وقم بتكوين الحاوية الجديدة كما يلي:

    • الاسم: otel-collector
    • مصدر الصورة: Azure Container Registry
    • السجل: السجل الذي تم إنشاؤه بواسطة azd provision
    • الصورة: otel-collector
    • العلامة: الأحدث
    • المنفذ: 4317

    المنفذ 4317 هو المنفذ الافتراضي المستخدم من قبل حاوية العينة لتلقي بيانات القياس المفتوح. يمكن الوصول إليه من أي حاوية أخرى في التطبيق على localhost:4317. هذه هي بالضبط الطريقة التي ترسل بها حاوية Nginx البيانات إلى sidecar (راجع تكوين الوحدة النمطية OpenTelemetry لنموذج صورة Nginx).

  3. حدد تطبيق.

    لقطة شاشة توضح كيفية تكوين حاوية sidecar في مركز توزيع تطبيق الويب.

    يجب أن تشاهد الآن حاويتين في مركز النشر. يتم وضع علامة على الحاوية الرئيسية Main، ويتم وضع علامة Sidecar على حاوية sidecar. يجب أن يحتوي كل تطبيق على حاوية رئيسية واحدة ولكن يمكن أن يحتوي على حاويات جانبية متعددة.

4. تكوين متغيرات البيئة

بالنسبة للسيناريو النموذجي، يتم تكوين otel-collector sidecar لتصدير بيانات OpenTelemetry إلى Azure Monitor، ولكنه يحتاج إلى سلسلة الاتصال كمتغير بيئة (راجع ملف تكوين OpenTelemetry لصورة otel-collector).

يمكنك تكوين متغيرات البيئة للحاويات مثل أي تطبيق App Service، عن طريق تكوين إعدادات التطبيق. يمكن الوصول إلى إعدادات التطبيق لجميع الحاويات في التطبيق.

  1. في صفحة إدارة التطبيق، من القائمة اليسرى، حدد Configuration.

  2. إضافة إعداد تطبيق عن طريق تحديد إعداد تطبيق جديد وتكوينه كما يلي:

    • الاسم: APPLICATIONINSIGHTS_CONNECTION_STRING
    • القيمة: سلسلة الاتصال في إخراجazd provision
  3. حدد حفظ، ثم حدد متابعة.

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

إشعار

لا تنطبق بعض إعدادات التطبيق على التطبيقات التي تدعم sidecar. لمزيد من المعلومات، راجع الاختلافات للتطبيقات التي تدعم sidecar

5. التحقق في Application Insights

يجب أن يقوم otel-collector sidecar بتصدير البيانات إلى Application Insights الآن.

  1. مرة أخرى في علامة تبويب المستعرض ل https://<app-name>.azurewebsites.net، قم بتحديث الصفحة عدة مرات لإنشاء بعض طلبات الويب.

  2. ارجع إلى صفحة نظرة عامة على مجموعة الموارد، وحدد مورد Application Insights. يجب أن تشاهد الآن بعض البيانات في المخططات الافتراضية.

    لقطة شاشة لصفحة Application Insights تعرض البيانات في المخططات الافتراضية.

إشعار

في سيناريو المراقبة الشائع جدا هذا، Application Insights هو واحد فقط من أهداف OpenTelemetry التي يمكنك استخدامها، مثل Jaeger وPrometheus و Zipkin.

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

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

azd down

الاختلافات في التطبيقات التي تدعم sidecar

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

  • إعدادات مصادقة التسجيل: DOCKER_REGISTRY_SERVER_URLوDOCKER_REGISTRY_SERVER_USERNAME.DOCKER_REGISTRY_SERVER_PASSWORD
  • منفذ الحاوية: WEBSITES_PORT

المزيد من الموارد