الفصل 4.2 - أنواع الخدمات
أهداف التعلم
في نهاية هذا الفصل، ستكون قادرًا على:
- فهم الأنواع الأربعة للخدمات
- اختيار النوع المناسب حسب حالة الاستخدام
- تكوين كل نوع من أنواع الخدمة
- فهم الفروقات
أنواع الخدمات
يوفر Kubernetes أربعة أنواع من الخدمات:
1. ClusterIP (افتراضي)
الوصول الداخلي فقط داخل العنقود.
apiVersion: v1
kind: Service
metadata:
name: clusterip-service
spec:
type: ClusterIP # افتراضي
selector:
app: web
ports:
- port: 80
حالة الاستخدام: التواصل بين الخدمات داخل العنقود.
2. NodePort
تعريض الخدمة على منفذ من كل عقدة (30000-32767).
apiVersion: v1
kind: Service
metadata:
name: nodeport-service
spec:
type: NodePort
selector:
app: web
ports:
- port: 80
targetPort: 8080
nodePort: 30080 # اختياري
حالة الاستخدام: الوصول الخارجي بدون موازن تحميل السحابة.
3. LoadBalancer
تعريض عبر موازن تحميل مزود السحابة.
apiVersion: v1
kind: Service
metadata:
name: loadbalancer-service
spec:
type: LoadBalancer
selector:
app: web
ports:
- port: 80
حالة الاستخدام: التطبيقات العامة في الإنتاج.
4. ExternalName
اسم مستعار لخدمة خارجية.
apiVersion: v1
kind: Service
metadata:
name: external-service
spec:
type: ExternalName
externalName: database.example.com
حالة الاستخدام: الإشارة إلى الخدمات الخارجية كخدمات داخلية.
المقارنة
| النوع | الوصول | IP | منفذ | حالة الاستخدام |
|---|---|---|---|---|
| ClusterIP | داخلي | IP العنقود | 80 | خدمات داخلية |
| NodePort | خارجي | IP العقدة | 30000-32767 | تطوير/اختبار |
| LoadBalancer | خارجي | IP السحابة | 80 | إنتاج |
| ExternalName | داخلي | CNAME | - | خدمات خارجية |
الملخص
في هذا الفصل، تعلمت:
ClusterIP: الوصول الداخلي فقط (افتراضي)
NodePort: تعريض على منفذ من كل عقدة
LoadBalancer: عبر موازن تحميل السحابة
ExternalName: اسم مستعار لخدمة خارجية
الاختيار: حسب حالة الاستخدام (داخلي/خارجي، تطوير/إنتاج)
الخطوات التالية
الآن بعد أن تعرفت على الأنواع:
الفصل 4.3: اكتشاف الخدمة
المختبر 4.1: خدمات ClusterIP وNodePort
تم إنشاء الفصل في: ديسمبر 2024