البرنامج التعليمي: تكوين حاوية 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 بشكل عام.
في Azure Cloud Shell، قم بتشغيل الأوامر التالية:
git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd provision
عند المطالبة، قم بتوفير اسم البيئة والاشتراك والمنطقة التي تريدها. على سبيل المثال:
- اسم البيئة: my-sidecar-env
- الاشتراك: اشتراكك
- المنطقة: (أوروبا) غرب أوروبا
عند اكتمال النشر، يجب أن تشاهد الإخراج التالي:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/.../resourceGroups/...
افتح ارتباط مجموعة الموارد في علامة تبويب مستعرض. ستحتاج إلى استخدام سلسلة الاتصال لاحقا.
إشعار
azd provision
يستخدم القوالب المضمنة لإنشاء موارد Azure التالية:- مجموعة الموارد
- سجل حاوية مع صورتين منشورتين:
- صورة Nginx مع الوحدة النمطية OpenTelemetry.
- صورة مجمع OpenTelemetry، تم تكوينها للتصدير إلى Azure Monitor.
- مساحة عمل تحليلات السجل
- مكوّن تحليلات التطبيق
2. إنشاء تطبيق يدعم sidecar
في صفحة إدارة مجموعة الموارد، حدد إنشاء.
ابحث عن تطبيق الويب، ثم حدد السهم لأسفل في Create وحدد Web App.
تكوين لوحة Basics كما يلي:
- الاسم: الاسم الفريد
- نشر: حاوية
- نظام التشغيل: Linux
- المنطقة: نفس المنطقة التي اخترتها
azd provision
- خطة Linux: خطة App Service جديدة
حدد Container. تكوين لوحة الحاوية كما يلي:
- دعم Sidecar: ممكن
- مصدر الصورة: Azure Container Registry
- السجل: السجل الذي تم إنشاؤه بواسطة
azd provision
- الصورة: nginx
- العلامة: الأحدث
- المنفذ: 80
إشعار
يتم تكوين هذه الإعدادات بشكل مختلف في التطبيقات التي تدعم sidecar. لمزيد من المعلومات، راجع الاختلافات للتطبيقات التي تدعم sidecar.
حدد Review + create، ثم حدد Create.
بمجرد اكتمال النشر، حدد Go to resource.
في علامة تبويب مستعرض جديدة، انتقل إلى
https://<app-name>.azurewebsites.net
صفحة Nginx الافتراضية وشاهدها.
3. إضافة حاوية جانبية
في هذا القسم، يمكنك إضافة حاوية sidecar إلى تطبيق الحاوية المخصص.
في صفحة إدارة التطبيق، من القائمة اليسرى، حدد Deployment Center.
يعرض لك مركز التوزيع جميع الحاويات في التطبيق. في الوقت الحالي، يحتوي فقط على الحاوية الرئيسية.
حدد Add وقم بتكوين الحاوية الجديدة كما يلي:
- الاسم: otel-collector
- مصدر الصورة: Azure Container Registry
- السجل: السجل الذي تم إنشاؤه بواسطة
azd provision
- الصورة: otel-collector
- العلامة: الأحدث
- المنفذ: 4317
المنفذ 4317 هو المنفذ الافتراضي المستخدم من قبل حاوية العينة لتلقي بيانات القياس المفتوح. يمكن الوصول إليه من أي حاوية أخرى في التطبيق على
localhost:4317
. هذه هي بالضبط الطريقة التي ترسل بها حاوية Nginx البيانات إلى sidecar (راجع تكوين الوحدة النمطية OpenTelemetry لنموذج صورة Nginx).حدد تطبيق.
يجب أن تشاهد الآن حاويتين في مركز النشر. يتم وضع علامة على الحاوية الرئيسية Main، ويتم وضع علامة Sidecar على حاوية sidecar. يجب أن يحتوي كل تطبيق على حاوية رئيسية واحدة ولكن يمكن أن يحتوي على حاويات جانبية متعددة.
4. تكوين متغيرات البيئة
بالنسبة للسيناريو النموذجي، يتم تكوين otel-collector sidecar لتصدير بيانات OpenTelemetry إلى Azure Monitor، ولكنه يحتاج إلى سلسلة الاتصال كمتغير بيئة (راجع ملف تكوين OpenTelemetry لصورة otel-collector).
يمكنك تكوين متغيرات البيئة للحاويات مثل أي تطبيق App Service، عن طريق تكوين إعدادات التطبيق. يمكن الوصول إلى إعدادات التطبيق لجميع الحاويات في التطبيق.
في صفحة إدارة التطبيق، من القائمة اليسرى، حدد Configuration.
إضافة إعداد تطبيق عن طريق تحديد إعداد تطبيق جديد وتكوينه كما يلي:
- الاسم: APPLICATIONINSIGHTS_CONNECTION_STRING
- القيمة: سلسلة الاتصال في إخراج
azd provision
حدد حفظ، ثم حدد متابعة.
إشعار
لا تنطبق بعض إعدادات التطبيق على التطبيقات التي تدعم sidecar. لمزيد من المعلومات، راجع الاختلافات للتطبيقات التي تدعم sidecar
5. التحقق في Application Insights
يجب أن يقوم otel-collector sidecar بتصدير البيانات إلى Application Insights الآن.
مرة أخرى في علامة تبويب المستعرض ل
https://<app-name>.azurewebsites.net
، قم بتحديث الصفحة عدة مرات لإنشاء بعض طلبات الويب.ارجع إلى صفحة نظرة عامة على مجموعة الموارد، وحدد مورد 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