‫نظرًا للمرونة الهائلة التي نتمتع بها مع
‫Kubernetes ، هناك الكثير من الأساليب لكيفية
‫أداء عملك في نظام مجموعة Kubernetes.
‫لقد سمعتني أتحدث عن ذلك من قبل ، صحيح.
‫لقد أخبرتك أن هناك طرقًا مختلفة لتلائم سير
‫عملك ، وأنه يمكنك استخدام أوامر مختلفة
‫بطرق مختلفة. لذلك ، قد يكون ذلك صعبًا عندما
‫تحاول تعليمه لأن الناس يريدون حقًا معرفة كيف يفترض
‫أن يستخدموه. مثل ما هي افضل طريقه؟
‫ما هي أفضل الممارسات؟ هذا صعب لأنه يعتمد
‫حقًا على ما تريده منه.
‫إنه نظام قديم غير جذاب.
‫لذلك ، هناك العديد من الطرق المختلفة للقيام بالأشياء.
‫هذا هو المكان الذي أحاول فيه تقسيم ذلك.
‫لذلك ، هذا واحد مهم للغاية.
‫ولكن هذا كله مجرد شريحة تعلم.
‫سوف أتحدث إليك لبضع دقائق لمحاولة تفصيل
‫هذه المفاهيم وتطبيق ما تعنيه على Kubernetes
‫على وجه التحديد.
‫قبل أن نصل إلى الأساليب الموصى بها ، سيكون هناك في
‫الأساس ثلاث استراتيجيات موصى بها لكيفية
‫استخدام Kubernetes.
‫هذا هو المكان الذي أحتاج فيه إلى تفصيل بعض
‫هذه المصطلحات حتى تعرف ما هي المحاضرة التالية.
‫سترى هذا في الكثير من منشورات المدونة
‫وفي الوثائق. الأمر الحتمي مقابل التصريحي.
‫أفضل طريقة لوصفها ، فيما يتعلق بـ Kubernetes ،
‫هي النسخ الاحتياطي وقول ما يعنيه
‫من حيث البرنامج.
‫عندما نكتب برنامجًا بشكل إلزامي ، فإننا
‫نركز على كيفية تشغيل هذا البرنامج ، كل خطوة
‫، بالترتيب ، واحدة تلو الأخرى.
‫عندما نتحدث عن نهج تصريحي للبرمجيات
‫، فإننا نصف أكثر حول ما يجب أن تحققه.
‫ما هي أهدافه النهائية؟
‫نحن لا نهتم كثيرًا بكيفية وصولها إلى هناك فقط
‫حتى تصل إلى هناك. لنجرب القياس.
‫تخيل أنك تريد فنجانًا من القهوة.
‫عندما أستيقظ كل صباح ، أبحث عن
‫الكوب الأول. إذا كنت سأفعل ذلك بنفسي ، فسوف يتعين
‫علي القيام بذلك بشكل إلزامي.
‫سأفكر في غلي بعض الماء.
‫ما هي الخطوة التالية؟ حسنًا ، أحتاج إلى بعض حبوب البن.
‫ثم يجب أن أطحن تلك الفاصوليا. كم بالضبط
‫احتاج؟ ما هي كمية الماء التي أسكبها فوق تلك
‫الحبوب للحصول على فنجان قهوة مثالي ، وما إلى ذلك ، بشكل صحيح.
‫أنا أمر بكل خطوة ، وأفكر في كيفية القيام بذلك
‫، خطوة بخطوة.
‫هذا أمر حتمي. عندما تنظر إلى Kubernetes ،
‫سنتحدث عن ذلك في ثانية.
‫الوضع التعريفي. فكر في الأمر على أنه ربما
‫أكون في مقهى وأتحدث إلى باريستا.
‫أنا ببساطة أسألهم.
‫أود شرب فنجان من القهوة.
‫وظيفتي الوحيدة هي طلب فنجان القهوة
‫والأمر متروك لهم لمعرفة ذلك.
‫هل أحتاج إلى صنعه من الصفر؟ هل يوجد واحد مصنوع بالفعل
‫في القدر؟ أم أن القدر قديم جدا؟
‫يمكنهم القيام به... يستطيعون... ربما يتعين عليهم إعادة
‫المحاولة ثلاث مرات لإعداد فنجان القهوة لأنهم أفسدوا
‫الأمر. هذا جيّد.
‫أنا لا أسأل كيف صنعوها.
‫أطلب منهم أن يحضروا لي فنجانًا من القهوة.
‫دعنا نطبق هذا على الأوامر التي ستستخدمها
‫في Kubernetes. دعنا نركز على الأمر
‫، وهو ما كنت تتعلمه إلى حد كبير حتى
‫الآن لأنه السبيل لبدء تعلم أي أداة أمر
‫حتمي. ستفعل هذه الأشياء بالترتيب
‫الذي يجب القيام به ، وأنت تعطيه تعليمات واضحة حول
‫كيفية القيام بذلك.
‫هذه الأوامر ، مثل kubectl run ، وإنشاء النشر
‫والتحديث ، والتي لم نقم بتغطيتها أو تحريرها بعد.
‫هذه هي الأنواع المختلفة من الأوامر
‫التي ستجعلك تبدأ في حالة تعرفها.
‫عند استخدام أمر إنشاء النشر ، فأنت
‫تعلم أن النشر لم يتم إنشاؤه بعد.
‫وبالتالي ، فأنت تستخدم الإنشاء الصحيح.
‫إذا كنت تريد تحديث شيء ما أو تعديله ، فأنت تستخدم هذا الأمر
‫بشكل صريح للقيام بذلك.
‫الشيء الجميل هنا بالنسبة لسطر الأوامر والكتابة في CLI هو
‫أنه يتم استخدام أوامر مختلفة لأنواع مختلفة من الإجراءات
‫، سواء كانت الإنشاء أو التحديث أو الحذف.
‫من الأسهل على أدمغتنا تذكرها لأننا نعرف الإجراء
‫الذي نتخذه.
‫فقط تذكر أن الأمر يصبح أسهل عندما
‫تعرف بالفعل حالة الكائن أو المورد ، وتبدأ
‫للتو في استخدام الأدوات.
‫لذا ، فأنت تريد أن تفكر صراحة ، حسنًا ، أحتاج إلى إنشاء خدمة
‫ويجب أن تكون هذه الخدمة بمثابة موازن تحميل.
‫كما تعلمون، هذا النوع من الشيء. بعد ذلك ، يسهل علينا في عقولنا
‫البشرية كتابة هذه الأشياء في CLI.
‫ليس من السهل للأسف
‫أتمتة. يعد هذا أحد أكبر عيوب هذا
‫النوع من العمل هو أنه من الصعب حقًا
‫الحصول على برنامج نصي أو أداة آلية للتعامل
‫تلقائيًا مع ، هل هذا تحديث تريده؟
‫أم أن هذا خلق؟
‫أم أن هذا حذف؟ كما تعلم ، ماذا
‫علي أن أفعل هنا؟ من الصعب علينا أتمتة هذا النوع
‫من العمل. إنه سهل في رؤوسنا.
‫من السهل علينا الكتابة في CLI. من الصعب علينا أتمتة.
‫تذكر ، التصريحي يعني أننا لا نعرف الدولة حقًا.
‫تذكر القهوة. لا أعرف ما إذا كان لديهم
‫قهوة أم لا. قد يكون لديهم بالفعل بعض. قد يضطرون إلى
‫صنع بعض من الصفر.
‫لا اعرف الدولة.
‫أنا فقط أعرف النتيجة النهائية التي أريدها.
‫هذا مناسب حقًا للنموذج التصريحي.
‫بعض الفوائد هنا بالنسبة لنا ، وللأتمتة
‫، هي أن نفس الأمر ، عادةً ما ستستخدم الأمر application
‫، kubectl application.
‫يمكن استخدام نفس الأمر بغض النظر عما
‫إذا كنا نقوم بإنشاء موارد أو تحديثها
‫أو حتى حذفها. إذا بدأت في النظر إلى YAML ،
‫فسنصل إليه هنا بعد دقيقة.
‫يمكن أن يكون YAML إما في ملف واحد.
‫يمكنك تجميع الكثير من أنواع الموارد
‫المختلفة في YAML واحد. أو يمكنك تقسيمهم إلى كائن
‫واحد في كل ملف YAML في دليل واحد ، ويمكنك استخدام
‫أمر واحد لتطبيق الدليل بأكمله.
‫هناك الكثير من الخيارات.
‫الأسباب التي تجعلنا لا نبدأ في استخدام هذه الطريقة
‫هي تلك الطريقة التي لا نحتاجها دائمًا.
‫إنه يضيف القليل من التعقيد لأنه يجب عليك إنشاء هذا
‫الملف ، وجميع العناصر الموجودة فيه ، قبل أن تتمكن من
‫القيام بذلك.
‫قد لا يكون لديك هؤلاء من الصفر ، ولا تريد بالضرورة
‫إنشاءهم فقط لإنشاء جراب أو شيء من
‫هذا القبيل ، أليس كذلك. لذا ، عند البدء ، فإن CLI منطقي.
‫استخدام الأوامر الحتمية القياسية أمر منطقي.
‫ولكن ، عندما تبدأ في التفكير في الإنتاج
‫والأتمتة ، والقيام بعملية التحديث المتكررة
‫مرارًا وتكرارًا ، كما ستفعل ، ثم تبدأ في
‫التفكير ، حسنًا. أحتاج إلى نهج أكثر تفصيلاً.
‫التحدي هناك هو أنك يجب أن تعرف كل مفاتيح وإعدادات
‫YAML هذه ، وعليك نوعًا ما أن تبدأ من الصفر وأن
‫تبني خبرتك بمرور الوقت في جميع الطرق والأشياء التي تحتاج
‫إلى وضعها في YAML هذا.
‫الشيء العظيم هنا هو أن استثمارك
‫لا يضيع. أثناء قيامك بإنجاز بعض الأشياء
‫الأساسية في Kubernetes الآن عن طريق كتابة CLI
‫مثل kubectl run أو create.
‫خلال ذلك الوقت ، كنت تنظر إلى YAML باستخدام
‫أمر الإخراج ، تذكر -o yaml.
‫يمكنك إلقاء نظرة على إخراج YAML.
‫هناك طرق أخرى يمكننا من خلالها إلقاء نظرة على YAML.
‫نبدأ في بناء معرفتنا بالشكل الذي من المفترض أن
‫يبدو عليه YAML بحيث بمجرد وصولك إلى العالم في الإنتاج
‫حيث تقوم أساسًا بـ YAML طوال اليوم ، ستكون أكثر دراية
‫بالطريقة التي يتم بها اندلعت.
‫طريقة
‫YAML هذه هي أسهل طريقة لأتمتة تنسيقك.
‫هذه أيضًا أسهل طريقة للحصول على
‫السعادة. لن نتحدث كثيرًا عن البرامج التعليمية
‫في هذه الدورة التدريبية. أوصيك بالذهاب
‫إلى Google لأنه نوع من عمل DevOps
‫الذي يستخدم أداة get كمصدر للحقيقة.
‫في الأساس ، في كل مرة تريد إجراء تغيير على بيئتك
‫، تقوم بتحرير بعض YAML.
‫تقوم بتنفيذ الأمر.
‫أنت تفعل الحصول على الالتزام. الآن لديك هذا السجل
‫لكل شيء قمت به. هذه إحدى سمات نموذج
‫get-ops للعمليات ، والقيام بذلك باستخدام التصريح
‫هو كيفية الوصول إلى هناك.
‫دعونا نلقي نظرة على الطرق الثلاث التي تعتقد فرق Kubernetes
‫أننا يجب أن نستخدم سطر أوامر Kubernetes.