تخطَّ إلى المحتوى

☸️ شرح Kubernetes

فهم ConfigMaps و Secrets في Kubernetes

الدرس 22 من 35· ⏱ 1 دقائق قراءة

لا ينبغي تضمين الإعدادات وكلمات المرور داخل صور الحاويات. يفصل Kubernetes الإعداد عن الكود عبر ConfigMaps وSecrets. درس متوسّط يبني على الـ Pods.

🔒 مراجعة أمنية مطلوبة: يتناول هذا الدرس التعامل مع الأسرار؛ يخضع لمراجعة متخصّص قبل النشر.

لماذا نفصل الإعداد عن الكود؟

الصورة نفسها يجب أن تعمل في التطوير والإنتاج دون إعادة بناء؛ فقط الإعداد يتغيّر. فصل الإعداد يجعل تطبيقك محمولًا وقابلًا لإعادة الاستخدام.

ConfigMap — للإعدادات غير الحسّاسة

الـ ConfigMap يخزّن بيانات إعداد غير سرّية (مستوى السجلّات، عناوين الخدمات، الأعلام):

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  LOG_LEVEL: "info"
  APP_MODE: "production"

Secret — للبيانات الحسّاسة

الـ Secret مخصّص للبيانات الحسّاسة (كلمات المرور، المفاتيح، الرموز). يشبه ConfigMap في البنية لكنّه معدّ للأسرار.

⚠️ حقيقة أمنية جوهرية: قيم الـ Secret مُرمّزة بـ base64 فقط، وليست مشفّرة افتراضيًا. الترميز ليس تشفيرًا — يمكن فكّه بسهولة. لحماية حقيقية يجب تفعيل التشفير في الراحة (Encryption at Rest) وضبط صلاحيات الوصول. نفصّل ذلك في تخزين الأسرار بأمان.

كيف تستهلكها الـ Pods؟

بطريقتين رئيسيتين:

  • كمتغيّرات بيئة (Environment Variables): تُحقن القيم في بيئة الحاوية.
  • كملفّات عبر حجم (Volume): تظهر القيم كملفّات داخل الحاوية.

بهذا يقرأ تطبيقك إعداداته من البيئة أو الملفّات دون معرفة مصدرها.

متى تستخدم كلًّا منهما؟

البياناتالكائن
إعداد غير حسّاسConfigMap
كلمات مرور / مفاتيح / رموزSecret (مع تأمينه)

القاعدة: لا تضع سرًّا في ConfigMap أبدًا، ولا تعتمد على ترميز Secret كأنه حماية.

الخطوات التالية

تعلّم التعامل الآمن مع الأسرار في تخزين الأسرار بأمان في Kubernetes، وضبط الصلاحيات عبر RBAC.

شرح فهم ConfigMaps و Secrets في Kubernetes — Kubernetes بالعربي
فهم ConfigMaps و Secrets في KubernetesKubernetes بالعربي · The Code Fix

هل كان هذا الدرس مفيدًا؟