أفضل ممارسات الإعدادات
القاعدة الذهبية
Section titled “القاعدة الذهبية”لا تضع إعدادات البيئة داخل Image. Image يجب أن تكون قابلة للتشغيل في dev و staging و prod مع اختلاف الإعدادات فقط.
ConfigMap كـ environment variables
Section titled “ConfigMap كـ environment variables”envFrom: - configMapRef: name: app-configSecret كـ environment variables
Section titled “Secret كـ environment variables”env: - name: DB_PASSWORD valueFrom: secretKeyRef: name: db-secret key: DB_PASSWORDتركيب الإعدادات كملفات
Section titled “تركيب الإعدادات كملفات”volumeMounts: - name: config mountPath: /app/configvolumes: - name: config configMap: name: app-configSecrets ليست تشفيرا كاملا
Section titled “Secrets ليست تشفيرا كاملا”Secret في Kubernetes يحمي البيانات أفضل من ConfigMap، لكنه ليس وحده كافيا. تحتاج:
- RBAC مضبوط.
- عدم تخزين Secrets كنص صريح داخل Git.
- تفعيل encryption at rest في البيئة الحقيقية.
- استخدام External Secrets أو cloud secret manager عند الحاجة.
تحديث ConfigMap أو Secret
Section titled “تحديث ConfigMap أو Secret”إذا تغير ConfigMap، التطبيق قد لا يقرأ التغيير تلقائيا حسب طريقة الاستخدام. غالبا تحتاج restart للـ Pods:
kubectl rollout restart deployment/apiLab: فصل إعدادات التطبيق
الهدف: نقل APP_MODE إلى ConfigMap و DB_PASSWORD إلى Secret.
- أنشئ ConfigMap.
- أنشئ Secret.
- مرر الاثنين إلى Deployment.
- استخدم
kubectl execللتأكد من وجود environment variables.