تخطَّ إلى المحتوى

☸️ شرح Kubernetes

كيف تشخّص خدمة Kubernetes غير قابلة للوصول؟

الدرس 21 من 35· ⏱ 1 دقائق قراءة

الـ pods تعمل، لكنّ الخدمة لا تستجيب. من أكثر مشكلات Kubernetes شيوعًا، وأسبابها محدودة وقابلة للفحص. درس تشخيص يبني على الخدمات.

المفتاح: نقاط النهاية (Endpoints)

الخدمة توجّه الترافيك إلى pods تطابق selector الخاصّ بها، وتُسجّلها كـ نقاط نهاية (Endpoints). أوّل فحص دائمًا:

kubectl get endpoints <اسم-الخدمة>
  • إن كانت القائمة فارغة، فالخدمة لا تجد أي pod تخدمه — وهذا أصل معظم الأعطال.
  • إن كانت ممتلئة، فالمشكلة غالبًا في المنافذ أو الشبكة لا في الربط.

الأسباب الشائعة وحلولها

  1. عدم تطابق التسميات (Selector): selector في الخدمة لا يطابق labels الـ pods → لا نقاط نهاية. الحلّ: تأكّد من تطابق التسميات تمامًا.
  2. منفذ خاطئ: targetPort في الخدمة لا يطابق المنفذ الذي تستمع عليه الحاوية فعلًا. الحلّ: طابق targetPort مع containerPort.
  3. الـ pods غير جاهزة: فحص الجاهزية (Readiness) يفشل، فتُستبعد الـ pods من نقاط النهاية. الحلّ: تأكّد أنّ فحص الجاهزية ينجح.
  4. نوع الخدمة: خدمة ClusterIP لا يُوصَل إليها من خارج العنقود أصلًا. الحلّ: استخدم النوع المناسب أو Ingress للكشف الخارجي.

أدوات الفحص

kubectl describe service <اسم-الخدمة>   # التسميات والمنافذ والنوع
kubectl get pods --show-labels          # تسميات الـ pods للمقارنة مع الـ selector

منهجية التشخيص

get endpoints أوّلًا: فارغة → افحص تطابق التسميات وجاهزية الـ pods؛ ممتلئة → افحص المنافذ والنوع. عزل نقاط النهاية يقودك للسبب بسرعة.

الخطوات التالية

راجع الخدمات وفحوص الصحّة، وللكشف الخارجي الـ Ingress.

شرح كيف تشخّص خدمة Kubernetes غير قابلة للوصول؟ — Kubernetes بالعربي
كيف تشخّص خدمة Kubernetes غير قابلة للوصول؟Kubernetes بالعربي · The Code Fix

هل كان هذا الدرس مفيدًا؟