اختبار الوحدة 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