تم تقديم Polaris للحفاظ على صحة مجموعات Kubernetes

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

تم تقديم Polaris للحفاظ على صحة مجموعات Kubernetes

يسعدني أن أعرض بولاريس هو مشروع مفتوح المصدر يساعد في الحفاظ على "صحة" مجموعة Kubernetes. لقد قمنا ببناء Polaris لأتمتة بعض أفضل الممارسات التي تستخدمها ReactiveOps للحفاظ على تشغيل المجموعات بأمان وموثوقية لعدد كبير من العملاء. حان الوقت لفتح المصدر.

مرة تلو الأخرى ، رأينا كيف تؤدي عيوب التكوين البسيطة على ما يبدو إلى مشاكل خطيرة تمنع المهندسين من النوم ليلاً. شيء بسيط للغاية - على سبيل المثال ، تكوين طلبات الموارد التي تم تجاهلها بسبب النسيان (طلبات الموارد) - يمكن أن يكسر القياس التلقائي ويؤدي إلى حقيقة أن أعباء العمل تُركت بدون موارد. إذا كان من قبل ، أدت عمليات الإشراف الطفيفة على التهيئة إلى حدوث انقطاعات في الإنتاج ، فإن Polaris تسمح لك الآن بمنعها تمامًا.

يساعدك Polaris في تجنب مشكلات التكوين التي تؤثر على استقرار تطبيقاتك وموثوقيتها وقابليتها للتوسع وأمانها. يجعل من السهل تحديد نقاط الضعف في تكوينات النشر ومنع المشاكل المستقبلية. مع Polaris ، يمكنك النوم بشكل سليم وأنت تعلم أن التطبيقات يتم نشرها باستخدام مجموعة من المعايير التي تم اختبارها جيدًا.

يتكون Polaris من عنصرين رئيسيين:

  1. لوحة معلومات توفر معلومات حول كيفية تكوين عمليات النشر الموجودة في الكتلة بشكل جيد ؛
  2. خطاف ويب اختباري تجريبي يمنع نشر عمليات النشر التي لا تفي بالمعيار المقبول.

لوحة القيادة بولاريس

تم إنشاء Polaris Dashboard لتوفير طريقة بسيطة ومرئية لمعرفة الحالة الحالية لعمليات نشر Kubernetes والحصول على توصيات للتحسينات. يوفر نظرة عامة كاملة عن المجموعة ويقسم النتائج حسب الفئة ومساحة الاسم والنشر.

تم تقديم Polaris للحفاظ على صحة مجموعات Kubernetes

المعايير الافتراضية التي وضعتها Polaris عالية جدًا ، لذلك لا تتفاجأ إذا كانت النتيجة أقل مما كنت تتوقع. الهدف الرئيسي من Polaris هو وضع معايير عالية والسعي للحصول على تكوين افتراضي رائع. إذا كان التكوين المقترح يبدو جامدًا للغاية ، فيمكن تصحيحه أثناء عملية تكوين النشر ، مما يؤدي إلى تحسين أحمال العمل المحددة.

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

بولاريس ويب هوك

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

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

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

الشروع في العمل

آمل أنه بينما لا تزال تقرأ هذا الإعلان ، فإن Polaris هي أداة قد تجدها مفيدة. هل تريد تجربة Dashboard بنفسك؟ من السهل جدًا نشر لوحة في مجموعة. يتم تثبيته مع الحد الأدنى من الحقوق (للقراءة فقط) ، وتبقى جميع البيانات بالداخل. لنشر لوحة المعلومات باستخدام kubectl ، قم بتشغيل:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml

أنت الآن بحاجة إلى إعداد إعادة توجيه المنفذ للوصول إلى لوحة المعلومات من خلال المنفذ المحلي 8080:

kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80

بالطبع ، هناك العديد من الطرق الأخرى لاستخدام ونشر Polaris ، بما في ذلك Helm. يمكنك التعرف على هذا وأكثر من ذلك بكثير من مستودع Polaris على جيثب.

هذه ليست سوى البداية

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

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

PS من المترجم

اقرأ أيضًا على مدونتنا:

المصدر: www.habr.com

إضافة تعليق