Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
chaostoolkit-kubernetes — امتداد برنامج تشغيل Kubernetes لواجهة برمجة تطبيقات الفحوصات والإجراءات الخاصة بـ Chaos Toolkit | Kitploit
أدوات/GitHubGitHub/chaostoolkit/chaostoolkit-kubernetes
أمن البنية التحتية السحابيةأمن الحاوياتأمن الشبكاتهندسة الفوضى
GitHubchaostoolkit/chaostoolkit-kubernetes

chaostoolkit-kubernetes

امتداد برنامج تشغيل Kubernetes لواجهة برمجة تطبيقات الفحوصات والإجراءات الخاصة بـ Chaos Toolkit

عرض المستودع

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
الموقع الإلكتروني
19175منذ 2 سنواتتمت المراجعة من قبل Kitploit

إضافات Chaos Toolkit لنظام Kubernetes

Build Python versions Downloads

يحتوي هذا المشروع على أنشطة، مثل الفحوصات (probes) والإجراءات (actions)، يمكنك استدعاؤها من تجربتك عبر Chaos Toolkit لتنفيذ هندسة الفوضى (Chaos Engineering) ضد واجهة برمجة تطبيقات Kubernetes: قتل جراب (pod)، إزالة مجموعة حليّة (statefulset) أو عقدة (node)...

التثبيت

لاستخدامها من تجربتك، يجب تثبيت هذه الحزمة في بيئة Python التي يوجد بها chaostoolkit بالفعل.

root@kitploit:~
$ pip install chaostoolkit-kubernetes

الاستخدام

لاستخدام الفحوصات والإجراءات من هذه الحزمة، أضف ما يلي إلى ملف تجربتك:

root@kitploit:~
{
    "title": "Do we remain available in face of pod going down?",
    "description": "We expect Kubernetes to handle the situation gracefully when a pod goes down",
    "tags": ["kubernetes"],
    "steady-state-hypothesis": {
        "title": "Verifying service remains healthy",
        "probes": [
            {
                "name": "all-our-microservices-should-be-healthy",
                "type": "probe",
                "tolerance": true,
                "provider": {
                    "type": "python",
                    "module": "chaosk8s.probes",
                    "func": "microservice_available_and_healthy",
                    "arguments": {
                        "name": "myapp"
                    }
                }
            }
        ]
    },
    "method": [
        {
            "type": "action",
            "name": "terminate-db-pod",
            "provider": {
                "type": "python",
                "module": "chaosk8s.pod.actions",
                "func": "terminate_pods",
                "arguments": {
                    "label_selector": "app=my-app",
                    "name_pattern": "my-app-[0-9]$",
                    "rand": true
                }
            },
            "pauses": {
                "after": 5
            }
        }
    ]
}

هذا كل شيء! لاحظ كيف يمنحك الإجراء طريقة لقتل جراب واحد بشكل عشوائي.

يرجى استكشاف التوثيق للاطلاع على الفحوصات والإجراءات الموجودة.

حقن الأعطال على مستوى منخفض

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

ستحتاج إلى تثبيت Chaos Mesh أولاً في مجموعتك لاستخدامها.

الإعداد

استخدام ~/.kube/config

إذا كان لديك إدخال صالح في ملف ~/.kube/config الخاص بك للمجموعة التي تريد استهدافها، فلا حاجة لفعل أي شيء.

يمكنك تحديد KUBECONFIG لتحديد موقع مختلف.

root@kitploit:~
$ export KUBECONFIG=/tmp/my-config

تحديد سياق Kubernetes

غالباً ما يحتوي إعداد Kubernetes الخاص بك على عدة إدخالات، وتحتاج إلى تحديد الإدخال الذي سيُستخدم كسياق افتراضي عندما لا يتم توفيره صراحةً.

يمكنك بالطبع تغيير الافتراضي باستخدام kubectl config use-context KUBERNETES_CONTEXT ولكن يمكنك أيضاً أن تكون صريحاً في تجربتك كما يلي:

root@kitploit:~
{
    "title": "Do we remain available in face of pod going down?",
    "description": "We expect Kubernetes to handle the situation gracefully when a pod goes down",
    "tags": ["kubernetes"],
    "secrets": {
        "k8s": {
            "KUBERNETES_CONTEXT": "..."
        }
    },
    "steady-state-hypothesis": {
        "title": "Verifying service remains healthy",
        "probes": [
            {
                "name": "all-our-microservices-should-be-healthy",
                "type": "probe",
                "tolerance": true,
                "secrets": ["k8s"],
                "provider": {
                    "type": "python",
                    "module": "chaosk8s.probes",
                    "func": "microservice_available_and_healthy",
                    "arguments": {
                        "name": "myapp"
                    }
                }
            }
        ]
    },
    "method": [
        {
            "type": "action",
            "name": "terminate-db-pod",
            "secrets": ["k8s"],
            "provider": {
                "type": "python",
                "module": "chaosk8s.pod.actions",
                "func": "terminate_pods",
                "arguments": {
                    "label_selector": "app=my-app",
                    "name_pattern": "my-app-[0-9]$",
                    "rand": true
                }
            },
            "pauses": {
                "after": 5
            }
        }
    ]
}

تحتاج إلى تحديد مفتاح السر KUBERNETES_CONTEXT باسم السياق الذي تريد أن تستخدمه التجربة. تأكد أيضاً من إعلام الإجراءات والفحوصات بإدخالات السر التي يجب تمريرها إليها عبر "secrets": ["k8s"].

استخدام حساب خدمة جراب (Pod's service account)

عند التشغيل من داخل جراب (وليس من جهازك المحلي أو بيئة CI مثلاً)، فإن ملف ./.kube/config غير موجود. بدلاً من ذلك، يمكن العثور على بيانات الاعتماد في /var/run/secrets/kubernetes.io/serviceaccount/token.

لإعلام الإضافة بذلك، ما عليك سوى تعيين CHAOSTOOLKIT_IN_POD من متغيرات البيئة في مواصفات الجراب:

root@kitploit:~
env:
- name: CHAOSTOOLKIT_IN_POD
  value: "true"

عند استخدام متغير البيئة هذا، يُفترض أن التجربة تستهدف نفس المجموعة التي تُشغَّل منها التجربة. إذا كانت تجربتك تستهدف مجموعة مختلفة، فلا يجب عليك تعيين هذا المتغير. بدلاً من ذلك، يمكنك تركيب وحدة تخزين (volume) تحتوي على إعداد Kubernetes للمجموعة المستهدفة وتعيين KUBECONFIG للإشارة إليها.

تمرير جميع بيانات الاعتماد في التجربة

أخيراً، يمكنك تمرير جميع معلومات بيانات الاعتماد المطلوبة صراحةً إلى التجربة كما يلي:

استخدام مفتاح API

root@kitploit:~
{
    "secrets": {
        "kubernetes": {
            "KUBERNETES_HOST": "http://somehost",
            "KUBERNETES_API_KEY": {
                "type": "env",
                "key": "SOME_ENV_VAR"
            }
        }
    }
}

استخدام اسم مستخدم/كلمة مرور

root@kitploit:~
{
    "secrets": {
        "kubernetes": {
            "KUBERNETES_HOST": "http://somehost",
            "KUBERNETES_USERNAME": {
                "type": "env",
                "key": "SOME_ENV_VAR"
            },
            "KUBERNETES_PASSWORD": {
                "type": "env",
                "key": "SOME_ENV_VAR"
            }
        }
    }
}

استخدام مفتاح/شهادة TLS

root@kitploit:~
{
    "secrets": {
        "kubernetes": {
            "KUBERNETES_HOST": "http://somehost",
            "KUBERNETES_CERT_FILE": {
                "type": "env",
                "key": "SOME_ENV_VAR"
            },
            "KUBERNETES_KEY_FILE": {
                "type": "env",
                "key": "SOME_ENV_VAR"
            }
        }
    }
}

مصادقة مجموعات Kubernetes المُدارة

في بعض مجموعات Kubernetes المُدارة، تحتاج أيضاً إلى المصادقة ضد المنصة نفسها لأن مصادقة Kubernetes مفوَّضة إليها.

Google Cloud Platform

بالإضافة إلى بيانات اعتماد Kubernetes الخاصة بك (عبر ملف ~/.kube/config)، تحتاج إلى المصادقة ضد Google Cloud Platform نفسها. عادةً يتم ذلك عبر:

root@kitploit:~
$ gcloud auth login

ولكن يمكن تحقيقه أيضاً بتعريف متغير البيئة GOOGLE_APPLICATION_CREDENTIALS.

المساهمة

إذا كنت ترغب في المساهمة بمزيد من الدوال في هذه الحزمة، فنحن نرحب بك كثيراً. يرجى عمل fork لهذا المشروع، وكتابة اختبارات وحدة لتغطية التغييرات المقترحة، وتنفيذ التغييرات، والتأكد من أنها تلبي معايير التنسيق، ثم رفع PR إلى المستودع للمراجعة.

يرجى الرجوع إلى قسم التنسيق لمزيد من المعلومات حول معايير التنسيق.

تتطلب مشاريع Chaos Toolkit من جميع المساهمين التوقيع على شهادة مصدر المطوّر (Developer Certificate of Origin) في كل التزام (commit) يرغبون في دمجه في الفرع الرئيسي للمستودع. يرجى التأكد من قدرتك على الالتزام بقواعد DCO قبل تقديم PR.

التطوير

إذا كنت ترغب في التطوير على هذا المشروع، فتأكد من تثبيت اعتماديات التطوير. لكن أولاً، قم بتثبيت PDM ثم ثبّت الاعتماديات.

root@kitploit:~
$ pdm install

الآن، يمكنك تعديل الملفات، وستتم رؤيتها تلقائياً في بيئتك، حتى عند التشغيل من الأمر chaos محلياً.

الاختبارات

لتشغيل اختبارات المشروع نفذ ما يلي:

root@kitploit:~
$ pdm run tests

التنسيق والفحص (Formatting and Linting)

نستخدم ruff لفحص وتنسيق كود هذا المستودع.

قبل رفع طلب سحب (Pull Request)، نوصي بتشغيل التنسيق على الكود الخاص بك باستخدام:

root@kitploit:~
$ pdm run format

سيؤدي هذا تلقائياً إلى تنسيق أي كود لا يلتزم بمعايير التنسيق.

نظراً لأن بعض الأشياء لا يلتقطها التنسيق، نوصي أيضاً بتشغيل:

root@kitploit:~
$ pdm run lint

لضمان التقاط أي عبارات استيراد غير مستخدمة/سلاسل طويلة جداً، وما إلى ذلك.

تنزيل الأداة