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

أفضل ممارسات الإعدادات

لا تضع إعدادات البيئة داخل Image. Image يجب أن تكون قابلة للتشغيل في dev و staging و prod مع اختلاف الإعدادات فقط.

envFrom:
- configMapRef:
name: app-config
env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: DB_PASSWORD

تركيب الإعدادات كملفات

Section titled “تركيب الإعدادات كملفات”
volumeMounts:
- name: config
mountPath: /app/config
volumes:
- name: config
configMap:
name: app-config

Secret في Kubernetes يحمي البيانات أفضل من ConfigMap، لكنه ليس وحده كافيا. تحتاج:

  • RBAC مضبوط.
  • عدم تخزين Secrets كنص صريح داخل Git.
  • تفعيل encryption at rest في البيئة الحقيقية.
  • استخدام External Secrets أو cloud secret manager عند الحاجة.

إذا تغير ConfigMap، التطبيق قد لا يقرأ التغيير تلقائيا حسب طريقة الاستخدام. غالبا تحتاج restart للـ Pods:

Terminal window
kubectl rollout restart deployment/api

Lab: فصل إعدادات التطبيق

المستوى: مبتدئ الوقت: 20 دقيقة الأدوات: kubectl

الهدف: نقل APP_MODE إلى ConfigMap و DB_PASSWORD إلى Secret.

  1. أنشئ ConfigMap.
  2. أنشئ Secret.
  3. مرر الاثنين إلى Deployment.
  4. استخدم kubectl exec للتأكد من وجود environment variables.