انتقل إلى المحتوى الرئيسي

الفصل 5.3 - الحقن في الـ Pods

أهداف التعلم​

في نهاية هذا الفصل، ستكون قادرًا على:

  • حقن ConfigMaps كمتغيرات بيئية
  • تركيب ConfigMaps كأحجام
  • استخدام Secrets بطريقة آمنة
  • فهم الطرق المختلفة للحقن
  • اختيار الطريقة المناسبة حسب حالة الاستخدام

نظرة عامة​

هناك عدة طرق لحقن ConfigMaps و Secrets في الـ Pods الخاصة بك. كل طريقة لها مزاياها وحالات الاستخدام الخاصة بها.


طرق الحقن​

1. المتغيرات البيئية​

من ConfigMap​

apiVersion: v1
kind: Pod
metadata:
name: configmap-env-pod
spec:
containers:
- name: app
image: nginx:1.20
env:
# الطريقة 1: مفتاح محدد
- name: DATABASE_URL
valueFrom:
configMapKeyRef:
name: app-config
key: database_url
# الطريقة 2: جميع المفاتيح
- name: CONFIGMAP_ENV
valueFrom:
configMapRef:
name: app-config
envFrom:
# الطريقة 3: جميع مفاتيح ConfigMap
- configMapRef:
name: app-config

من Secret​

env:
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
envFrom:
- secretRef:
name: db-secret

2. الأحجام​

ConfigMap كحجم​

apiVersion: v1
kind: Pod
metadata:
name: configmap-volume-pod
spec:
containers:
- name: app
image: nginx:1.20
volumeMounts:
- name: config
mountPath: /etc/config
readOnly: true
volumes:
- name: config
configMap:
name: app-config
# اختياري: تضمين مفاتيح معينة فقط
items:
- key: database_url
path: db-url
- key: log_level
path: log-level

Secret كحجم​

volumes:
- name: secrets
secret:
secretName: db-secret
defaultMode: 0400 # أذونات (قراءة فقط)

مثال كامل​

apiVersion: v1
kind: Pod
metadata:
name: full-example-pod
spec:
containers:
- name: app
image: my-app:1.0
# متغيرات بيئية من ConfigMap
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: app-config
key: log_level
# متغيرات بيئية من Secret
- name: DB_PASSWORD
valueFrom:
secretKeyRef:
name: db-secret
key: password
# حجم ConfigMap
volumeMounts:
- name: config
mountPath: /etc/config
- name: secrets
mountPath: /etc/secrets
readOnly: true
volumes:
- name: config
configMap:
name: app-config
- name: secrets
secret:
secretName: db-secret

الفروقات: env مقابل volumeMounts​

المتغيرات البيئية (env)​

المزايا:

  • سهل الاستخدام
  • يمكن الوصول إليه عبر $VARIABLE_NAME
  • جيد للقيم البسيطة

القيود:

  • لا توجد ملفات كاملة
  • حد الحجم

الأحجام​

المزايا:

  • ملفات كاملة
  • هيكل المجلدات
  • جيد لملفات التكوين

حالات الاستخدام:

  • ملفات التكوين (nginx.conf، إلخ.)
  • الشهادات
  • السكربتات

أفضل الممارسات​

ConfigMaps​

  • استخدام الأحجام لملفات التكوين
  • استخدام env للقيم البسيطة
  • عدم تخزين البيانات الحساسة

Secrets​

  • دائمًا استخدام readOnly: true للأحجام
  • عدم تسجيل قيم secrets
  • استخدام أذونات مقيدة (defaultMode: 0400)

ملخص​

في هذا الفصل، تعلمت:

المتغيرات البيئية: env و envFrom
الأحجام: configMap و secret كأحجام
الطرق: valueFrom، configMapRef، secretRef
حالات الاستخدام: env للقيم البسيطة، الأحجام للملفات
الأمان: readOnly، أذونات مقيدة لـ secrets


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

الفصل 5.4: أفضل الممارسات
المختبر 5.1: إنشاء واستخدام ConfigMaps


الفصل تم إنشاؤه في: ديسمبر 2024