‫الآن وقد تحدثنا عن الأنواع الأربعة لخدمات
‫Kubernetes ، فلنقم بإنشاء بعضها من سطر الأوامر.
‫أولاً ، سنحتاج إلى إنشاء نشر يمكننا توجيه هذه
‫الخدمات إليه. ثم سننشئ أنواعًا مختلفة
‫من الخدمات للإشارة إلى هذا النشر.
‫في هذا العرض التوضيحي ، سننشئ غلافين
‫مختلفين ، أو نوافذ مختلفة ، في بيئة Kubernetes
‫الخاصة بك حتى نتمكن من رؤية ما يحدث مع أمر الساعة أثناء
‫قيامنا بذلك باستخدام الأوامر الأخرى.
‫حسنا. في حالتي ، لدي نافذتان
‫، واحدة فوق الأخرى. لا يهم حقًا كيف تفعل ذلك.
‫إنه فقط لتسهيل الاستخدام بالنسبة لك لمعرفة ما أفعله.
‫سنستخدم kubectl للحصول على القرون.
‫سنضيف a -w.
‫هذا يشبه أمر الساعة حيث سيستمر في العمل ويظهر
‫لنا بمرور الوقت مع تغير الأشياء.
‫ستلاحظ أن هذا خيار في أوامر kubectl متعددة
‫ومختلفة. سنفعل ذلك هنا فقط لنرى ما
‫يحدث في الخلفية.
‫الحصول على القرون مع -w.
‫ثم في نافذتي الأخرى ، سننشئ
‫نشرًا.
‫إنشاء النشر. سنسمي هذا httpenv.
‫ما يستخدمه هذا هو خادم ويب HTTP بسيط للغاية
‫، عندما تضغط عليه باستخدام cURL ، فإنه يقوم فقط
‫بإعادة جميع متغيرات البيئة التي يحصل عليها
‫في سطر الأوامر.
‫إنها طريقة بدائية وبسيطة جدًا بالنسبة لنا للتحقق
‫من أنها تعمل ، ولكن أيضًا لاستعادة القيم المثيرة للاهتمام
‫مثل اسم الكبسولة.
‫أشياء من هذا القبيل.
‫الآن بعد أن أنشأنا ذلك ، سترى في الجزء
‫العلوي أنه ينشئ حاويات.
‫فكر في الأمر على أنه سجل حيث في كل مرة يتغير فيها شيء
‫ما حالة ، أو تتغير الحالة ، أو شيء من هذا القبيل
‫، ستراه كسطر جديد يطبع أسفل الصفحة مثل
‫ملف السجل.
‫سترى في هذا السطر الأخير ، يظهر الآن أن لدينا هذا
‫الكبسولة تعمل في حالة التشغيل هناك.
‫دعنا نقوم بتدوير المزيد من هذه الكبسولات
‫حتى نتمكن من تشغيل أكثر من واحدة من هذه الحاويات
‫خلف خدمتنا وسنقوم بإنشاء ثانية.
‫يكون الأمر scale مفيدًا في النشر لأنه يسمح لنا
‫بتغيير عدد النسخ المتماثلة في أمر واحد
‫سهل الاستخدام. بالطبع ، مع كل شيء في Kubernetes
‫، توجد طرق متعددة للقيام بذلك ، ولكن هذه هي أسهل
‫طريقة في وضعنا هنا.
‫حسنا. سترى الآن أنه تم إنشاء أربع حاضنات
‫أخرى وهي تظهر تلك الموجودة هناك على أنها قيد التشغيل.
‫الآن ، سنقوم بإنشاء تلك الخدمة.
‫لذلك ، نستخدم الأمر expose.
‫في هذه الحالة ، نخبرها بأي عملية نشر يجب كشفها
‫والمنفذ الذي يستمع إليه هذا النشر.
‫سترى أن هذا لم يغير أيًا من البودات لأن هذا يؤدي
‫إلى إنشاء ميزة إضافية لا تتعلق بالبودات
‫نفسها.
‫سيؤدي هذا في الواقع إلى إنشاء مجموعة IP بشكل افتراضي.
‫هذا هو نوع خدمة IP العنقودية.
‫سيخلق ذلك أمام النشر.
‫دعنا نتحقق من هذه الخدمة التي أنشأناها للتو.
‫يجب أن ترى اثنين هنا.
‫ستكون النقطة الأولى هي نقطة نهاية Kubernetes.
‫هذا ل API.
‫ثم سترى خدمتنا التي أنشأناها للتو ونوعها
‫هو عنوان IP العنقودي. تذكر أن عنوان IP للكتلة يمكن استخدامه
‫داخل المجموعة فقط حتى تتمكن العقد والبودات الأخرى من الوصول
‫إليه.
‫عنوان IP هذا الذي يمكننا الوصول إليه ، لكنه يعتمد على مكان وجودنا وما إذا
‫كان بإمكاننا الوصول إليه أم لا.
‫نظرًا لأنه لا يمكن الوصول إلى عنوان IP هذا
‫إلا من العقد نفسها أو من البودات الأخرى الموجودة
‫داخل الكتلة.
‫عندما تكون على Docker Desktop ، إذا كنت تتذكر أن هذا لا يعمل
‫على نظام التشغيل المضيف لنظامي التشغيل Mac و Windows.
‫يتم تشغيل هذا تقنيًا في Linux VM صغير.
‫نحتاج ، في هذه الحالة ، إلى تشغيل حجرة
‫أخرى تعمل على تلك الكتلة حتى نتمكن
‫من حلها. لا نريد تشغيل نشر باستخدام مجموعة نسخ متماثلة.
‫في هذه الحالة ، نريد حقًا تشغيل جراب واحد فقط.
‫أسهل طريقة للقيام بذلك هي تشغيل kubectl.
‫سنستخدم مولد بديل.
‫قد تتذكر ذلك من الخطأ في وقت سابق.
‫سنتحدث قليلا عن ماهية المولدات.
‫هناك الكثير مما يجري في هذا الأمر ، لذلك
‫دعونا نقسمه. سباق kubectl الذي رأيته من قبل.
‫المولد هو نوع القالب الذي نريد أن يستخدمه
‫أمر التشغيل.
‫سنتحدث أكثر قليلاً عن ذلك في محاضرة مستقبلية.
‫نحن نختار قالب البود لأننا نريد
‫فقط تشغيل البود. لا نريد نشرًا كاملاً مع مجموعات النسخ المتماثلة
‫أو أي شيء. سنسميها tmp-shell.
‫ستلاحظ أن بعض هذه الخيارات تشبه تشغيل
‫عامل الإرساء. هذا عن قصد.
‫أحد الأهداف المستقبلية
‫لأمر kubectl run هو التصرف بشكل أشبه بأمر
‫docker run. في الواقع ، سنتحدث لاحقًا عن
‫كيفية قيامه في النهاية ، افتراضيًا ، بإنشاء
‫جراب لك ولن تضطر إلى استخدام خيار المولد هذا.
‫سنستخدم --rm هنا مما يعني أنه بمجرد توقف الكبسولة
‫، امض قدمًا وقم بإزالتها.
‫يعطينا -it قذيفة في هذا الكبسولة بمجرد أن
‫نضغط على الأمر enter. ثم - تخبرنا الصورة بالصورة
‫التي نفضلها.
‫في هذه الحالة ، نستخدم صورة netshoot الخاصة بي ، وهي عبارة عن مجموعة كاملة
‫من الشبكات المختلفة وأدوات مساعدة
‫Linux. واحد منها هو cURL.
‫ثم باستخدام الأمر run ، يمكننا تغيير
‫cmd ، أو الشيء الذي سيتم تشغيله داخل
‫الحاوية.
‫نفعل ذلك بمساحة - فضاء.
‫هذا يخبر أمر التشغيل بالتوقف عن النظر في الخيارات
‫وأن أي شيء بعد تلك الشرطات المزدوجة هو الأمر الذي يجب
‫تشغيله عند تنفيذ هذه الحاوية.
‫سترى في الجزء العلوي أن حافظة الغلاف المؤقت
‫تظهر وهي الآن حالة قيد التشغيل ، ونحن في البود
‫مع موجه bash الخاص بنا.
‫إنه شيء سنتحدث عنه قليلاً
‫هو أن اسم الخدمة الذي أنشأناه يصبح جزءًا
‫من اسم DNS لهذه الخدمة.
‫يمكننا ان نستخدم... يشبه إلى حد بعيد ما فعلناه للتو
‫في Docker و Swarm ، يمكننا استخدام اسم الخدمة للحصول عليه مع DNS.
‫تذكر أنه يعمل على المنفذ 8888.
‫عندما نفعل ذلك ، نعيد الرد الذي
‫كنت أتوقعه. تقوم الأداة المساعدة httpenv
‫هذه ببساطة بتفريغ جميع متغيرات البيئة على هذا
‫الجهاز الموجود داخل هذا البود
‫الفريد ، صحيح. سترى أن اسم البود هو اسم المضيف وإعدادات
‫Kubernetes الافتراضية خارج الصندوق.
‫ستعمل هذه الطريقة مع أي منكم ، على أي
‫مجموعة ، طالما أن سطر أوامر kubectl الخاص بك يمكنه التحدث
‫إلى واجهة برمجة التطبيقات ، فإن هذا الأمر سيوصلك إلى حجرة
‫جديدة تقوم بتشغيل تلك الصورة داخل غلاف.
‫ذلك رائع.
‫ولكن ، إذا كنت تستخدم نظام Linux ، فهناك طريقة أسهل.
‫لأن الطريقة التي يعمل بها Kubernetes هي أن جميع العقد والحاويات
‫، بشكل افتراضي ، يمكنها التحدث مع بعضها البعض خارج
‫الصندوق. العقدة التي تستخدمها ، بافتراض
‫أنك تقوم بتشغيل Kubernetes على هذا الجهاز المحلي ، لديها حق الوصول
‫إلى جميع عناوين IP الخاصة هذه.
‫يجب أن تكون قادرًا فقط على تجعيد عنوان IP الخاص بالخدمة.
‫اسمحوا لي أن أخرج من قوقعتي وأقوم بعمل kubectl للحصول
‫على الخدمة مرة أخرى.
‫يجب أن يكون عنوان IP للكتلة IP قابلاً
‫للحل من مضيفك. لن يعرف مضيفك اسم DNS كما
‫فعلنا داخل الكبسولة لأن هذا يقتصر
‫على التواجد داخل المجموعة.
‫ولكنه سيعرف عنوان IP وسيكون قادرًا على الوصول إليه.
‫يمكنك تجعيد عنوان IP:
‫8888 تمامًا كما تفعل مع جهاز آخر على
‫شبكتك. السبب الذي لا يعمل
‫من Docker Desktop هو أنك تجلس على نظام Mac أو Windows
‫عندما تكتب هذه الأوامر ، وهي ليست على نفس
‫مجموعة Kubernetes مثل Linux VM الذي يقوم
‫بتشغيل Kubernetes نيابة عنك.
‫حسنا. دعنا نمضي قدمًا ونترك هذه الأشياء
‫قيد التشغيل للمحاضرة التالية حيث سنقوم بإنشاء المزيد من
‫الخدمات.