انتقل إلى المحتوى الرئيسي

اختبار الوحدة 8 - Ingress و Load Balancing

تعليمات​

يحتوي هذا الاختبار على 30 سؤالًا متعدد الخيارات.


السؤال 1​

ما هو Ingress في Kubernetes؟

عرض التفسير

الإجابة الصحيحة: مورد يعرض خدمات HTTP/HTTPS من خارج العنقود

التفسير: يتيح Ingress التوجيه القائم على المسار أو اسم المضيف لـ HTTP/HTTPS، مع دعم TLS/SSL.


السؤال 2​

ما هو Ingress Controller؟

عرض التفسير

الإجابة الصحيحة: Pod يراقب موارد Ingress ويقوم بتكوين موازن تحميل لعرضها

التفسير: يراقب Ingress Controller (مثل NGINX Ingress، Traefik) موارد Ingress ويقوم بتكوين reverse proxy/load balancer لعرض الخدمات.


السؤال 3​

ما هو Ingress Controller الأكثر شيوعًا؟

عرض التفسير

الإجابة الصحيحة: NGINX Ingress Controller

التفسير: NGINX Ingress Controller هو الأكثر شيوعًا واستخدامًا على نطاق واسع، ويتم صيانته من قبل مجتمع Kubernetes وNGINX.


السؤال 4​

ما هو ingressClassName في مورد Ingress؟

عرض التفسير

الإجابة الصحيحة: فئة Ingress التي تحدد أي Ingress Controller يجب أن يدير هذا المورد

التفسير: ingressClassName يسمح بتحديد أي Ingress Controller يجب أن يدير هذا المورد Ingress، وهو مفيد عندما يتم تثبيت عدة Ingress Controllers.


السؤال 5​

كيف يتم تكوين TLS/SSL لـ Ingress؟

عرض التفسير

الإجابة الصحيحة: عبر قسم tls مع Secret يحتوي على الشهادة والمفتاح الخاص

التفسير: قسم tls في Ingress يشير إلى Secret من نوع kubernetes.io/tls يحتوي على tls.crt (الشهادة) وtls.key (المفتاح الخاص).


السؤال 6​

ما هو cert-manager؟

عرض التفسير

الإجابة الصحيحة: مشغل Kubernetes يدير تلقائيًا شهادات TLS/SSL

التفسير: cert-manager يحصل على الشهادات، يجددها ويديرها تلقائيًا من Let's Encrypt أو من سلطات إصدار الشهادات الأخرى.


السؤال 7​

ما الفرق بين Ingress وService LoadBalancer؟

عرض التفسير

الإجابة الصحيحة: Ingress يسمح بالتوجيه HTTP/HTTPS القائم على المسار/اسم المضيف، LoadBalancer يعرض Service مباشرة

التفسير: Ingress يوفر توجيهًا متقدمًا (عدة خدمات عبر نقطة دخول واحدة)، بينما LoadBalancer يعرض خدمة واحدة مباشرة.


السؤال 8​

ما هو pathType في قاعدة Ingress؟

عرض التفسير

الإجابة الصحيحة: الطريقة التي يتم بها تفسير المسار: Exact، Prefix، أو ImplementationSpecific

التفسير: pathType يحدد كيفية مطابقة المسار: Exact (مطابقة دقيقة)، Prefix (مطابقة بادئة)، أو ImplementationSpecific (يعتمد على التنفيذ).


السؤال 9​

ما هي الأمر لرؤية Ingress؟

عرض التفسير

الإجابة الصحيحة: kubectl get ingress

التفسير: kubectl get ingress (أو ing) يعرض جميع Ingress وحالتها، بما في ذلك عناوين IP المعينة.


السؤال 10​

ما هي annotation في Ingress؟

عرض التفسير

الإجابة الصحيحة: بيانات وصفية تقوم بتكوين سلوك Ingress Controller

التفسير: تسمح annotations بتكوين ميزات محددة لـ Ingress Controller (قواعد إعادة الكتابة، إعادة توجيه SSL، إلخ).


السؤال 11​

ما هو Ingress مع عدة قواعد؟

عرض التفسير

الإجابة الصحيحة: Ingress يمكنه التوجيه إلى عدة خدمات بناءً على أسماء مضيفين أو مسارات مختلفة

التفسير: يمكن أن يحتوي Ingress على عدة قواعد، كل منها يحدد توجيهًا مختلفًا بناءً على اسم المضيف أو المسار، مما يسمح بعرض عدة خدمات عبر نقطة دخول واحدة.


السؤال 12​

ما هي الأمر لتثبيت NGINX Ingress Controller؟

عرض التفسير

الإجابة الصحيحة: kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/cloud/deploy.yaml

التفسير: يمكن تثبيت NGINX Ingress Controller عبر kubectl apply مع manifest الرسمي، أو عبر Helm.


السؤال 13​

ما هو Ingress مع rewrite-target؟

عرض التفسير

الإجابة الصحيحة: Ingress يقوم بإعادة كتابة مسار URL قبل إرساله إلى خدمة backend

التفسير: تسمح annotation nginx.ingress.kubernetes.io/rewrite-target بتعديل مسار URL، وهو مفيد عندما تتوقع خدمة backend مسارًا مختلفًا.


السؤال 14​

ما الفرق بين Ingress وService NodePort لعرض تطبيق؟

عرض التفسير

الإجابة الصحيحة: Ingress يوفر التوجيه HTTP/HTTPS وTLS، NodePort يعرض مباشرة على منفذ

التفسير: يسمح Ingress بالتوجيه القائم على المسار/اسم المضيف مع دعم TLS، بينما يعرض NodePort ببساطة خدمة على منفذ ثابت.


السؤال 15​

ما هو Ingress مع pathType: Prefix؟

عرض التفسير

الإجابة الصحيحة: Ingress حيث يتطابق المسار إذا بدأت URL بالبادئة المحددة

التفسير: pathType: Prefix يعني أن المسار يتطابق إذا بدأت URL بالبادئة (على سبيل المثال: /api يتطابق مع /api/v1/users).


السؤال 16​

ما هي الأمر لرؤية Pods الخاصة بـ Ingress Controller؟

عرض التفسير

الإجابة الصحيحة: kubectl get pods -n ingress-nginx (أو namespace حيث تم تثبيت Ingress Controller)

التفسير: تعمل Ingress Controllers عادةً في namespace مخصص (مثل ingress-nginx). استخدم -n لتحديد namespace.


السؤال 17​

ما هو Ingress مع عدة أسماء مضيفين؟

عرض التفسير

الإجابة الصحيحة: Ingress يمكنه التوجيه إلى خدمات مختلفة بناءً على اسم المضيف في الطلب

التفسير: يمكن أن يحتوي Ingress على عدة قواعد بأسماء مضيفين مختلفة، مما يسمح بالتوجيه إلى خدمات مختلفة حسب نطاق الطلب (مثل: app1.example.com، app2.example.com).


السؤال 18​

ما هي الممارسة الجيدة لعرض عدة تطبيقات عبر Ingress؟

عرض التفسير

الإجابة الصحيحة: استخدام Ingress مع عدة قواعد بناءً على اسم المضيف أو المسار

التفسير: Ingress واحد مع عدة قواعد أكثر كفاءة وأسهل في الإدارة من عدة Ingress، مما يسمح بعرض عدة خدمات عبر نقطة دخول واحدة.


السؤال 19​

ما هو Ingress مع annotation ssl-redirect؟

عرض التفسير

الإجابة الصحيحة: Ingress يقوم بإعادة توجيه تلقائي لحركة المرور HTTP إلى HTTPS

التفسير: annotation nginx.ingress.kubernetes.io/ssl-redirect: "true" يجبر إعادة توجيه HTTP إلى HTTPS لتحسين الأمان.


السؤال 20​

ما الفرق بين Ingress وService Mesh؟

عرض التفسير

الإجابة الصحيحة: Ingress يدير حركة المرور الواردة HTTP/HTTPS، Service Mesh يدير الاتصال بين الخدمات مع الرصد والأمان

التفسير: Ingress مخصص لحركة المرور الواردة الخارجية، بينما Service Mesh (مثل Istio) يدير الاتصال بين الخدمات المصغرة مع mTLS، الرصد، والتحكم في حركة المرور.


السؤال 21​

ما هو Ingress مع خدمة backend؟

عرض التفسير

الإجابة الصحيحة: Ingress يقوم بتوجيه حركة المرور إلى خدمة Kubernetes محددة

التفسير: كل قاعدة في Ingress تحدد خدمة backend التي تستقبل حركة المرور المطابقة لاسم المضيف/المسار في القاعدة.


السؤال 22​

ما هي الأمر لاختبار Ingress محليًا؟

عرض التفسير

الإجابة الصحيحة: curl -H "Host: [hostname]" http://[ingress-ip] أو استخدام port-forward إلى Ingress Controller

التفسير: لاختبار Ingress، استخدم curl مع header Host لتحديد اسم المضيف، أو استخدم kubectl port-forward للوصول إلى Ingress Controller محليًا.


السؤال 23​

ما هو Ingress مع defaultBackend؟

عرض التفسير

الإجابة الصحيحة: Ingress يحدد خدمة افتراضية للطلبات التي لا تتطابق مع أي قاعدة

التفسير: defaultBackend يسمح بتحديد خدمة تستقبل حركة المرور التي لا تتطابق مع أي قاعدة، وهو مفيد لصفحة 404 مخصصة.


السؤال 24​

ما هي الممارسة الجيدة لإدارة شهادات TLS مع Ingress؟

عرض التفسير

الإجابة الصحيحة: استخدام cert-manager لإدارة الشهادات تلقائيًا مع Let's Encrypt

التفسير: cert-manager يقوم بأتمتة الحصول على الشهادات، تجديدها وإدارتها، مما يلغي العمل اليدوي ويضمن شهادات صالحة.


السؤال 25​

ما هو Ingress مع CORS (Cross-Origin Resource Sharing)؟

عرض التفسير

الإجابة الصحيحة: Ingress مكون مع annotations للسماح بالطلبات عبر الأصول

التفسير: تسمح annotations CORS (مثل nginx.ingress.kubernetes.io/enable-cors) بتكوين رؤوس CORS للسماح بالطلبات من نطاقات مختلفة.


السؤال 26​

ما الفرق بين Ingress وAPI Gateway؟

عرض التفسير

الإجابة الصحيحة: Ingress مخصص للتوجيه HTTP/HTTPS الأساسي، API Gateway يوفر ميزات متقدمة (تحديد معدل، مصادقة، تحويل)

التفسير: يوفر Ingress توجيهًا أساسيًا، بينما يوفر API Gateway (مثل Kong، Ambassador) ميزات متقدمة مثل تحديد معدل، مصادقة، تحويل الطلبات، إلخ.


السؤال 27​

ما هو Ingress مع rate limiting؟

عرض التفسير

الإجابة الصحيحة: Ingress مكون مع annotations لتحديد عدد الطلبات لكل عميل

التفسير: تسمح annotations لتحديد معدل (مثل nginx.ingress.kubernetes.io/limit-rps) بتحديد عدد الطلبات في الثانية لحماية backends.


السؤال 28​

ما هي الأمر لرؤية سجلات Ingress Controller؟

عرض التفسير

الإجابة الصحيحة: kubectl logs -n ingress-nginx [ingress-controller-pod-name]

التفسير: توجد سجلات Ingress Controller في Pods الخاصة بـ Ingress Controller. استخدم kubectl logs مع namespace واسم Pod.


السؤال 29​

ما هو Ingress مع session affinity؟

عرض التفسير

الإجابة الصحيحة: Ingress مكون لتوجيه طلبات العميل نفسه إلى نفس Pod backend

التفسير: تضمن session affinity (الجلسات اللاصقة) أن طلبات العميل نفسه تذهب دائمًا إلى نفس Pod backend، وهو مفيد لجلسات التطبيق.


السؤال 30​

ما هي الممارسة الجيدة لعرض تطبيق في الإنتاج مع Ingress؟

عرض التفسير

الإجابة الصحيحة: استخدام HTTPS مع cert-manager، تكوين ssl-redirect، واستخدام annotations للأمان

التفسير: في الإنتاج، استخدم دائمًا HTTPS مع cert-manager للشهادات التلقائية، قم بتفعيل ssl-redirect، وقم بتكوين annotations الأمان المناسبة.


نتيجة الاختبار​

تهانينا على إكمال اختبار الوحدة 8!

النتيجة:

  • 25-30 إجابة صحيحة: ممتاز! أنت تتقن Ingress و Load Balancing.
  • 20-24 إجابة صحيحة: جيد جدًا! راجع المفاهيم التي واجهت فيها صعوبة.
  • 15-19 إجابة صحيحة: جيد! راجع الفصول حول Ingress و Ingress Controllers.
  • أقل من 15: يوصى بمراجعة الوحدة قبل المتابعة.

تم إنشاء الاختبار في: ديسمبر 2024