تمثل حاويات وبيئات منصة Kubernetes (K8s) النهج الرائد لتخزين تطبيقات الحاوية ونشرها وإدارتها على نطاق واسع. يمكن أن يكون تكوين منصة Kubernetes المتغير والمفتوح المصدر والقائم على الخدمات المصغرة مناسبًا تمامًا للشركات التي تتطلع إلى تعزيز مرونة بنيتها التحتية. إلا إن المرونة الموزعة التي تجعل منصة Kubernetes جذابة يمكن أن تجعل أيضًا تنفيذ ممارسات عملية المراقبة على منصة Kubernetes وقابلية ملاحظتها أمرًا صعبًا.
تشتمل عملية الملاحظة على مجموعة من العمليات والمقاييس التي تساعد الفرق على اكتساب معارف قابلة للتنفيذ بشأن الحالة الداخلية للنظام بفضل فحص مخرجات النظام. وهو جزء أساسي من الحفاظ على أي بنية تحتية لتقنية المعلومات. لكن إدارة الكمية الهائلة للبيانات والعقد والحجيرات والخدمات ونقاط النهاية التي تشكل بيئات منصة Kubernetes تتطلب ممارسات ملاحظة مناسبة للوظيفة.
في هذه المدونة، نناقش كيفية عمل قابلية الملاحظة في Kubernetes، وكيف يمكن للمؤسسات استخدامها لتحسين البنى التحتية لتكنولوجيا المعلومات السحابية الأصلية.
بوجه عام، تصف قابلية الملاحظة مدى القدرة على استنتاج حالات النظام الداخلية من المخرجات الخارجية. إنها القدرة على تشخيص وفهم سبب تصرف النظام بطريقة معينة، وهو أمر ضروري لاستكشاف الأخطاء وإصلاحها، وفهم مشكلات الأداء، وتحسين تصميم النظام.
في عمليات التطوير، تطور مفهوم قابلية الملاحظة للإشارة إلى الرؤية الشاملة لحالة النظام كما تمليها بيانات القياس عن بعد. فئات البيانات الأساسية المستخدمة—المعروفة باسم الركائز الثلاث لقابلية الملاحظة—هي السجلات والمقاييس والتتبعات.
تتضمن السجلات أحداثًا متفرقة تُسجل في كل مرة يحدث فيها شيء ما في النظام، مثل رسائل الحالة أو الخطأ أو تفاصيل المعاملة. يمكن كتابة سجلات منصة Kubernetes بنصوص منظمة وغير منظمة.
استخدام وحدة المعالجة المركزية أو استهلاك الذاكرة أو إدخال / إخراج الشبكة أو زمن انتقال الطلب أو أي مؤشرات خاصة بالأعمال. غالبا تُجمع مقاييس منصة Kubernetes لإنشاء بيانات ملاحظة السلاسل الزمنية التي يمكن أن تساعد الفرق على استكشاف الاتجاهات وتحديد الأنماط.
التتبعات تساعد الفرق على تتبع طلب ما أو معاملة ما من خلال الخدمات والعناصر المختلفة للنظام الموزع. كما أنها تساعد الفرق على تصور الاعتمادات بين العناصر المختلفة للبنية التحتية بحيث يمكن تحديد التأخيرات والأخطاء بسرعة.
يتطلب إجراء عملية الملاحظة الناجحة نشر أدوات المراقبة المناسبة الخاصة بمنصة Kubernetes وتنفيذ عمليات فعالة لجمع المخرجات الأساسية الثلاثة وتخزينها وتحليلها. قد يشمل ذلك إعداد وصيانة أنظمة المراقبة أو برامج جمع سجلات التطبيقات أو أدوات مراقبة أداء التطبيقات (APM) أو منصات المراقبة الأخرى.
ومع ذلك، تتطلب بيئات منصة Kubernetes أيضًا فحصًا أكثر شمولية للمقاييس الموحدة. تشتمل أنظمة منصة Kubernetes على بيئة واسعة من الحاويات المترابطة والخدمات المصغرة والعناصر الأخرى، والتي تنتج جميعها كميات هائلة من البيانات. تُجدول منصة Kubernetes المهام المتعلقة بالحاوية وتُؤتمتها طوال دورة حياة التطبيق، بما في ذلك:
تتمكن منصة Kubernetes من نشر عدد محدد من الحاويات على مضيف معين وإبقائها قيد التشغيل في حالتها المطلوبة.
عملية الطرح هي عملية ضبط نظام النشر على منصة Kubernetes. تُمكن منصة Kubernetes الفرق من بدء عمليات الطرح وإيقافها مؤقتًا واستئنافها واسترجاعها.
يستطيع Kubernetes عرض الحاوية تلقائيًا على الإنترنت أو حاويات أخرى باستخدام اسم DNS أو عنوان IP.
عندما ترتفع حركة المرور، تتمكن منصة Kubernetes من تدوير مجموعات جديدة تلقائيًا لمعالجة أحمال التشغيل الإضافية.
يمكن للفرق إعداد منصة Kubernetes لزيادة مساحة التخزين المحلي أو السحابي الدائم للحاويات.
بفضل استخدام وحدة المعالجة المركزية أو المقاييس المخصصة، يمكن لمزايا توزيع الأحمال على منصة Kubernetes توزيع أحمال التشغيل عبر الشبكة للحفاظ على الأداء والاستقرار.
تتمكن منصة Kubernetes من معالجة أخطاء الحاوية الفاشلة أو إعادة تشغيلها أو استبدالها تلقائيًا لتجنب فترة التعطل. ويمكنها أيضًا إيقاف تشغيل الحاويات التي لا تفي بمتطلبات فحص السلامة.
مع وجود العديد من المكونات المتغيرة والمتفاعلة والمترابطة، تزداد احتمالات حدوث المشكلا ونقاط فشل، مما يجعل مراقبة النظام مراقبة فورية ضرورة حتمية. وهذا يعني أيضا أن النهج التقليدي لمراقبة السجلات والمقاييس وتتبعها قد يكون غير كاف لتحقيق قابلية الملاحظة في بيئة Kubernetes.
نظرًا لأن كل عنصر من عناصر بنية منصة Kubernetes يعتمد على العناصر الأخرى، تتطلب عميلة الملاحظة نهجًا أكثر شمولية.
يتطلب إجراء عملية الملاحظة على منصة Kubernetes من المنظمات تجاوز جمع وتحليل البيانات على مستوى المجموعات من سجلات وتتبعات ومقاييس؛ فربط البيانات لفهم العلاقات والأحداث بشكل أفضل داخل مجموعات منصة Kubernetes أمر أساسي في العملية. وهذا يعني أنه يجب على المنظمات الاعتماد على إستراتيجية ملاحظة السحابة الأصلية المخصصة والتدقيق في كل مصدر بيانات متاح داخل النظام.
تتضمن عملية الملاحظة في بيئة منصة K8s ما يلي:
1. تجاوز المقاييس والسجلات والتطبيقات. يجب أن تراعي عملية الملاحظة على منصة Kubernetes جميع بيانات السجل (من الحاويات والعقد الرئيسية والعاملة والبنية التحتية الأساسية) والمقاييس على مستوى التطبيق، تمامًا مثل مراقبة الأجهزة الافتراضية (VM). إلا إنه، على عكس الأجهزة الافتراضية (VM)، تنظم منصة Kubernetes تفاعلات الحاويات التي تتجاوز التطبيقات والمجموعات. وبهذه الطريقة، تحتوي بيئات منصة Kubernetes على كميات هائلة من البيانات القيمة خارج مجموعات الشبكات والتطبيقات وداخلها. بما في ذلك البيانات الموجودة في قنوات التكامل المستمر/ والتسليم المستمر CI/CD (التي تمد مجموعات منصة K8s بالبيانات) وسير عمل مستودع GitOps (الذي يدعم مجموعات منصة K8s).
كما لا تعرض منصة Kubernetes المقاييس والسجلات وبيانات التتبع بنفس الطريقة التي تعمل بها التطبيقات التقليدية والأجهزة الافتراضية. تميل منصة Kubernetes إلى التقاط البيانات "لقطات للبيانات" أو المعلومات التي تم التقاطها في نقطة معينة خلال دورة الحياة. قد يكون من الصعب—أو من المستحيل—، داخل نظام يسجل فيه كل عنصر داخل كل مجموعة أنواعًا مختلفة من البيانات بتنسيقات مختلفة وبسرعات مختلفة، إجراء عملية الملاحظة بمجرد تحليل نقاط البيانات المتفرقة.
علاوة على ذلك، لا يقوم Kubernetes بإنشاء ملفات سجل رئيسية على مستوى التطبيق أو نظام المجموعة. يسجل كل تطبيق ونظام مجموعة البيانات في بيئته الخاصة، لذلك يجب على المستخدمين تجميع البيانات وتصديرها يدويا لعرضها جميعا في مكان واحد. ونظرا لأن الحاويات يمكن أن تُنشأ أو تُزال أو تختفي تماما في غضون ثوانٍ، فإن البيانات المجمعة يدويا قد لا تقدم صورة كاملة بدون سياق مناسب.
2. تحديد أولويات السياق وترابط البيانات. تعد كل من عمليتي المراقبة والملاحظة جزئان أساسيان في الحفاظ على بنية تحتية فعالة لمنصة Kubernetes. ما يميز العمليتين عن بعضهم البعض هو الغرض من كل منهما. بينما تساعد عملية المراقبة على توضيح ما يجري في النظام، تهدف عملية الملاحظة إلى توضيح سبب عمل النظام بالطريقة التي هو عليها. وتحقيقًا لهذه الغاية، تعطي عملية المراقبة الفعالة على منصة Kubernetes الأولوية لوصل نقاط البيانات ببعضها ببعض للتوصل إلى السبب الأساسي وراء الأعطال في الأداء ومشكلات الوظائف.
لفهم سلوك المجموعات على منصة Kubernetes، يجب أن تفهم كل حدث فردي داخل المجموعة ضمن سياق جميع الأحداث الأخرى في المجموعة، والسلوك العام للمجموعة، وأي أحداث أدت إلى ذلك الحدث.
على سبيل المثال، إذا بدأت إحدى الحجيرات في عقدة عاملة وانتهت في عقدة عاملة أخرى، فعليك أن تفهم جميع الأحداث التي تحدث في الوقت نفسه في عقد منصة Kubernetes الأخرى، وجميع الأحداث التي تحدث داخل خدمات منصة Kubernetes الأخرى وخوادم واجهة برمجة التطبيقات ونطاقاتها للحصول على فهم واضح للتغيير وسببه الأساسي وعواقبه المحتملة.
بمعنى آخر، غالبًا ما يكون مجرد مراقبة المهام غير كافٍ في بيئة منصة Kubernetes. ولإجراء عملية الملاحظة على منصة Kubernetes، أو اكتساب معارف النظام ذات الصلة أو إجراء تحليلات دقيقة للسبب الأساسي، يجب أن تكون فرق تقنية المعلومات قادرة على تجميع البيانات من جميع أنحاء الشبكة ووضعها في سياقها.
3. استخدام أدوات الملاحظة في منصة Kubernetes. يعد إجراء عملية الملاحظة على منصة Kubernetes والحفاظ عليها مهمة كبيرة ومعقدة. إلا إن استخدام أطر العمل والأدوات الصحيحة يمكن أن يبسط العملية ويحسن العرض المصور للبيانات والشفافية بشكل عام.
يمكن للشركات الاختيار من بين مجموعة من حلول الملاحظة، بما في ذلك البرامج التي تؤتمت عملية تجميع المقاييس وتحليلها (مثل Prometheus وGrafana)، والبرامج التي تؤتمت عملية التسجيل (مثل ELK وFluentD وElasticsearch) والبرامج التي تسهل تتبع الرؤية (مثل Jaeger). يمكن للحلول المدمجة، مثل OpenTelemetry، إدارة جميع ممارسات الملاحظة الرئيسية الثلاث. وتوفر حلول السحابة الأصلية المخصصة، مثل Google Cloud Operations، وAWS X-Ray، وAzure Monitor، وIBM Instana Observability، أدوات ملاحظة ولوحات معلومات منصة Kubernetes المُحسّنة للمجموعات التي تعمل على بنيتها التحتية.
- حدد مؤشرات الأداء الرئيسية. استكشف أيًا من مؤشرات الأداء الرئيسية، مثل مؤشر أداء التطبيق وسلامة النظام واستخدام الموارد، يمنحك المعارف الأكثر فائدة حول سلوك البنية التحتية لديك. راجعها حسب الحاجة.
- اجعل عملية التسجيل مركزية. تنتج بيئات منصة K8s كميات هائلة من البيانات. وتجميعها وتخزينها باستخدام حل عملية التسجيل المركزية يعد جزءًا لا يتجزأ من عملية إدارة البيانات.
- راقب استخدام الموارد. اجمع بيانات فورية عن استخدام الذاكرة ووحدة المعالجة المركزية والشبكة حتى تتمكن من توسيع نطاق الموارد بشكل استباقي عند الضرورة.
- فعّل التنبيهات والإنذارات. استخدم حدودًا فاصلة لمؤشرات الأداء الرئيسية لإعداد التنبيهات والإنذارات. يسمح هذا الإجراء للفرق بتلقي إشعارات في الوقت المناسب عند ظهور مشكلات.
Kubernetes هي منصة تنسيق الحاويات المتوافقة مع معايير الصناعة، حيث تدير أحمال تشغيل الحاويات بكفاءة ملحوظة. ومع ذلك، تتطلب بنية الخدمات المصغرة الموزعة متعددة الطبقات على منصة Kubernetes آليات ملاحظة فائقة وحلولاً متقدمة، مثل IBM Instana Observability.
يتيح Instana Observability إجراء عملية ملاحظة Kubernetes المؤتمتة ويوفر إمكانات مراقبة أداء التطبيقات (APM) المصممة لمراقبة مجموعة تطبيقات منصة Kubernetes التي تستخدمها بالكامل—بدءًا من العقد والحجيرات ووصولاً إلى الحاويات والتطبيقات—لجميع توزيعات منصة Kubernetes.
إن قابلية الملاحظة في Kubernetes ليست مجرد تنفيذ تقني؛ إنه نهج استراتيجي يتطلب تخطيطًا يقظًا وثقافة تنظيمية تقدر شفافية البيانات.
تساعد Instana Observability الفرق على اكتساب فهم شامل لبيئات منصة Kubernetes لديهم وتقديم تطبيقات فائقة الإمكانات وعالية الأداء في عالم قائم على السحابة بشكل متزايد.