تخطَّ إلى المحتوى

DNS و NetworkPolicy

CoreDNS هو DNS الداخلي في Kubernetes. عندما يطلب Pod اسم Service مثل api, CoreDNS يحول الاسم إلى عنوان Service.

Terminal window
kubectl get pods -n kube-system -l k8s-app=kube-dns
kubectl get service -n kube-system kube-dns
  • Service غير موجود.
  • اسم Namespace خطأ.
  • NetworkPolicy تمنع الوصول إلى DNS.
  • CoreDNS لا يعمل.

NetworkPolicy تحدد من يسمح له بالاتصال بمن.

مثال: السماح للـ frontend فقط

Section titled “مثال: السماح للـ frontend فقط”
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: allow-frontend-to-api
spec:
podSelector:
matchLabels:
app: api
policyTypes:
- Ingress
ingress:
- from:
- podSelector:
matchLabels:
app: frontend
ports:
- protocol: TCP
port: 3000

NetworkPolicy تحتاج CNI plugin يدعمها. لو Cluster المحلي لا يدعمها، قد تطبق YAML بدون تأثير فعلي.

Lab: عزل Backend

المستوى: مبتدئ الوقت: 40 دقيقة الأدوات: kubectl, CNI يدعم NetworkPolicy

الهدف: السماح للـ frontend فقط بالوصول إلى api.

  1. شغل Pod باسم frontend عليه label app=frontend.
  2. شغل Pod باسم api عليه label app=api.
  3. طبق NetworkPolicy.
  4. اختبر الاتصال من Pod مسموح وآخر غير مسموح.