إنشاء قوالب لموارد Kubernetes Secret
عرض كائنات Secret من دون كشف القيم
إنشاء قوالب لموارد Kubernetes Secret درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
يمكن لـ charts إنشاء Secrets
قد يحتاج chart أحيانًا إلى إنشاء كائن Kubernetes من نوع Secret بنفسه. وباتباع الأسلوب الصحيح، يمكنك إنشاء قالب له من دون تسريب القيمة.
بنية manifest الخاص بـ Secret
ليس Kubernetes Secret سوى manifest يحتوي على قسم data. ويجب أن تكون كل قيمة ضمن data نصًا مشفّرًا بترميز Base64.
apiVersion: v1
kind: Secret
metadata:
name: db-credentialsرمّز data باستخدام b64enc
ضمن data، ترمّز كل قيمة. إذ يحوّل مساعد Sprig b64enc سلسلة نصية عادية إلى صيغة Base64 التي يتوقعها Kubernetes.
data:
password: {{ .Values.password | b64enc }}استخدم stringData لتجاوز الترميز
فضّل stringData عندما تريد تجنّب استخدام b64enc يدويًا. إذ يرمّز Kubernetes هذه القيم نيابةً عنك من جهة الخادم.
stringData:
password: {{ .Values.password | quote }}يظل الترميز غير سري
تذكّر أن القيمة التي تُنشأ في manifest ليست سوى قيمة مُرمّزة. ويمكن لأي شخص قادر على قراءتها فك ترميزها فورًا.
لا تطبعها في NOTES
من التسريبات الشائعة ترديد القيمة في NOTES.txt. اطبع بدلًا من ذلك طريقة جلبها، كي لا يظهر النص العادي في مخرجات الأوامر.
أعد استخدام Secret موجود
والأفضل من ذلك أن تتيح للمستخدمين الإشارة إلى existingSecret أنشأوه خارج chart، حتى لا يستلم chart الخاص بك القيمة أصلًا.
{{- if not .Values.existingSecret }}
kind: Secret
{{- end }}استخدم require لقيمة إلزامية
عندما يكون السر مطلوبًا فعلًا، توقف الدالة required إنشاء القالب برسالة واضحة إذا كانت القيمة مفقودة.
password: {{ required "password is required" .Values.password | b64enc }}اربطه بدلًا من تضمينه
اجعل pods تقرأ Secret من خلال secretKeyRef أو وحدة تخزين مركّبة، بدلًا من تضمين القيمة الحرفية في متغير بيئة الحاوية.
valueFrom:
secretKeyRef:
name: db-credentials
key: passwordأضف تعليقًا للتدوير
لإعادة تشغيل pods عند تغيّر Secret، أضف تعليقًا يتضمن checksum إلى عملية النشر، بحيث تؤدي القيمة الجديدة إلى إعادة التشغيل.
checksum/secret: {{ include (print $.Template.BasePath "/secret.yaml") . | sha256sum }}اجمع بين الاستراتيجيات
تجمع charts الأقوى بين الأفكار: تفضّل الأسرار الموجودة أو الخارجية، ولا ترمّز إلا عند الحاجة، ولا تردد القيمة أبدًا.
تحقق سريع
كيف تجعل Kubernetes يتولى ترميز Base64 نيابةً عنك؟
مراجعة
تعلّمت إنشاء قالب Secret بأمان: استخدم b64enc أو stringData للترميز، وفضّل الأسرار الموجودة، ولا تطبع القيمة أبدًا. 🎉
الأسئلة الشائعة
هل درس «إنشاء قوالب لموارد Kubernetes Secret» مجاني؟
نعم — نص درس «إنشاء قوالب لموارد Kubernetes Secret» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.
ماذا ستتعلم في «إنشاء قوالب لموارد Kubernetes Secret»؟
عرض كائنات Secret من دون كشف القيم تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟
لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «إنشاء قوالب لموارد Kubernetes Secret»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟
نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- لماذا لا تنتمي Secrets إلى values.yaml
- تشفير القيم باستخدام helm-secrets وSOPS
- جلب الأسرار من External Secrets Operators
- إنشاء قوالب لموارد Kubernetes Secret