تخصيص صورة الحاوية بالمعلمات
اربط مستودع الصورة ووسمها بالقيم
تخصيص صورة الحاوية بالمعلمات درس مجاني في Helm Academy على CoddyKit. هذا هو الدرس 2 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Helm Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Helm Academy 4 دروس في المجموع.
لماذا نضبط image كقيمة قابلة للتهيئة
تُبقي image المحددة مباشرةً كل مستخدم مرتبطًا بإصدار واحد. يتيح ربط image بـ values للمستخدمين اختيار المستودع والوسم اللذين يحتاجونهما.
افصل المستودع عن الوسم
تخزّن المخططات image عادةً في حقلين: repository وtag. ويسهّل فصلهما تحديث الإصدارات بطريقة واضحة.
# values.yaml
image:
repository: nginx
tag: "1.27"اقرأ القيم المتداخلة
يمكنك الوصول إلى المفاتيح المتداخلة بربط النقاط. هنا يتنقل .Values.image.repository داخل خريطة image التي عرّفتها للتو.
image: {{ .Values.image.repository }}اجمع المستودع والوسم
يتكوّن مرجع image من المستودع، ثم نقطتين، ثم الوسم. أنشئه داخل القالب ليكون السطر الناتج سلسلة نصية واحدة صالحة.
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"ضع الوسم بين علامتي اقتباس دائمًا
قد يقرأ YAML وسمًا مثل 1.27 على أنه رقم. ضع الوسوم بين علامتي اقتباس في values كي تبقى سلاسل نصية ولا تفقد الصفر الأخير.
tag: "1.27.0"وفّر وسمًا افتراضيًا مناسبًا
توفّر الدالة default قيمة بديلة عندما تكون القيمة فارغة. ومن الأنماط الشائعة استخدام appVersion في المخطط بوصفه الوسم الافتراضي.
{{ .Values.image.tag | default .Chart.AppVersion }}أتِح سياسة سحب image
اسمح للمستخدمين بالتحكم في وقت إعادة Kubernetes سحب image من خلال ضبط imagePullPolicy كقيمة قابلة للتهيئة أيضًا. وتُعد IfNotPresent قيمة افتراضية آمنة.
imagePullPolicy: {{ .Values.image.pullPolicy }}حدّد سياسة السحب افتراضيًا
حدّد القيمة الافتراضية لسياسة السحب في values.yaml كي يعمل التثبيت من دون أي تجاوزات. وسيظل بإمكان المستخدمين تغييرها عند الحاجة.
image:
pullPolicy: IfNotPresentكتلة الحاوية الكاملة
أصبحت الحاوية الآن مدفوعة بالكامل بالبيانات: تأتي image وسياسة السحب كلتاهما من .Values.image، ولم تعد هناك قيم ثابتة في القالب.
containers:
- name: app
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
imagePullPolicy: {{ .Values.image.pullPolicy }}تجاوز القيمة وقت التثبيت
يمكن للمستخدمين تعديل قيمة متداخلة واحدة باستخدام --set. وتطابق النقاط في المفتاح شجرة values مباشرةً، من دون الحاجة إلى تعديل الملفات.
helm install web . --set image.tag=1.28تحقق من image الناتجة
اعرض القالب مع تجاوز إحدى القيم للتأكد من أن الربط يعمل من البداية إلى النهاية. يجب أن يُظهر الناتج الوسم الذي اخترته في سطر image.
helm template web . --set image.tag=1.28تحقق سريع
تريد التثبيت باستخدام وسم image مختلف من دون تعديل الملفات. ما الطريقة التي تحقق ذلك؟
مراجعة: image قابلة للتهيئة
قسّمت image إلى repository وtag، وأضفت سياسة سحب، وسمحت للمستخدمين بتجاوز كل منهما باستخدام --set. ضع الوسوم بين علامتي اقتباس لتجنب المشكلات.
الأسئلة الشائعة
هل درس «تخصيص صورة الحاوية بالمعلمات» مجاني؟
نعم — نص درس «تخصيص صورة الحاوية بالمعلمات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Helm Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Helm Academy 4 دروس في المجموع.
ماذا ستتعلم في «تخصيص صورة الحاوية بالمعلمات»؟
اربط مستودع الصورة ووسمها بالقيم تتمرن على Helm Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Helm Academy؟
لا تُشترط خبرة سابقة. Helm Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 2 من أصل 4.
كم من الوقت يستغرق درس «تخصيص صورة الحاوية بالمعلمات»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Helm Academy هذا؟
نعم. كل درس في Helm Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- قالب Deployment بسيط
- تخصيص صورة الحاوية بالمعلمات
- إضافة قالب Service
- تثبيت Chart وتطويرها تكراريًا