الفصل 2.7 - kube-proxy
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم دور kube-proxy
- شرح كيفية إدارة kube-proxy للخدمات
- فهم أوضاع الوكيل
- تحديد التوازن في التحميل
ما هو kube-proxy؟
kube-proxy هو مكون شبكة يعمل على كل عقدة. يحافظ على قواعد الشبكة التي تسمح بالتواصل مع الخدمات من داخل وخارج الكلاستر.
أدوار kube-proxy
1. إدارة الخدمات
kube-proxy يراقب الخدمات ونقاط النهاية الخاصة بها:
2. التوازن في التحميل
يوزع حركة المرور بين البودات الخلفية:
3. قواعد الشبكة
يحافظ على قواعد iptables أو ipvs لـ:
- التوجيه إلى الخدمات
- NAT (ترجمة عناوين الشبكة)
- التوازن في التحميل
أوضاع الوكيل
1. userspace (مهمل)
وضع قديم، غير فعال.
2. iptables (افتراضي)
يستخدم iptables للتوجيه:
المزايا:
- فعال
- لا توجد عملية مستخدم
- أصلي لنظام Linux
3. ipvs (موصى به للإنتاج)
يستخدم IPVS (خادم IP الافتراضي) من نواة Linux:
المزايا:
- أكثر فعالية من iptables
- أفضل في التوازن في التحميل
- يدعم المزيد من الخوارزميات
العمل مع خدمة
مثال: خدمة ClusterIP
apiVersion: v1
kind: Service
metadata:
name: my-service
spec:
selector:
app: my-app
ports:
- port: 80
targetPort: 8080
ما يحدث:
- تم إنشاء الخدمة → يكتشف kube-proxy التغيير
- تم اكتشاف نقاط النهاية → يجد kube-proxy البودات الخلفية
- تم إنشاء القواعد → تم تكوين iptables/ipvs
- تم توجيه الحركة → يتم توزيع الطلبات إلى الخدمة
التوازن في التحميل
الخوارزميات المدعومة
- Round Robin: توزيع عادل
- Least Connection: أقل عدد من الاتصالات النشطة
- Source IP Hash: نفس البود لنفس المصدر
مثال: Round Robin
أنواع الخدمات
ClusterIP
kube-proxy ينشئ قواعد لتوجيه الحركة الداخلية.
NodePort
kube-proxy يفتح منفذًا على كل عقدة ويوجه إلى البودات.
LoadBalancer
kube-proxy يكوّن التوجيه، ومزود السحابة ينشئ موازن التحميل الخارجي.
الأوامر المفيدة
# عرض قواعد iptables (على العقدة)
sudo iptables -t nat -L -n
# عرض قواعد ipvs (إذا كان الوضع ipvs)
sudo ipvsadm -ln
# عرض نقاط النهاية لخدمة
kubectl get endpoints <service-name>
# عرض تفاصيل خدمة
kubectl describe service <service-name>
الملخص
في هذا الفصل، تعلمت:
kube-proxy: يدير الشبكات والتوازن في التحميل
الخدمات: توجيه الحركة إلى البودات الخلفية
الأوضاع: iptables (افتراضي) أو ipvs (للإنتاج)
التوازن في التحميل: توزيع الحركة بين البودات
قواعد الشبكة: الحفاظ على قواعد التوجيه
الخطوات التالية
الآن بعد أن فهمت kube-proxy:
الفصل 2.8: Container Runtime
الفصل 2.9: التواصل بين المكونات
الفصل تم إنشاؤه في: ديسمبر 2024