Kubernetes / المتوسط: الطرح والسياسة والدليل / الدرس 11
NetworkPolicy وحدود الحركة
فسر عزل Pods والسماح التراكمي وافتراضات الإنفاذ دون خلط الاتصال بهوية التطبيق.
في هذه الصفحة
أهداف الدرس
- اشرح النموذج والافتراضات والحدود المتعلقة بموضوع «NetworkPolicy وحدود الحركة».
- فسر المثالين وميز النية المعلنة من الدليل المثبت.
- شخص الإخفاقات وعلل قرارات الاستعادة المشروحة دون تنفيذ عمليات عنقود.
اشتراط تنفيذ يفرض السياسة
تصف الكائنات الحركة المسموحة لكن يعتمد الإنفاذ على تنفيذ يدعمها؛ فلا ينشئ الكائن وحده عزلا. راجع الإضافة وإصدارها وحدودها. لا يمنع النطاق الحركة وحده، ولا تستبدل السياسة هوية TLS أوإذن التطبيق أوعزل المستأجر. حدد المصدر والوجهة والبروتوكول والمنفذ قبل YAML، وتحقق من الطرف والعملية بعد الاتصال.
فهم الاختيار والعزل
تختار السياسة Pods في نطاقها ويستقل عزل الدخول والخروج عند انطباقها. يختار المثال الجميع ويعزل الاتجاهين بلا سماح، فيمنع المعتاد وDNS بتطبيق مدعوم، ولذلك لا يطبق. قد يلزم سماح خروج المصدر ودخول الوجهة معا. راجع الفحوص والقياس وDNS والاعتماديات مع حركة العمل عند التغيير.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: {name: isolate-training, namespace: training}
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
لا قواعد سماح، وقد يمنع DNS وحركة أساسية؛ فلا يطبق كتوصية إنتاج عامة.
قراءة الاتحاد والاقتران صحيحا
تتجمع قواعد السماح ولا تكون سياسة المنع الافتراضي أعلى أولوية. يقترن محددا النطاق وPod داخل عنصر واحد ويتحقق أي البدائل بالعناصر المنفصلة. يسمح المثال للويب في نطاق مسمى بمنفذ خلفي، ولا يسمح DNS الخارجي أوفعل API. تحتاج التسميات ملكية موثوقة لأن تغييرها يغير المطابقة.
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata: {name: web-to-api, namespace: training}
spec:
podSelector: {matchLabels: {app: booking-api}}
policyTypes: [Ingress]
ingress:
- from:
- namespaceSelector: {matchLabels: {team: frontend}}
podSelector: {matchLabels: {app: web}}
ports:
- {protocol: TCP, port: 8080}
يلزم الشرطان لوجودهما بعنصر واحد، وقد توسع سياسات أخرى الوصول؛ ولا يعرف البيان الخروج أوإذن التطبيق.
مراعاة البروتوكول والطوبولوجيا
قد يحتاج DNS إلى UDP وTCP وفق المحلل والرد. تضيف الموازنات وحركة العقدة وشبكة المضيف والترجمة تفاصيل تنفيذ. تحقق من ipBlock مع إعادة العنوان ولا تعمم؛ وليست السياسة مرشح مسار HTTP عامّا. للاتصالات القائمة والتوقيت حدود. افصل استثناءات البنية ولا تصلح اعتمادية منسية بسماح للجميع.
التحقق من المسارات المسموحة والممنوعة
تشمل المراجعة السماح والمنع وDNS والبدء والصحة والقياس. اختبر الإنفاذ بأحمال اصطناعية وعزلة مصرح بها؛ فلا يثبت التحليل الإنفاذ أوالوصول. احفظ السابق وقرار استعادة محدودا مع القواعد الموجودة. لا ترسل الدورة حزمة أوتختبر سياسة أوتتصل بمحلل أوتطبق كائنا؛ بل تشرح الحد للتحقق اللاحق المحدود.
الأخطاء الشائعة وإصلاحها
توجد سياسة ولا تقيد الحركة
- لماذا يحدث؟
- لا يفرض التنفيذ السياسة المتوقعة.
- كيف تصلحه؟
- تحقق من الدعم والإنفاذ بعزلة.
- كيف تتجنب تكراره؟
- سجل قدرة الإضافة كافتراض أمن.
توسع عناصر المحدد المنفصلة الوصول
- لماذا يحدث؟
- اختلطت البدائل بالاقتران.
- كيف تصلحه؟
- ضع المحددات المقترنة بعنصر واحد.
- كيف تتجنب تكراره؟
- اختبر المستبعد والمسموح.
يفشل DNS بعد العزل
- لماذا يحدث؟
- أغفل خروج المحلل اللازم.
- كيف تصلحه؟
- راجع المحلل والبروتوكولات بنطاق محدود.
- كيف تتجنب تكراره؟
- أدرج اعتماديات البنية بالاختبارات.
اختبر فهمك
1. هل تلغي سياسة المنع الافتراضي سماح سياسة أخرى منطبقة؟
اعرض الحل المشروح
لا؛ تتجمع القواعد المطبقة. راجع اتحادها والاتجاهين؛ فقد يبقى طريق بعد حذف سماح وليس الكائن قاعدة جدار مرتبة ذات أولوية عامة.
2. لماذا تختبر مستدعيا بلا تسمية النطاق؟
اعرض الحل المشروح
يثبت الاستبعاد ويكشف OR أومنحة أخرى. لا يثبت نجاح المسموح العزل؛ فاستخدم هويات اصطناعية وتنفيذا معزولا مصرحا دون بيانات أوفحص واسع.
أهم ما تعلمته
- تصف الكائنات الحركة المسموحة لكن يعتمد الإنفاذ على تنفيذ يدعمها؛ فلا ينشئ الكائن وحده عزلا.
- تتجمع قواعد السماح ولا تكون سياسة المنع الافتراضي أعلى أولوية.
- تشمل المراجعة السماح والمنع وDNS والبدء والصحة والقياس.