انتقل إلى المحتوى الرئيسي

الفصل 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

ما يحدث:​

  1. تم إنشاء الخدمة → يكتشف kube-proxy التغيير
  2. تم اكتشاف نقاط النهاية → يجد kube-proxy البودات الخلفية
  3. تم إنشاء القواعد → تم تكوين iptables/ipvs
  4. تم توجيه الحركة → يتم توزيع الطلبات إلى الخدمة

التوازن في التحميل​

الخوارزميات المدعومة​

  • 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