تدريب عملي · الوحدة 07 — Kubernetes: المفاهيم الأساسية · المستوى متوسط
حاول أولاً وحدك! أنجز المشروع بهذا البيان وحده. التصحيح (بيانات معلَّقة + أوامر) في README.md، مطوي. لا تفتحه إلا بعد المحاولة.
demo-k8s:1.0 مبنية مسبقاً (وإلا: docker build -t demo-k8s:1.0 ./app).فهم فائدة الخدمة وإتقان الأنواع الثلاثة الرئيسية:
كل ذلك فوق Deployment واحد: دفعة Pods واحدة، ثلاث طرق لعرضها.
الـ Pods زائلة: تولد وتموت وتغيّر IP. إذن لا يمكن الاعتماد على IP لـ Pod. يلزم عنوان مستقر يوزّع الحركة نحو الـ Pods الصحيحة: هذا دور الخدمة، التي تجد Podsها بفضل الوسوم.
demo-k8s:1.0).app: demo-back).ClusterIP باسم demo-clusterip (المنفذ 80 → 5000).curl http://demo-clusteripNodePort باسم demo-nodeport (nodePort 30082).http://localhost:30082 من متصفحك.LoadBalancer باسم demo-lb (المنفذ 8090).EXTERNAL-IP (kubectl get svc) وافتح http://localhost:8090.kubectl get svc) وحدّد: TYPE، CLUSTER-IP، EXTERNAL-IP، PORT(S).kubectl get endpoints demo-clusterip): هذه عناوين IP للـ Pods خلف الخدمة.k8s/deployment.yaml والخدمات الثلاث (service-clusterip.yaml، service-nodeport.yaml، service-loadbalancer.yaml).kubectl get svc تُظهر الأنواع الثلاثة.curl http://demo-clusterip من Pod عميل) بـ اسمَي Pod مختلفين.kubectl get endpoints demo-clusterip.| المعيار | المتوقع |
|---|---|
| ClusterIP | قابل للوصول باسم DNS من Pod آخر |
| NodePort | قابل للوصول على http://localhost:30082 |
| LoadBalancer | EXTERNAL-IP = localhost، قابل للوصول على http://localhost:8090 |
| التوزيع | يتغيّر اسم الـ Pod بين طلبين |
| Endpoints | تظهر عناوين IP للـ Pods الثلاثة خلف الخدمة |
معلّق؟ يحتوي README.md على التصحيح الكامل، والمفاهيم مفصَّلة في 01-CONCEPTS-SERVICES.md، ويسرد 02-COMMANDES.md كل
kubectlمفيد — للرجوع إليها بعد المحاولة.