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

Kubernetes: أين يعيش كل متغير من متغيرات الإعداد؟

Kubernetes
Kubernetes: أين يعيش كل متغير من متغيرات الإعداد؟

النشر على Kubernetes أجبرني على توضيح سؤال بسيط: أين يعيش كل متغير من متغيرات الإعداد؟ 🔑

قاعدتي، مطبَّقة على هذا الموقع (Symfony + Next.js على k8s):

  • 🔹 Secret في k8s: كل ما هو حسّاس ويُقرأ وقت التشغيل. بيانات SMTP، مفاتيح API السرّية… يستلمها الـpod كمتغيرات بيئة — لا شيء في الصورة، ولا شيء في المستودع.
  • 🔹 ConfigMap: الإعدادات غير الحسّاسة التي تتغير حسب البيئة.
  • 🔹 Build-arg في Docker: ما يجب تثبيته في الأداة لحظة البناء — عادةً متغيرات NEXT_PUBLIC_* لواجهة Next.js، المُجمَّعة داخل حزمة JS.

السؤال الواجب طرحه لكل متغير: «مَن يستهلكه، ومتى؟» الخادم وقت التشغيل → Secret/ConfigMap. متصفح الزائر → يجب أن يكون حاضرًا وقت البناء.

الخطأ في الاختيار يعني إما مفتاحًا سريًا مكشوفًا في حزمة عامة، أو واجهة أمامية تشير إلى localhost في الإنتاج. وكلاهما يُدفع ثمنه غاليًا. 😬

شاهد المنشور الأصلي على LinkedIn