اثنا عشر سؤالًا تغطي الدورة كلها. احصل على 70% أو أكثر لتنجح وتفتح شهادتك. يمكنك إعادته متى شئت.
أنهِ كل الدروس لتحصل على الشهادة، ويمكنك خوض الاختبار في أي وقت.
السؤال 1 من 12
يريد مهندس في Skylane بناءً أسرع لـ notes-api في الـ CI. البناء يعمل على runners جديدة بـ cache فارغ لـ Docker، والـ Dockerfile مرتّب بشكل صحيح أصلًا. ما الذي يساعد أكثر؟
npm ci
npm install
--cache-to
--cache-from
--no-cache
RUN
السؤال 2 من 12
أي سطر في الـ Dockerfile يعرّض بيانات اعتماد للخطر رغم حذفها لاحقًا في البناء نفسه؟
RUN --mount=type=secret,id=npmrc,target=/root/.npmrc npm ci
COPY package.json package-lock.json ./
USER node
COPY .npmrc .
RUN rm .npmrc
السؤال 3 من 12
الـ image الخاصة بـ notes-api تعمل بـ USER node، والـ securityContext في الـ Deployment يضبط runAsNonRoot: true. تفشل الـ Pods بـ CreateContainerConfigError. ما أنظف حل؟
runAsNonRoot: true
CreateContainerConfigError
USER 1000
runAsUser: 1000
runAsNonRoot
allowPrivilegeEscalation: true
السؤال 4 من 12
بيئة Compose تبدأ بشكل موثوق على حاسوبك، لكن في الـ CI تعمل اختبارات التكامل أحيانًا قبل أن يجهز الـ API. أي تغيير يحلّ ذلك دون تخمين؟
sleep 30
restart: always
docker compose up -d --wait
السؤال 5 من 12
ترث Deployment بلا readiness probe ومع إعدادات التحديث المتدرّج الافتراضية. يخرج إصدار فيه عنوان قاعدة بيانات معطوب. ماذا يحدث؟
maxSurge
السؤال 6 من 12
لدى notes-api request للمعالج قدره 500m ولا حدّ للمعالج، وrequest وحدّ للذاكرة قدرهما 512Mi. تحت قفزة في الحركة يصل استهلاكه للمعالج إلى 1.5 نواة على node فيه سعة خاملة. ماذا يحدث؟
السؤال 7 من 12
أي manifest صالح في Kubernetes الحالي؟
apiVersion: extensions/v1beta1
kind: Deployment
apiVersion: autoscaling/v1
metrics
behavior
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
apiVersion: apps/v1
السؤال 8 من 12
أضاف notes-api 1.5.0 عمودًا، وكوده يكتب في العمودين القديم والجديد معًا. في 1.5.0 خلل، فتشغّل kubectl rollout undo. لماذا هذا التراجع آمن؟
kubectl rollout undo
rollout undo
السؤال 9 من 12
الـ HPA الخاص بـ notes-api يستهدف استخدامًا للمعالج بنسبة 60% مع request للمعالج قدره 200m. أربعة Pods يبلغ متوسط كل منها 240m. كم نسخة تقريبًا سيريد الـ HPA؟
السؤال 10 من 12
الـ controller ingress-nginx الذي كان الـ cluster لديك يستخدمه تقاعد ولم يعد يتلقّى إصلاحات أمنية. ما الاتجاه الموصى به لإعدادات توجيه HTTP الجديدة؟
السؤال 11 من 12
Pod من notes-api يُظهر CrashLoopBackOff وLast State: Terminated, Exit Code: 137. والأمر kubectl logs --previous يعرض سجلات طلبات عادية، ثم لا شيء. ما السبب المرجّح والحل؟
CrashLoopBackOff
Last State: Terminated, Exit Code: 137
kubectl logs --previous
describe
OOMKilled
السؤال 12 من 12
أي مجموعة تعطي notes-api عمليات نشر دون توقّف؟
Recreate
/readyz
maxUnavailable: 25%
terminationGracePeriodSeconds
maxUnavailable: 0
preStop
replicas: 1
kubectl rollout restart
12 سؤالًا بلا إجابة