تشير مراقبة Kubernetes إلى عملية جمع وتحليل البيانات المتعلقة بخصائص الصحة والأداء والتكلفة للتطبيقات المعبأة في حاويات التي تعمل داخل مجموعة Kubernetes.
نظامKubernetes، المعروف أيضًا باسم K8s أو kube، هو منصة لتنسيق الحاويات تُستخدم لجدولة وأتمتة نشر التطبيقات المعبّأة في حاويات، وإدارتها، وتوسيع نطاقها. تم تصميم هذا المشروع في الأصل من قِبل Google، وتُشرف على صيانته حاليًا مؤسسة Cloud Native Computing Foundation (CNCF).
تسمح مراقبة مجموعات Kubernetes للمسؤولين والمستخدمين بتتبُّع أمور مثل مدة التشغيل واستخدام موارد نظام المجموعة والتفاعل بين مكونات المجموعة. تساعد المراقبة على تحديد المشكلات بسرعة مثل الموارد غير الكافية وحالات الفشل والحجيرات غير القادرة على البدء والعُقد التي لا يمكنها الانضمام إلى المجموعة.
تحتوي التطبيقات المُقدّمة على Kubernetes كخدمات سحابية أصلية مُصغّرة على عدد أكبر بكثير من العناصر التي تتواصل فيما بينها. ومع توزيعها على مثيلات متعددة، وأحيانًا في مواقع مختلفة، تُضيف البنى الحديثة تعقيدات جديدة إلى المهام اليومية مثل المراقبة والتنبيه واستكشاف الأخطاء وإصلاحها.
كما أن الطبيعة المؤقتة للحاويات قد تُعيق جهود استكشاف الأخطاء. إذ تعيش الحاوية طالما كانت العملية التي بداخلها نشطة، وتختفي عند انتهاء هذه العملية. ويُعد هذا من أكثر التحديات تعقيدًا عند استكشاف أخطاء الحاويات. فعندما تموت الحاويات أو يُعاد جدولتها على عُقد بديلة، قد لا تبقى البيانات اللازمة للاستجابة للحوادث متاحة.
على الرغم من أن Kubernetes يحتوي على مشغِّلي مجموعات مدمجين لمراقبة المجموعات وإرسال تنبيهات بناءً على الحجيرات قيد التشغيل، إلا أن الأدوات مفتوحة المصدر وحلول المراقبة الخارجية تساعد على توفير رؤية كاملة لبيئة K8s.
توفِّر مراقبة Kubernetes المناسبة مجموعة من المزايا، بدءًا من الحفاظ على استقرار واستجابة أداء التطبيق ووصولًا إلى تعزيز الأمان والامتثال.
من خلال تتبُّع وتحليل المقاييس مثل استهلاك وحدة المعالجة المركزية واستخدام الذاكرة وحركة المرور على الشبكة وأوقات الاستجابة، من الممكن تحديد مجالات عدم الكفاءة وتحسين تخصيص الموارد وضبط البنية الأساسية لنظام Kubernetes لتحقيق الأداء الأمثل.
ويمكن أن يؤدي ذلك إلى تحسين استجابة التطبيق وتوفير تجربة أفضل للمستخدمين.
من خلال مراقبة مقاييس استخدام الموارد، مثل استخدام وحدة المعالجة المركزية واستهلاك الذاكرة وحركة مرور الشبكة، من الممكن تحديد عُقد Kubernetes غير المستغلة أو المستغلة بشكل مفرط، وتحسين تخصيص الموارد واتخاذ قرارات مستنيرة بشأن توسيع نطاق البنية التحتية.
ويساعد هذا على ضمان حصول التطبيقات على الموارد اللازمة للأداء على النحو الأمثل، وله ميزة إضافية تتمثل في تقليل التكاليف.
تساعد التنبيهات والإشعارات على تحديد السبب الأساسي لمشكلات Kubernetes ومعالجتها بشكل استباقي قبل أن تؤدي إلى حدوث أعطال أو توقُّف عن العمل.
والنتيجة هي تحسين استقرار النظام وتقليل تأثير المشكلات المحتملة في التطبيقات والمستخدمين.
تساعدك سجلات المراقبة والأحداث والمقاييس على تحديد المشكلات وتشخيصها بسرعة، مثل أعطال الحجيرات أو قيود الموارد أو مشكلات الشبكات أو أخطاء التطبيق.
ومن خلال تسريع عملية تصحيح الأخطاء، يتم تقليل وقت فترات التعطل وتظل التطبيقات متاحة.
من خلال تحليل البيانات التاريخية ومراقبة التوجهات في استخدام الموارد، من الممكن التنبؤ بشكل أفضل باحتياجات الموارد المستقبلية وتحديد متى تكون هناك حاجة إلى المزيد من موارد Kubernetes والتخطيط لتوسيع المجموعات وفقًا لذلك.
في نهاية المطاف، لن تؤدي متطلبات أعباء العمل المتزايدة إلى حدوث نقص في الموارد.
إن مراقبة سجلات Kubernetes وحركة مرور الشبكة وأنماط الوصول تُسهم في تسهيل تحديد الأنشطة غير الطبيعية والانتهاكات المحتملة ومحاولات الوصول غير المصرَّح بها.
بالإضافة إلى ذلك، فإن ضمان وجود ضوابط وسياسات أمنية مناسبة ومراقبتها بنشاط يساعد في الحفاظ على الامتثال للمعايير واللوائح.
تتطلب الرؤية الكاملة لمجموعة Kubernetes جمع بيانات القياس عن بُعد عن الحاويات التي يتم إنشاؤها وتدميرها باستمرار وتقوم باستدعاء بعضها، بالإضافة إلى جمع بيانات القياس عن بُعد عن مجموعة Kubernetes نفسها.
بالنسبة إلى مراقبة المجموعات، هناك العديد من المقاييس على مستوى المجموعة التي يجب اتباعها، والتي تساعد على تحديد الحالة العامة لمجموعة Kubernetes.
وظائف العقدة: إن مراقبة إذا ما كانت جميع عُقد المجموعة تعمل بشكل صحيح أم لا وبأي سعة تساعد على تحديد موارد السحابة المطلوبة لتشغيل المجموعة.
مراقبة توفر العقدة: تساعد مراقبة عدد عُقد المجموعة المتاحة على تحديد موارد السحابة التي يتم الدفع مقابلها (في حالة استخدام موفر سحابي مثل Microsoft Azure) وكيفية استخدام المجموعة.
استخدام موارد العقدة: تساعد مراقبة كيفية استخدام المجموعة ككل للموارد (الذاكرة ووحدة المعالجة المركزية والنطاق الترددي واستخدام القرص) على اتخاذ قرارات مستنيرة حول إذا ما كانت ستتم زيادة أو تقليل حجم أو عدد العُقد في المجموعة.
عدد الحجيرات النشطة: تُظهر مراقبة الحجيرات النشطة ما إذا كان عدد العُقد المتاحة كافيًا، وفي حالة فشل العقدة، إذا ما كان بإمكانها التعامل مع عبء عمل الحجيرات بالكامل أم لا.
ولهذا السبب، تُعَد المراقبة على مستوى الحجيرات ضرورية لضمان أن كل حجيرة ضمن مجموعة Kubernetes تعمل بشكل سليم. يتضمن ذلك النظر في ثلاثة أنواع من المقاييس: مقاييس Kubernetes ومقاييس الحاويات، ومقاييس التطبيقات..
تساعد مراقبة مقاييس Kubernetes على التأكد من أن جميع الحجيرات في عملية نشر Kubernetes نشطة وتعمل جيدًا.
عدد مثيلات الحجيرات: إذا كان العدد الحالي للحجيرات النشطة أقل من العدد المتوقع، فقد تكون موارد المجموعة قد استُنفدت.
حالة الحجيرات: معرفة ما إذا كانت الحجيرات تعمل، وعدد الحجيرات المعلّقة أو الفاشلة أو المنتهية، يوفر رؤية حول مدى توفرها واستقرارها.
إعادة تشغيل الحجيرات: مراقبة عدد مرات إعادة تشغيل الحجيرة يُشير إلى استقرار التطبيق داخل الحجيرة. وتكرار إعادة التشغيل قد يدل على وجود مشكلة أساسية مثل الأعطال أو قيود الموارد.
استخدام وحدة المعالجة المركزية: تساعد مراقبة استهلاك وحدة المعالجة المركزية للحجيرة على تحديد العوائق المحتملة في الأداء وضمان توفر موارد المعالجة الكافية للحاويات.
استخدام الذاكرة: تساعد مراقبة استهلاك الذاكرة للحجيرة في اكتشاف تسربات الذاكرة أو الاستخدام المفرط لها الذي قد يؤثر في استقرار التطبيق.
استخدام الشبكة: توفر مراقبة وحدات البايت المرسلة/المستلمة للحجيرة رؤى حول أنماط الاتصال الخاصة بها، وتساعد على تحديد أي مشكلات في الشبكة.
تتضمن مقاييس Kubernetes أيضًا فحوصات السلامة، وبيانات الشبكة، وكيفية سير النشر الجاري (على سبيل المثال، عدد المثيلات التي تم تغييرها من إصدار قديم إلى إصدار جديد).
تساعد مراقبة مقاييس حاوية الحجيرات على تحديد مدى اقترابك من حدود الموارد التي حددتها. وتُتيح لك هذه المقاييس أيضًا اكتشاف الحجيرات العالقة في CrashLoopBackoff.
استخدام/تقليل سرعة وحدة المعالجة المركزية: تساعد مراقبة كيفية استهلاك الحاويات قيد التشغيل لوحدة المعالجة المركزية على تحديد الحاويات التي تستهلك موارد بكثافة أو تُحدث عوائق قد تؤثر على الأداء العام للمجموعة. تُسلّط مراقبة مقاييس تقييد سرعة وحدة المعالجة المركزية الضوء على ما إذا كانت الحاويات تتعرض للحد من استخدام وحدة المعالجة المركزية بسبب قيود الموارد أو سوء التكوين.
استخدام الذاكرة: مراقبة كيفية استهلاك الحاويات النشطة للذاكرة تُبرز مشكلات مثل تسرب الذاكرة، أو الاستخدام المفرط، أو التخصيص غير الكافي، وهي عوامل قد تؤثر على استقرار الحاويات والأداء العام للنظام.
حركة بيانات/أخطاء الشبكة: تساعد مراقبة حركة بيانات الشبكة للحاويات، وكذلك الأخطاء مثل فقدان الحزم أو فشل الاتصال، على تقييم أنماط الاتصال والاستخدام الزائد للشبكة أو الارتفاعات المفاجئة في الحركة.
تساعد مراقبة مقاييس التطبيقات على قياس أداء وتوافر التطبيقات التي تعمل داخل حجيرات Kubernetes. عادةً يتم تطوير هذه المقاييس بواسطة تطبيق Kubernetes نفسه، وتتعلق بالقواعد التشغيلية التي يعالجها، مثل زمن الانتقال، والقدرة على التفاعل، ومعدلات الأخطاء، وأوقات الاستجابة.
فيما يلي بعض أفضل الممارسات التي يبنبغي مراعاتها لضمان مراقبة فعّالة لبيئات Kubernetes.
استخدم Kubernetes DaemonSets: تُتيح لك مجموعات البرامج الخفية (DaemonSets) نشر وكيل يراقب كل عقدة في بيئة Kubernetes الخاصة بك وجميع الموارد الموجودة على تلك العقدة عبر مجموعة Kubernetes بأكملها. تساعد البرامج الخفية (Daemons) على ضمان ظهور الأجهزة المضيفة واستعدادها لتوفير المقاييس.
استخدام التصنيفات بذكاء: إن إنشاء نظام تصنيف منطقي ومتسق ومترابط يسهِّل على فِرَق عمليات التطوير التعرُّف على المكونات المختلفة ويساعد على تحقيق أقصى استفادة من مراقبة Kubernetes.
استخدام اكتشاف الخدمات: يُتيح اكتشاف الخدمات في Google Kubernetes Engine (GKE) مراقبة تطبيقاتك باستمرار حتى لو لم تكن تعلم موقع تشغيلها. فهو يتكيف تلقائيًا مع جمع المقاييس لتتبُّع الحاويات المتحركة، ما يوفر فهمًا أكثر شمولًا لصحة المجموعة.
إعداد التنبيهات والإشعارات: قم بإعداد التنبيهات والإشعارات للمقاييس المهمة، مثل استخدام وحدة المعالجة المركزية أو الذاكرة، واحصل على إشعارات عندما تصل هذه المقاييس إلى حدود معينة. تساعد أدوات المراقبة المزوّدة بتنبيهات ذكية على تقليل إرهاق التنبيهات من خلال إرسال تنبيهات للأحداث أو التغييرات ذات الأهمية فقط.
مراقبة عناصر مستوى التحكم: تساعد المراقبة المنتظمة لعناصر مستوى التحكم في Kubernetes، مثل خادم واجهة برمجة التطبيقات وkube-dns وkubelet ووكيل kube وغيرها ومدير وحدة التحكم، على ضمان تشغيل خدمات المجموعة بسلاسة.
مراقبة تجربة المستخدم: على الرغم من أن تجربة المستخدم لا تُقاس بشكل أصيل في منصة Kubernetes، إلا أن مراقبتها قد تنبِّهك أحيانًا إلى مشكلات قبل اكتشافها داخل المجموعة.
استخدام الأدوات المدمجة ومفتوحة المصدر: بغض النظر عن حالات الاستخدام الخاصة بك، استفِد من أدوات مراقبة Kubernetes المدمجة، مثل Kubernetes Dashboard وcAdvisor (مستشار الحاويات) وKube-state-metrics، بالإضافة إلى الأدوات مفتوحة المصدر الشائعة، بما في ذلك Prometheus وGrafana وJaeger وElastic Stack (المعروف سابقًا باسم ELK Stack). بالإضافة إلى النشر واستكشاف الأخطاء وإصلاحها والمراقبة، توفِّر هذه الأدوات وظائف إضافية مثل العروض المصورة للبيانات وجمع وتخزين مقاييس السلاسل الزمنية من مصادر مختلفة.
استخدام حل مراقبة K8s قائم على البرامج كخدمة: لتبسيط إدارة Kubernetes وتطوير البنية التحتية والتكاليف، بالإضافة إلى تلقي تحديثات منتظمة، استخدم نظام مراقبة قائمًا على البرامج كخدمة مع أتمتة مدمجة بدلًا من نظام محلي.
ملاحظة ومراقبة وإصلاح مجموعة Kubernetes بأكملها تلقائيًا لتحسين أداء وتوفّر تطبيقك.
تسريع نمو ومرونة الأعمال—حدِّث تطبيقاتك باستمرار على أي منصة باستخدام خدماتنا السحابية والاستشارات التي نقدِّمها.
حلول الحاويات تقوم بتشغيل وتوسيع نطاق أحمال التشغيل التي تعمل ضمن حاويات بأمان وابتكار مفتوح المصدر ونشر سريع.