‫اسمحوا لي أن أخبركم عن الجفاف والفرق ، وهي
‫أشياء جديدة.
‫آخر إصدارات Kubernetes تبدأ بـ 1. 13 لديها هذا الخيار
‫الجديد الذي يسمح لنا برؤية ما
‫سنغيره قبل أن نغيره.
‫لقد رأينا ذلك من قبل.
‫لقد عرضت عليك بعض الأمثلة في وقت سابق من الدورة.
‫لكن طريقة استخدامه مع الأمر application
‫جديدة وأفضل.
‫ما
‫كان لدينا في الماضي كان لدينا تجربة تجريبية ، ولكن كان ذلك
‫على العميل فقط. لم يتحدث العميل مع الخادم
‫ليقول مرحبًا ، هل هذه الموارد موجودة بالفعل؟
‫هل أحتاج إلى إعادة إنشائها ، أم سيتم تحديثها أو ما الذي
‫سيحدث؟ الصحيح.
‫هذا لم يحدث من قبل.
‫يوجد الآن خيار التشغيل الجاف للخادم
‫الذي سيرسل YAML الخاص بنا إلى الخادم ويقارنه
‫، واكتشف ما يجب أن يحدث بالفعل ثم أبلغ سطر
‫الأوامر بما سيتغير.
‫دعونا نرى ذلك في العمل.
‫أنا في دليل K8s YAML كما ناقشته سابقًا في محاضرة ، إذا
‫كنت في مستودع Docker Mastery ولم يكن لديك هذا الدليل
‫، فأنت بحاجة إلى إجراء git-pull
‫للحصول على آخر التحديثات.
‫هذا ملف رأيناه في محاضرة سابقة
‫، التطبيق. yml. هذه خدمة ، بالإضافة
‫إلى نشر ، في ملف واحد.
‫يتم إنشاء مصدرين تقنيًا بأمر تطبيق
‫واحد وهما مرتبطان.
‫تستخدم الخدمة محددًا لم
‫نتحدث عنه بعد. المحددات هي كيفية عثور كائن
‫واحد على الموارد التي يريد التحدث إليها أو القيام
‫بشيء ما بها.
‫تحتاج الخدمة إلى التحدث إلى البودات ، لذا فهي بحاجة إلى إيجاد
‫طريقة للوصول إليها.
‫يستخدم المحددات كمطابقة نمطية
‫بشكل أساسي لمطابقة تسميات المفاتيح
‫والقيم هناك. إذا قمت بالتشغيل الجاف التقليدي
‫هنا ، فكل ما سيفعله هو أن ينظر العميل إلى التطبيق ويقول ، نعم
‫، سأقوم بإنشاء هذه الكائنات.
‫حسنا. ستعود دائمًا وتقول تم إنشاؤها.
‫هذا لأن التطبيق ليس محددًا
‫جدًا. إذا كنت تستخدم تحديثًا أو
‫أمرًا إنشاء أو حذفًا ، والذي لا أشعر مرة
‫أخرى أنه سير عمل قائم على DevOps.
‫ستعمل هذه الأوامر فقط على تشغيل جاف وأنت تعلم أن
‫التحديث الذي سيقوله المرء نعم
‫، سيتم تحديث كلاهما. لكنها لا تعرف حقًا عن مجموعتك
‫، أليس كذلك. لم يتحدث إلى الخادم لمعرفة ذلك.
‫نريد تجربة التشغيل الجاف للخادم الذي يتم تمكينه
‫افتراضيًا على أي شيء 1. 13 وأحدث.
‫عندما أفعل ذلك ، فإنه سيتحدث إلى الخادم ويعطيني
‫استجابة مناسبة.
‫دعنا نمضي قدمًا وننشئ هذا.
‫سأقوم بإزالة التشغيل الجاف للخادم.
‫سيؤدي هذا إلى إنشاء مصدرين ، النشر
‫والخدمة.
‫الآن ، إذا قمت بالضغط على السهم لأعلى وعدت إلى التشغيل
‫الجاف للخادم ، فسترى أنه لم يتغير لكليهما.
‫إنه لا يخبرني بما تغير أو إذا كان
‫هناك شيء سيغير ما سيكون
‫عليه. إنه يخبرني فقط أنه سيتم تغيير
‫المورد أو عدم تغييره. إنه نوع من التبديل ، نعم أو لا.
‫ماذا عن الحصول على الفرق الفعلي بين ما
‫نريد أن نقدمه للخادم والوضع
‫الحالي لمواردنا.
‫هذا هو الأمر kubectl diff.
‫إذا قمت ببساطة بإعطائه فرقًا بدلاً من تطبيق
‫، فسوف يقارن YAML لدي بالمواصفات الموجودة
‫في الخوادم قيد التشغيل الآن.
‫تعود
‫هذه الحالة ، وستحدث فرقًا في ذلك. لنفعل ذلك.
‫لن يقول شيئًا لأنه لا يوجد فرق.
‫ولكن ماذا لو ذهبنا لتغيير YAML؟
‫ماذا لو قمت بتغيير النسخ المتماثلة إلى نسختين؟
‫ثم أقوم بإضافة تسمية في البيانات الوصفية وسأعطيها
‫شيئًا مثل ... شيء مثل.
‫خوادم dmz.
‫انا صنعته. لا يهم حقًا.
‫ثم لدينا نسختين طبق الأصل.
‫إذا فعلت هذا الاختلاف نفسه ، فإنه يعود مع الإيجابيات
‫والسلبيات.
‫إذا كنت معتادًا على قراءة الاختلافات ، فهذا
‫منطقي تمامًا بالنسبة لك. إذا لم تكن معتادًا على الفرق ، فإن
‫الطرح يعني أن هذا الخط سيختفي.
‫ثم تضاف هذه السطور.
‫ثم هنا في الأسفل ، يظهر لك ما هو الخط وما
‫هو الحرف في السطر الذي تتم
‫إزالته.
‫يتم إضافة هذا.
‫إنها تحافظ على تنسيق YAML ، وهو أمر رائع.
‫إنه يتيح لنا معرفة حدوث تغييرات متعددة.
‫رائعة. بالطبع ، هذا لا يفعل شيئًا مثل
‫الكناري ، أو اختبار النشر أو أي شيء آخر.
‫إنه لا يحاول فعل الشيء ثم يرى
‫النتيجة. إنها في الحقيقة تبحث فقط
‫في المواصفات المسجلة ، والمواصفات التي لدينا على
‫قرصنا. تحقق من مزيد من
‫المعلومات حول ذلك على روابط الموارد.
‫إنها مقالة مدونة من فريق Kubernetes حول مستقبل
‫هؤلاء وكيف سيتم تشغيلهم عند خروجهم من الإصدار
‫التجريبي. تذكر أن هذه الميزات الآن تجريبية
‫، على الأقل في 1. 15 هم.
‫نأمل مع ذلك ، يمكنك إنشاء سير العمل الخاص بك لإنشاء
‫YAMLs من البداية ، وإدارة المواصفات
‫في YAMLs تلك ، ثم استخدام الأمر application مرارًا
‫وتكرارًا لإجراء تغييراتك.
‫هذه بنية تحتية أكثر ملاءمة لـ DevOps كنوع
‫رمز لطريقة القيام بذلك.
‫كل ما تفعله موثق ، ونأمل أن يكون في Git.
‫لذلك ، من المأمول أن تقوم بإجراء git-الالتزام لكل تغيير
‫تقوم به في YAML الخاص بك قبل نشره على الخادم.
‫ثم لديك تلك الوثائق الرائعة في Git ، بالإضافة
‫إلى الوثائق عندما تفعل شيئًا مثل الفرق لترى
‫ما لديك مقابل ما يتم تشغيله بالفعل.