0Pricing
DevOps Bootcamp · درس

تنقيح الوحدات وServices

استخدم أوامر kubectl وأدوات أخرى لتنقيح الوحدات التي لا تعمل كما ينبغي ومشكلات الاتصال بفعالية

تنقيح الوحدات وServices درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

لماذا يُعد تصحيح الأخطاء مهمًا؟

عندما تتصرف تطبيقاتكم على نحو غير صحيح في Kubernetes، يكون تصحيح الأخطاء أداتكم الأقوى! فهو يساعدكم على فهم ما حدث وكيفية إصلاحه.

تشمل العلامات الشائعة للمشكلات ما يلي:

  • Pods عالقة في حالة 'Pending' أو 'CrashLoopBackOff'.
  • Services يتعذر الوصول إليها.
  • تطبيقات لا تستجيب كما هو متوقع.

سنتعلم الأدوات الأساسية لتشخيص هذه المشكلات.

عدة تصحيح أخطاء kubectl الخاصة بكم

يوفر Kubernetes أدوات قوية لسطر الأوامر، وعلى رأسها kubectl، لمساعدتكم في فحص مجموعتكم واستكشاف أخطائها وإصلاحها.

تشمل الأوامر الأساسية التي سنستكشفها اليوم ما يلي:

  • kubectl describe: الحصول على معلومات تفصيلية عن الموارد.
  • kubectl logs: عرض مخرجات الحاويات.
  • kubectl exec: تشغيل أوامر داخل الحاويات.
  • kubectl port-forward: الوصول إلى Services محليًا.

سيجعلكم إتقان هذه الأوامر محترفين في تصحيح أخطاء Kubernetes!

تعمّقوا باستخدام kubectl describe

يُعد الأمر kubectl describe محطتكم الأولى للحصول على معلومات تفصيلية حول أي مورد في Kubernetes، وخصوصًا Pods.

يوفر هذا الأمر قدرًا كبيرًا من البيانات، بما في ذلك الأحداث والحالة وعناوين IP ووحدات التخزين وتفاصيل الحاويات. ابحثوا عن 'Events' في الأسفل للحصول على دلائل!

kubectl describe pod my-nginx-pod

فهم أحداث المجموعة

تُعد الأحداث ضرورية لفهم ما حدث لـ Pods أو الموارد الأخرى. فهي تروي تسلسل الإنشاء والجدولة والأخطاء وغير ذلك.

يمكنكم رؤية أحداث مورد محدد باستخدام describe، أو عرض الأحداث على مستوى المجموعة باستخدام kubectl get events.

kubectl get events --sort-by='.lastTimestamp'

فك رموز سجلات الحاويات

تطبع التطبيقات عادةً الرسائل المهمة والأخطاء ومعلومات تصحيح الأخطاء إلى تدفقات الإخراج/الخطأ القياسية. ويتيح لكم kubectl logs الوصول إلى هذه المعلومات.

إذا كانت Pod تتعطل، فمن الضروري فحص سجلاتها لفهم سبب فشلها. ويمكنكم أيضًا متابعة السجلات في الوقت الفعلي.

kubectl logs my-app-pod -f

تشغيل الأوامر في الحاويات

في بعض الأحيان، لا تكفي مشاهدة السجلات. فقد تحتاجون إلى تشغيل أوامر داخل حاوية قيد التشغيل لتشخيص المشكلات، تمامًا كما تفعلون عند الاتصال بخادم عبر SSH.

يتيح لكم kubectl exec تنفيذ الأوامر أو حتى فتح shell مثل bash أو sh مباشرةً داخل حاوية.

kubectl exec -it my-app-pod -- /bin/bash

الوصول المحلي باستخدام Port-Forward

عندما تشكون في تعذر الوصول إلى Service أو ترغبون في اختبارها محليًا دون تعريضها خارجيًا، فإن kubectl port-forward هو الحل المناسب.

ينشئ هذا الأمر نفقًا آمنًا من جهازكم المحلي إلى Pod أو Service في المجموعة، مما يتيح لكم الوصول إليها عبر localhost.

kubectl port-forward service/my-web-service 8080:80

تشخيص مشكلات Service

إذا تعذر الوصول إلى تطبيقكم عبر Service الخاصة به، فتحققوا من أمرين:

  • محدِّد Service: هل يطابق تسميات Pods بشكل صحيح؟
  • نقاط النهاية: هل لدى Service أي نقاط نهاية نشطة (أي Pods قيد التشغيل)؟

استخدموا kubectl get svc وkubectl get ep لفحص ذلك.

kubectl get svc my-web-service
kubectl get ep my-web-service

معالجة المشكلات الشائعة

لنلقِ نظرة على مشكلتين متكررتين في Pods:

  • CrashLoopBackOff: تبدأ الحاوية وتتوقف بشكل متكرر. تحققوا من kubectl logs بحثًا عن الأخطاء.
  • ImagePullBackOff: يتعذر على Kubernetes سحب صورة الحاوية. تحققوا من اسم الصورة ووسمها وإمكانية الوصول إلى السجل.

غالبًا ما يكشف kubectl describe pod السبب الأولي في قسم 'Events'.

تحدي تصحيح الأخطاء!

لاحظتم أن Pod باسم data-processor-xyz في حالة CrashLoopBackOff. تحتاجون إلى التحقق من سبب تعطلها.

أي أمرين مما يلي يُعدّان الأهم لتشغيلهما أولًا لتشخيص السبب المباشر؟

مراجعة: إتقان تصحيح الأخطاء

أحسنتم! لقد تعلمتم كيفية استخدام أوامر kubectl الأساسية لتصحيح أخطاء Pods وServices:

  • kubectl describe للحصول على معلومات تفصيلية عن الموارد والأحداث.
  • kubectl logs لمعرفة ما يحدث داخل الحاويات.
  • kubectl exec لاستكشاف الأخطاء وإصلاحها بشكل تفاعلي.
  • kubectl port-forward للوصول المحلي إلى Services.

تُعد هذه الأدوات ضرورية للحفاظ على تشغيل تطبيقات Kubernetes بسلاسة. واصلوا التدريب!

الأسئلة الشائعة

هل درس «تنقيح الوحدات وServices» مجاني؟

نعم — نص درس «تنقيح الوحدات وServices» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «تنقيح الوحدات وServices»؟

استخدم أوامر kubectl وأدوات أخرى لتنقيح الوحدات التي لا تعمل كما ينبغي ومشكلات الاتصال بفعالية تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.

كم من الوقت يستغرق درس «تنقيح الوحدات وServices»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. تشخيص المشكلات الشائعة
  2. تنقيح الوحدات وServices
  3. أفضل ممارسات الإنتاج ونصائحه
  4. حصص الموارد ونطاقات الحدود
← العودة إلى DevOps Bootcamp