DNS و NetworkPolicy
CoreDNS
Section titled “CoreDNS”CoreDNS هو DNS الداخلي في Kubernetes. عندما يطلب Pod اسم Service مثل api, CoreDNS يحول الاسم إلى عنوان Service.
kubectl get pods -n kube-system -l k8s-app=kube-dnskubectl get service -n kube-system kube-dnsمشاكل DNS شائعة
Section titled “مشاكل DNS شائعة”- Service غير موجود.
- اسم Namespace خطأ.
- NetworkPolicy تمنع الوصول إلى DNS.
- CoreDNS لا يعمل.
NetworkPolicy
Section titled “NetworkPolicy”NetworkPolicy تحدد من يسمح له بالاتصال بمن.
مثال: السماح للـ frontend فقط
Section titled “مثال: السماح للـ frontend فقط”apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata: name: allow-frontend-to-apispec: podSelector: matchLabels: app: api policyTypes: - Ingress ingress: - from: - podSelector: matchLabels: app: frontend ports: - protocol: TCP port: 3000مهم جدا
Section titled “مهم جدا”NetworkPolicy تحتاج CNI plugin يدعمها. لو Cluster المحلي لا يدعمها، قد تطبق YAML بدون تأثير فعلي.
Lab: عزل Backend
الهدف: السماح للـ frontend فقط بالوصول إلى api.
- شغل Pod باسم
frontendعليه labelapp=frontend. - شغل Pod باسم
apiعليه labelapp=api. - طبق NetworkPolicy.
- اختبر الاتصال من Pod مسموح وآخر غير مسموح.