محتويات الدورة

Kubernetes / الأساسي: الكائنات وحدود التنفيذ / الدرس 4

الخدمات واختيار النقاط وDNS

تتبع اكتشاف الخدمة من اسم DNS عبر Service والنقاط الجاهزة إلى منفذ التطبيق.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اشرح النموذج والافتراضات والحدود المتعلقة بموضوع «الخدمات واختيار النقاط وDNS».
  • فسر المثالين وميز النية المعلنة من الدليل المثبت.
  • شخص الإخفاقات وعلل قرارات الاستعادة المشروحة دون تنفيذ عمليات عنقود.

منح الاستبدال عقد اكتشاف مستقر

تتغير عناوين Pods وحياتها فيستخدم العميل Service بدلا من عنوان ثابت. تختار الخدمة المطابق وتعرض عقد منفذ وتُمثل النقاط بـEndpointSlices، ويتبع النقل التنفيذ الشبكي. ليست الخدمة مشرف عمليات ولا تجعل تطبيقا غير جاهز يخدم. افصل الاكتشاف والاختيار والنقل والسلوك. يثبت DNS إرجاع بيانات لا وصول الطرف أو إذنه.

قراءة المحددات والمنافذ معا

يعرض البيان منفذ الخدمة 80 ويوجه للمنفذ المسمى http. يجب أن يوفر القالب والعملية الاسم والمستمع. ليس targetPort بالضرورة رقم المنفذ العام. قد تطابق التسميات حملا آخر أو لا تطابق، وتزيل الجاهزية الأهلية. افحص المحدد والنطاق والعناوين والشروط وحل الاسم وربط التطبيق منفصلة. البيان توضيحي بصيغة v1 ولا ينشأ بالدورة.

yaml عقد منفذ Service توضيحي
apiVersion: v1
kind: Service
metadata:
  name: booking-api
  namespace: training
spec:
  selector: {app: booking, tier: api}
  ports:
    - name: web
      port: 80
      targetPort: http
  type: ClusterIP

يجب أن تعرف Pod المختارة http ومستمعا حقيقيا. لا يضم البيان Pods ولا يثبت نقاطا أو وصولا.

حل الأسماء من سياق المستدعي

يدعم DNS أسماء يعتمد تفسيرها على النطاق والبحث؛ فقد يختلف الاسم القصير بين نطاقين، ويوضح الكامل التشخيص. مجال العنقود قابل للضبط لا عام. يفصل السجل المستدعي والنطاق والمنفذ دون جواب DNS حقيقي. تشترك حاويات Pod في سياق، ويشير localhost في أخرى إليها. لا تغير الاعتماد لإصلاح اسم يحل لوجهة خاطئة.

yaml سياق اكتشاف اصطناعي
caller_namespace: reporting
service_namespace: training
service_name: booking-api
cluster_domain: installation-defined
service_port: 80
expected_target_port_name: http

النطاقان والمنفذ صريحون ويؤخذ المجال من عقد التثبيت. الحقول سجل لا كائن Kubernetes.

اختيار التعرض وفق الغرض

تختلف أنماط ClusterIP وNodePort وLoadBalancer بالتعرض ومتطلبات المزود. وللخدمة عديمة الرأس اكتشاف مختلف دون التجريد المعتاد للعنوان الافتراضي. تضيف Ingress أو Gateway توجيها بمتحكم ودعم وTLS خاص. لا تختَر موازنا عاما لتجاوز تشخيص داخلي. حدد من يصل والبروتوكول والهوية وإنهاء التشفير. ليست قابلية الوصول إذنا ولا يوفر النطاق العزل وحده.

التحقق من المسار بدليل محدود

شخص من سياق المستدعي بدليل معتمد: الاسم والعقد والأهلية والسياسة والنقل ثم الرد. ميز الرفض والمهلة وهوية TLS وصلاحية HTTP لا خطأ DNS واحدا. تحتاج خدمة بلا نقاط جاهزة فحص الحمل أو المحدد قبل ضبط الشبكة. لا تنفذ الدورة حزمة أو استعلاما أو kubectl أوتمرير منفذ أو اتصالا. سجل السياق والزمن لإعادة الفهم بأمان.

الأخطاء الشائعة وإصلاحها

ينجح DNS وتفشل الطلبات

لماذا يحدث؟
اختلط الحل بصحة النقاط والتطبيق.
كيف تصلحه؟
افحص النقاط والسياسة والمستمع والرد.
كيف تتجنب تكراره؟
استخدم قائمة طبقات للاتصال.

لا نقاط مؤهلة للخدمة

لماذا يحدث؟
لا يتطابق المحدد أوالنطاق أوالجاهزية أوالمنفذ.
كيف تصلحه؟
قارن الاختيار ودليل Pod قبل التوجيه.
كيف تتجنب تكراره؟
اختبر المحددات وعقود أسماء المنافذ.

يستهدف localhost Pod خاطئة

لماذا يحدث؟
أُهمل سياق المستدعي.
كيف تصلحه؟
استخدم عقد الاكتشاف الموثق.
كيف تتجنب تكراره؟
أدرج نطاقي المستدعي والوجهة.

اختبر فهمك

1. منفذ الخدمة 80 وtargetPort هوhttp. هل تستمع العملية على 8080؟

اعرض الحل المشروح

نعم إذا عرفت Pod المنفذhttp برقم 8080 وربط التطبيق صحيح. لا تبدأ التصريحات مستمعا. تحقق من الاختيار والجاهزية أيضا؛ فالأرقام وحدها لا تثبت نقطة مفيدة.

2. يعمل اسم قصير في نطاق ويفشل بآخر. ماذا تقارن؟

اعرض الحل المشروح

قارن نطاق المستدعي والبحث ونطاق الخدمة والمجال. استخدم الاسم الكامل الموثق للتشخيص ولا تعرض الخدمة علنا أو تعطل السياسة لتعويض غموض الاكتشاف.

أهم ما تعلمته

  • تتغير عناوين Pods وحياتها فيستخدم العميل Service بدلا من عنوان ثابت.
  • يدعم DNS أسماء يعتمد تفسيرها على النطاق والبحث؛ فقد يختلف الاسم القصير بين نطاقين، ويوضح الكامل التشخيص.
  • شخص من سياق المستدعي بدليل معتمد: الاسم والعقد والأهلية والسياسة والنقل ثم الرد.

المراجع الرسمية