
لقد
كتبنا بالفعل عن "مساعدي وحدة التحكم" لـ Kubernetes قبل عام ، وحتى قبل
ذلك قمنا
بعمل نظرة عامة على المرافق المفيدة الأخرى. ومع ذلك ، مع تطوير K8s ومجتمعها ، يخضع النظام البيئي المرتبط أيضًا بتغييرات. لذلك ، لدينا مرة أخرى ما نقوله لمحبي وحدة التحكم. دعنا نذهب!
kubebox
- جيثب (400+ نجمة)
- اللغة: JavaScript (Node.js)
- الترخيص: MIT
كان هذا المشروع هو سبب كتابة المراجعة. من ناحية ، هو ممثل مشرق لفئة البرامج "المهوسون يفعلون للمهوسين" ، ولكن من ناحية أخرى ، نما إلى درجة أنه لا يرضي العين فحسب ، بل يجلب أيضًا فوائد عملية ...
لذا ، فإن الغرض من kubebox هو العمل بشكل كامل مع Kubernetes كجزء من واجهة وحدة التحكم المريحة المقدمة بأسلوب الرسومات الزائفة:

يعني العمل ميزات مثل التنقل عبر اللوحات عبر مساحات الأسماء وعرض السجلات وحتى الرسوم البيانية لاستهلاك الموارد الرئيسية (وحدة المعالجة المركزية ، والذاكرة ، والشبكة) ، وتنفيذ الأوامر عن بعد في الحاويات. يمكن أخذ إعدادات الاتصال بالمجموعات من متغير البيئة
KUBECONFIG
أو
KUBECONFIG
في
$HOME/.kube
.
تتضمن الخطط الإضافية للمطورين دعمًا لتحرير التكوينات وتنفيذ عمليات CRUD ، بالإضافة إلى
إعادة تصميم كبيرة
للواجهة لدعم أنواع جديدة من الأوليات (الخدمات ، النشر ، إلخ) والتنقل الملائم عليها مع إخراج معلومات إضافية (على وجه الخصوص ،
kubectl describe pod
).
ميزة مهمة هي توفر
إصدار عبر الإنترنت (للاتصال بخادم Kubernetes API ، ستحتاج إلى إنشاء cors-allow
cors-allowed-origins
). بالإضافة إلى ذلك ، يمكن تشغيل kubebox كملف منفصل قابل للتنفيذ ، كعميل
داخل الكتلة (عبر kubectl) ، وكذلك من خدمة تم نشرها في مجموعة Kubernetes أو OpenShift (
يتم استخدام
Xterm.js لمحاكاة المحطة الطرفية).
منذ ما يقرب من عامين ، يعمل موظف Red Hat من فرنسا على تطوير kubebox (على وجه الدقة ، حتى أقل من 10 ٪ من الالتزامات التي قام بها زميله). تلقى المشروع دعاية واسعة بما فيه الكفاية فقط في الشهر الماضي (على
Reddit وعدد من الموارد الأخرى) ، لذلك يمكن توقع أن هذا سيعطي قوة دفع جديدة لتطويره.
kube-shell و kube-موجه
قذيفة كوبي
- جيثب (950+ نجمة)
- اللغة: Python
- الترخيص: Apache 2.0
(انتباه ، هذا ~ 2 ميجا بايت GIF!)موجه kube
- جيثب (700+ نجوم)
- اللغة: Go
- الترخيص: MIT

لقد
كتبنا بالفعل عن هذه المشاريع قبل عام ، وكانت في ذلك الوقت المفضلة غير المشروطة بين قذائف وحدة التحكم الكاملة للعمل مع Kubernetes. كلاهما في وضع واجهات محسنة (أكثر ملاءمة للاستخدام) إلى kubectl. في kube-shell ، يستخدمون مكتبة
مجموعة الأدوات السريعة لـ Python ، وبالنسبة إلى kube-prom أخذوا وطوروا مكتبة مماثلة على Go (
الذهاب الفوري ).
إذا قارنتهم مع kubebox ، فإن الواجهة لا تعتمد على الرسوم الكاذبة ، ولكن على وحدة التحكم المعتادة لإدخال الأوامر
(انظر لقطات الشاشة أعلاه) ، والتي ، مع ذلك ، مصحوبة بـ "تأثيرات خاصة" مثيرة للاهتمام: تلميحات الأدوات باستخدام الأوامر والإضافة التلقائية الملائمة و الخ.
على الرغم من النطاق الواسع من الميزات المدعومة (بما في ذلك نظام التلميحات الذي تم ذكره بالفعل والإكمال التلقائي ، والبحث عن تاريخ الأوامر ووضع تحرير يشبه السادس) ، فإن سجل الالتزامات في kube-shell يشير إلى تباطؤ واضح في المشروع. تم تسجيل سبع التزامات فقط هذا العام ، اثنان منها عبارة عن تعديلات
README
. على الرغم من وجود بعض منها مفيدة ، على سبيل المثال ،
الدعم الذي طال انتظاره لمتغير
KUBECONFIG
. بطريقة أو بأخرى ، فإن استمرار قلة رد فعل المطورين على الاستفسارات المتعلقة بالمستخدم (انظر
المشكلات ) لا يلهم العملاء المحتملين.
يبدو الوضع مع تطور kube-الفوري أفضل قليلاً. على الرغم من أن هذا المشروع قد سجل عددًا أقل من النجوم على GitHub (إذا كان قبل عام كان متقدمًا قليلاً على منافس Python ، إلا أنه متأخر الآن بشكل ملحوظ) ، وتظهر عمليات التنفيذ بشكل أكثر أو أقل بانتظام ، وآخر إصدار (
1.0.5 ) بتاريخ 18 أكتوبر. ومع ذلك ، لا توجد الكثير من التغييرات الهامة خلال العام الماضي - نلاحظ دعم الإصدار 1.11 من Kubernetes وإمكانية الإكمال التلقائي لمساحة الاسم. الشيء الرئيسي هو أن المؤلف نفسه
يعترف باستحالة تكريس وقت كاف لتطوير kube-الفوري ويبحث عن مساعدين.
تلخيص نتائج هذين المشروعين ، يمكننا القول أن kube-shell احتفظت بقيادتها من حيث القدرات المدعومة ومضت قدما في الشعبية ، ولكن مع احتمالات القذيفتين ، كل شيء غير واضح. ومع ذلك ، إذا كنت مرتاحًا لطريقة عملهم الآن ، فلا يوجد سبب لعدم أخذهم في الخدمة ، مثل لم تظهر بدائل أخرى في تصميم مماثل.
انقر
- جيثب (750+ نجوم)
- اللغة: Rust
- الترخيص: Apache 2.0
انقر مشروع صغير نوعًا ما: تم
تقديمه في شكل تجريبي في نهاية شهر مارس - وهو مثير للاهتمام بطريقته الخاصة. يأتي مفهومها إلى استخدام kubectl في
حلقة REPL ، مما يجعل الحياة أسهل من خلال الحفاظ على بيئة ثابتة. والأخير هو أن Click انقر على "يتذكر" السياق الحالي ، ومساحة الاسم ، أسفل ، وما إلى ذلك ، مما يدفع المستخدم إلى تنفيذ الأمر المطلوب لهذا المورد دون الحاجة إلى إعادة تحديد "المسار" بالكامل.

نشأت فكرة المشروع في Databricks ، حيث يستخدمون Kubernetes بنشاط وتعبوا من مراقبة نفس السيناريو مع kubectl ، الأمر الذي يتطلب إدخالًا مستمرًا للبيانات السابقة. في الوقت نفسه ، تحظى أداة kubectl نفسها - مثل وحدة التحكم بشكل عام - بشعبية كبيرة بين المهندسين. لذلك ظهرت هذه الوظيفة الإضافية ، لا تدعي استبدال kubectl ، ولكنها تساعد فقط في العمل معها. مثال لحالة استخدام Click:
pods //
2 //
describe //
events //
logs -c foo > /tmp/podfoo.log //
delete // ( )
إذا كنت مهتمًا ، فراجع أيضًا
شاشة تسجيل صغيرة توضح عمل Click مع التعليقات النصية.
العمل مع السجلات
كمكافأة - ليس قذائف ، ولكن أدوات وحدة التحكم للعمل مع السجلات في Kubernetes. قبل عام ، ذكرنا فقط
k8stail على هذا النحو ، ولكن في المرة الماضية أظهرت أن المشكلة ذات صلة ، وهناك حلول أخرى تستحق الاهتمام لحلها.
ستيرن
- جيثب (~ 1300 نجوم)
- اللغة: Go
- الترخيص: Apache 2.0
ستيرن هو المفضل بلا منازع في الذيل لفئة Kubernetes. للتوضيح ، عند عرض السجلات ، يتم استخدام رموز ألوان مختلفة:

ميزة أخرى مهمة هي استخدام التعبيرات العادية لتصفية الموقد دون الحاجة إلى معرفة معرفات محددة (على سبيل المثال ، حدد كل شيء بالاسم
web-\w+
). وبالمثل (على سبيل المثال ، regexpams) ، يمكنك تصفية حاويات محددة للقرون المطلوبة. من بين الميزات الأخرى الصارمة:
- دعم قوالب Go المخصصة لسجلات الإخراج (هناك العديد محدد مسبقًا بشكل افتراضي) ؛
- دعم محددات الملصقات ؛
- تقييد إخراج السجل بقيمة زمنية محددة - منذ و / أو عدد محدد من الأسطر ؛
- دعم الإكمال التلقائي لـ bash و zsh ، بالإضافة إلى الاستبدال الديناميكي للقيم لمساحات الأسماء والسياقات.
Kubetail
- جيثب (~ 950 نجوم)
- اللغة: Shell
- الترخيص: Apache 2.0
حل مماثل ، مكتوب بلغة باش العادية وأكثر نشاطًا بقليل تم تطويره في العام الماضي. مثل صارم ، يدعم تمييز أسماء المداخن (أو السطر الكامل القابل للتخصيص):

كما يسمح لك بتصفية القرون والحاويات حسب كل من الأسماء الكاملة والتعبيرات العادية ، بالإضافة إلى استخدام المحددات ، وقصر الإخراج على الوقت وعدد الأسطر ، ودعم الإكمال التلقائي لـ Bash و zsh والأسماك. من بين الميزات الأخرى:
- وضع
--follow
لتحديث البيانات من السجلات في الوقت الحقيقي (كما في tail -f
) ؛ --dry-run
لعرض قائمة --dry-run
المناسبة دون تنفيذ أي إجراءات أخرى ؛- دعم محدد jq لتحليل الإخراج في JSON.
كايل
- جيثب (~ 500 نجوم)
- اللغة: Go
- الترخيص: MIT
تنفيذ آخر شهد أقل نشاط في قاعدة التعليمات البرمجية خلال العام الماضي. ومع ذلك ، فإن لها ميزات وظيفية مثيرة للاهتمام تختلف عن منافسيها ، وهي:
- تقييد طلب المداخن بأسماء خدمتهم و ReplicationController و ReplicaSet و Deploya و Node و / Ingress (أي المداخن التي تنتمي إلى الخدمات التي يؤدي إليها الدخول المحدد) ؛
- القدرة على الاختيار ليس فقط عن طريق المحددات ، ولكن أيضًا استبعادها ؛
- تحديد مستوى التسجيل (
--log-level
).

ولكن هناك أيضًا عيوب: لا يُبرز الكايل القرون ذات الألوان ، ولا يدعم التعبيرات العادية للمرشحات.
ملاحظة
نشكرك على اهتمامك ، وبالطبع ، يسعدنا أن نسمع عن نتائجك في التعليقات!
اقرأ أيضا في مدونتنا: