0Pricing
DevOps Bootcamp · درس

ConfigMaps للإعدادات

افصل إعدادات التطبيق عن صور الحاويات باستخدام ConfigMaps

ConfigMaps للإعدادات درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

مقدمة إلى ConfigMaps

غالبًا ما تحتاج التطبيقات إلى بيانات إعداد، مثل سلاسل الاتصال بقاعدة البيانات أو أعلام الميزات.

قد يؤدي تضمين هذه المعلومات مباشرةً في صور الحاويات إلى جعلها جامدة وصعبة التحديث.

توفّر ConfigMaps طريقة لفصل إعدادات تطبيقكم غير الحساسة ومركزتها خارج التطبيق، مع الحفاظ على مرونة الصور.

ما المقصود بـ ConfigMap؟

إن ConfigMap هو كائن في Kubernetes يُستخدم لتخزين بيانات غير حساسة في أزواج مفتاح-قيمة.

يمكنكم اعتباره مكانًا مركزيًا لإعدادات التطبيق، بحيث تتمكن Pods من الوصول إليها.

  • فصل الإعدادات: يفصل الإعدادات عن شيفرة التطبيق.
  • المرونة: يتيح تغيير الإعدادات بسهولة دون إعادة بناء الصور.
  • قابلية النقل: يسهّل نقل التطبيق بين البيئات ذات الإعدادات المختلفة.

إنشاء ConfigMaps: بالطريقة الأمرية

يمكنكم إنشاء ConfigMap بسرعة مباشرةً من سطر الأوامر باستخدام kubectl create configmap.

تُعد هذه الطريقة مناسبة للإعدادات البسيطة التي تُستخدم مرة واحدة أو للاختبار السريع.

لننشئ ConfigMap باسم my-app-config مع إعداد لمستوى السجل.

kubectl create configmap my-app-config \
  --from-literal=log_level=INFO

فحص ConfigMap

بعد إنشاء ConfigMap، يمكنكم عرض تفاصيلها والتحقق من محتوياتها.

استخدموا kubectl get مع الخيار -o yaml لعرض تعريف YAML الكامل، بما في ذلك البيانات المخزنة فيها.

kubectl get configmap my-app-config -o yaml

ConfigMap تصريحية (YAML)

بالنسبة إلى بيئات الإنتاج والتحكم في الإصدارات، يُعد تعريف ConfigMaps باستخدام بيانات YAML الوصفية ممارسةً قياسية.

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

إليكم مثال YAML لإعدادات لعبة:

apiVersion: v1
kind: ConfigMap
metadata:
  name: game-config
data:
  game.properties: |
    level=easy
    player_limit=10
  ui.properties: |
    theme=dark
    language=en

تطبيق ConfigMap من YAML

لإنشاء ConfigMap باسم game-config، احفظوا محتوى YAML من المشهد السابق في ملف (مثل game-config.yaml).

ثم استخدموا kubectl apply -f لنشرها في cluster.

# Save the YAML to game-config.yaml
kubectl apply -f game-config.yaml
kubectl get configmap game-config -o yaml

ConfigMaps كمتغيرات بيئية

تتمثل إحدى الطرق الشائعة لاستهلاك Pod لبيانات ConfigMap في حقنها كمتغيرات بيئية.

يمكنكم تحديد مفاتيح فردية لإتاحتها، أو استخدام envFrom لإتاحة جميع أزواج المفتاح-القيمة من ConfigMap.

وهذا مثالي لإعدادات التطبيق البسيطة.

apiVersion: v1
kind: Pod
metadata:
  name: my-env-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo Log Level: $LOG_LEVEL && sleep 3600"]
    env:
    - name: LOG_LEVEL
      valueFrom:
        configMapKeyRef:
          name: my-app-config
          key: log_level

عرض توضيحي: Pod بإعدادات بيئية

لنشغّل تعريف Pod لرؤية متغير البيئة LOG_LEVEL أثناء عمله.

احفظوا YAML الخاص بـ Pod في env-pod.yaml، وطبّقوه، ثم تحققوا من سجلات Pod.

# Save Pod YAML to env-pod.yaml
kubectl apply -f env-pod.yaml
kubectl logs my-env-pod

# Clean up
kubeclt delete pod my-env-pod

ConfigMaps كوحدات تخزين مركّبة

بالنسبة إلى التطبيقات التي تتوقع ملفات إعداد (مثل nginx.conf وapplication.properties)، يمكنكم تركيب ConfigMap كوحدة تخزين.

يصبح كل زوج مفتاح-قيمة في ConfigMap ملفًا داخل مسار التركيب المحدد في الحاوية.

apiVersion: v1
kind: Pod
metadata:
  name: my-volume-pod
spec:
  containers:
  - name: my-container
    image: busybox
    command: ["sh", "-c", "echo 'Contents of game.properties:' && cat /etc/config/game.properties && sleep 3600"]
    volumeMounts:
    - name: config-volume
      mountPath: /etc/config
  volumes:
  - name: config-volume
    configMap:
      name: game-config

عرض توضيحي: Pod بإعداد مركّب

والآن، لننشر Pod يركّب ConfigMap game-config كوحدة تخزين.

احفظوا YAML الخاص بـ Pod في volume-pod.yaml، وطبّقوه، وافحصوا السجلات لرؤية محتوى الملف المركّب.

# Save Pod YAML to volume-pod.yaml
kubectl apply -f volume-pod.yaml
kubectl logs my-volume-pod

# Clean up
kubeclt delete pod my-volume-pod

تحقق سريع: ConfigMaps

أي العبارات التالية حول Kubernetes ConfigMaps صحيحة؟

مراجعة: ConfigMaps

أحسنتم! لقد تعلّمتم كيف تساعد ConfigMaps في إدارة الإعدادات في Kubernetes:

  • الغرض: تخزين بيانات الإعداد غير الحساسة في أزواج مفتاح-قيمة.
  • الإنشاء: بطريقة أمرية باستخدام kubectl create أو بطريقة تصريحية باستخدام YAML.
  • الاستهلاك: كمتغيرات بيئية أو ملفات مركّبة داخل Pods.
  • الفائدة: فصل الإعدادات عن شيفرة التطبيق، مما يعزّز المرونة.

بعد ذلك، سنستكشف كيفية التعامل مع المعلومات الحساسة بأمان باستخدام Kubernetes Secrets!

الأسئلة الشائعة

هل درس «ConfigMaps للإعدادات» مجاني؟

نعم — نص درس «ConfigMaps للإعدادات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «ConfigMaps للإعدادات»؟

افصل إعدادات التطبيق عن صور الحاويات باستخدام ConfigMaps تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «ConfigMaps للإعدادات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. ConfigMaps للإعدادات
  2. Secrets للبيانات الحساسة
  3. وحدات التخزين الدائمة ومطالباتها
  4. StorageClasses والتوفير الديناميكي
← العودة إلى DevOps Bootcamp