0

بيان Kubernetes Linter

يتعارض Lint Kubernetes YAML مع أفضل ممارسات تقوية المجموعات، وهو غير متصل بالإنترنت تمامًا في متصفحك.

Buy Me a Coffee at ko-fi.com
جارٍ المعالجة... 0%
تحليل YAML
بيان المشي
التحقق من قواعد تصلب
تم

النتيجة

عادةً ما تتم مراجعة بيانات Kubernetes بالعين المجردة في طلب السحب، مما يعني أن نفس مجموعة الأخطاء الصعبة تستمر في الوصول إلى الإنتاج: عملية نشر بدون حد للذاكرة تؤدي في النهاية إلى قتل OOM وتأخذ عقدة معها، أو حاوية تعمل كجذر لأنه لم يقم أحد بتعيين runAsNonRoot، أو Pod مثبت على علامة صورة مثل `:latest` التي تتغير بصمت أسفل الطرح. يلتقط هذا linter فئة المشكلة تلك في اللحظة التي تقوم فيها بلصق بيان، دون الحاجة إلى مجموعة قيد التشغيل، أو سياق kubectl، أو أي بيانات اعتماد على الإطلاق.

يتضمن تحت الغطاء محلل YAML صغيرًا ملفوفًا يدويًا مكتوبًا خصيصًا للمجموعة الفرعية الواقعية من YAML التي تستخدمها فعليًا بيانات Kubernetes: `---`-مستندات منفصلة، وتداخل قائم على المسافة البادئة، و`مفتاح: قيمة` وتعيينات كتل متداخلة، و`-` عناصر تسلسل بما في ذلك قوائم الخرائط، والكميات القياسية المقتبسة وغير المقتبسة، والتعليقات، و`|`/`>` الكميات القياسية لأشياء مثل الخطوط المتعددة قيم ConfigMap أو التعليقات التوضيحية. لا توجد مكتبة YAML خارجية - يتم دمج المحلل اللغوي ومحرك القواعد مع الأداة ويتم تشغيلهما بالكامل في متصفحك.

تم تصميم جدول القاعدة وفقًا لتوجيهات تقوية المجموعة المعروفة - معيار CIS Kubernetes، ومستوى kube، وملف التعريف "المقيد" لمعايير أمان Pod - ويفحص كل حاوية بحثًا عن طلبات/حدود الموارد المفقودة، والحاويات التي يمكن تشغيلها كجذر أو في الوضع المميز، وغياب تحقيقات الحيوية والجاهزية على أعباء العمل طويلة المدى (عمليات النشر، وStatefulSets، وDaemonSets)، ووحدات تخزين hostPath التي تكشف المضيف نظام الملفات، واستخدام شبكة المضيف، وصور الحاويات غير القابلة للتكرار `:الأحدث` أو التي لا تحتوي على علامات. يتم تجميع النتائج حسب المستند والحاوية، مع وجود خطورة واضحة للخطأ/التحذير في كل واحدة حتى تتمكن من معرفة ما هو خطير بالفعل من مجرد تنبيه لأفضل الممارسات.

إنه يعمل على بيانات فردية أو ملفات متعددة المستندات بأكملها تم لصقها مباشرة من عرض قالب Helm أو مخرجات "إنشاء مخصص"، وفهم موارد Pod وDeployment وStatefulSet وDaemonSet وJob وReplicaSet وCronJob. نظرًا لأن كل شيء يتم تشغيله محليًا، فمن الآمن لصق البيانات التي تحتوي على أسماء الخدمة الداخلية، أو الحجم الحقيقي للموارد، أو أي شيء آخر لا ترغب في إرساله إلى واجهة برمجة تطبيقات تابعة لجهة خارجية - وهو أمر مفيد للتحقق السريع من السلامة قبل الالتزام المسبق، أو المساعدة في مراجعة التعليمات البرمجية، أو مجرد التعرف على الشكل "المتشدد" فعليًا في الممارسة العملية.