كيفية إدارة المزيد من الحاويات باستخدام Docker Swarm

يعد القياس خارج خادم واحد ميزة مهمة لفهمها حول الحاويات. عندما تبدأ في استخدام الحاويات لتسهيل توسيع نطاق التطبيق الخاص بك ، تبدأ الأمور بالفعل في الحصول على اهتمام. تخيل أنك استخدمت حاويات Docker للتطوير والاختبار. أنت الآن جاهز لبدء البث المباشر.

كيف يمكنك التأكد من أن التطبيق الخاص بك لديه موارد كافية؟ إذا ذهبت الفيروسية ، كيف يمكنك مقياس؟

هذا هو المكان الذي يجب أن تبدأ فيه باستخدام منظم حاوية مثل Swarm. نفس المجموعة التي أحضرت لك دوكر بنيت سرب. يوجد Swarm لإدارة حاويات Docker على مجموعة من الأجهزة. Docker Swarm يجعل من السهل نشر وإدارة وتوسيع نطاق الحاويات الخاصة بك.

في هذه المقالة ، سنسير على الرغم من أساسيات تزامن الحاوية على كتلة. سنناقش ميزات Docker Swarm ، بما في ذلك كيفية بدء Swarm ونشر تطبيق وتوسيع نطاق هذا التطبيق. إذا لم تكن معتادًا على Docker ، فقم بإلقاء نظرة على مقالاتي الأخرى.

ما هو عامل الميناء؟
بدء الحاوية الأولى الخاصة بك
إنشاء أول Dockerfile الخاص بك
بناء صورتك الأولى
نقل الماضي حاوية واحدة

شق طريقك إلى هنا عندما تشعر أنك جاهز.

قد تكون سمعت لي استدعاء Swarm أوركسترا حاوية. ماذا اقصد بذلك؟ يتحكم Swarm في إدارة وتنظيم كل من المضيفين وحاويات Docker التي تعمل على نظامك.

فكر في Swarm كتطبيق يفهم كيفية تشغيل أوامر Docker. فأنت تخبره بمكان وجود جميع مضيفات Docker الخاصة بك ، وما هي الحاويات التي تريد تشغيلها ، ويتولى Swarm العناية بالبقية. يقوم Swarm بإدارة الشبكات والوصول وحالة الحاويات الخاصة بك وخدمات التحجيم وموازنة التحميل وحتى نقل الحاويات إذا أصبح المضيف غير قادر على الاستجابة.

في هذه المقالة ، سنبدأ تشغيل Docker Swarm على جهازك المحلي. مع Swarm المحلي الخاص بنا ، سوف نتعرف على الأوامر الأكثر شيوعًا وننشر بعض الخدمات.

بدء سرب

للبدء ، ستحتاج إلى تثبيت Docker-CE. لمساعدتك في تثبيت Docker على جهازك ، يرجى إلقاء نظرة على موقع Docker-CE.

بمجرد تثبيت Docker بنجاح ، يصبح بدء تشغيل Docker Swarm الخاص بك سهلاً مثل تشغيل أمر واحد. افتح المحطة الطرفية أو سطر الأوامر وقم بتشغيل الأمر أدناه.

> عامل ميناء سرب الحرف الأول

كنت قد فعلت ذلك! تقوم بتشغيل أول سرب الخاص بك.

إذا كنت تدير هذا المضيف على نظام أساسي سحابي مثل AWS أو في مزرعة خوادم ، فإن إضافة المزيد من العقد إلى مجموعة سربك أمر بسيط. ما عليك سوى اتباع التعليمات الموجودة في Docker Documentation حول كيفية إنشاء Swarm. ستوضح لك هذه الوثائق كيفية تهيئة العقد وإضافتها يدويًا إلى مجموعة Docker Swarm.

خيار آخر هو أن تدور الكتلة Rancher الخاصة بك. بعد إعداد Rancher ، يمكنك السماح له بالقيام بالرفع الثقيل لك. Rancher هي خدمة أستخدمها عند استكشاف ميزات أوركسترا الحاويات المختلفة. تعمل مزرعة Rancher على تسهيل دوران مجموعة من الآلات وبدء مشغل حاوية من اختيارك. يحتوي Rancher على لوحة معلومات لطيفة وتفاعلية على شبكة الإنترنت ، مما يجعل من السهل إدارة فرق أوركسترا مختلفة بما في ذلك Swarm أو Mesos أو Kubernetes.

يمكنك العثور على معلومات حول الشروع في العمل باستخدام Rancher واستخدام Rancher لبدء سرب في وثائق Rancher.

لأغراض هذه المقالة ، سنلتزم بالعقدة الواحدة التي تعمل على جهازك المحلي. هذا سيجعل الأمر أسهل بكثير لتعريف أنفسنا مع Docker Swarm و Swarm CLI.

نشر إلى سرب

الآن بعد أن كان لديك سرب قيد التشغيل ، دعونا نبدأ بعض الحاويات! إذا كنت معتادًا على Docker ، فيجب أن يكون النشر إلى Docker Swarm قطعة من الكعكة. الأوامر المستخدمة لنشر الخدمات ومكدسات Docker-CE هي نفس الأوامر المستخدمة في Docker Swarm.

لنشر صورة عامل إرساء pintail-whoami ، قم بتشغيل الأمر أدناه.

> إنشاء خدمة عامل ميناء - اسم pintail-whoami -p 80:80 pintailai / pintail-whoami: 0.0.1

افتح متصفحك وانتقل إلى http: // localhost وسترى الصفحة أدناه.

قد يكون الأمر المستخدم لبدء هذه الخدمة هو نفسه تمامًا مثل Docker-CE ، ولكن الأمور تعمل بشكل مختلف قليلاً عند الاتصال بـ Swarm.

عند تشغيل الخدمات في Swarm ، يكون الاختلاف الأكبر هو الموقع الفعلي لحاويات التشغيل. سيبدأ Docker Swarm حاوية على أي مضيف تتوفر فيه الموارد. لذلك فقط لأنك تبدأ حاوية من مضيف واحد لا يعني أنه سيتم تشغيل الحاوية.

إذا كيف يمكنك الوصول إلى الخدمة التي يمكن أن تبدأ في أي مكان في الكتلة الخاصة بك؟

لدى Docker Swarm أداة مفيدة للغاية لحل هذه المشكلة تسمى شبكة توجيه Swarm. تدير شبكة التوجيه الدخول في حاويات الركض. بشكل افتراضي ، يجعل Swarm جميع الخدمات متاحة عبر منفذها المنشور على كل مضيف Docker.

دعنا نقول أن لديك سرب يحتوي على ثلاثة مضيفين لرسو السفن. إذا قمت بنشر خدمة على Swarm الخاص بك المنشور على المنفذ 80 ، فلا يهم من هو المضيف الذي تصل إلى هذا المنفذ - سيتم توجيهك إلى خدمتك.

في العالم الواقعي ، إذا كان لديك تطبيق ويب و Rest API ، فيمكنك نشر تطبيق الويب الخاص بك على المنفذ 80 وواجهة برمجة التطبيقات على 8080. باستخدام هذا التكوين ، يمكنك قياس عدد الحاويات التي تشغل أجزاء مختلفة من التطبيق الخاص بك. ولكن يمكنك دائمًا التأكد من أن المنفذ 80 على أي عقدة في مجموعة Swarm سينقلك إلى موقع الويب ، والمنفذ 8080 إلى واجهة برمجة تطبيقات Rest.

شبكة سرب التوجيه لها إيجابيات وسلبيات. هذا التكوين الافتراضي له حدوده ، لكنه مصمم لجعل البدء سهلاً قدر الإمكان. مع زيادة تعقيد التطبيقات ، يمكن تكوين شبكة التوجيه لتتصرف بشكل مختلف ويمكن نشر خدمات مختلفة لاستخدام تكوينات توجيه مختلفة. لمزيد من المعلومات ، يرجى إلقاء نظرة على وثائق شبكة توجيه Swarm Mode.

توسيع نطاق الخدمة الخاصة بك

الآن بعد أن أصبح لدينا خدمة تعمل ، دعنا نرفع الأمور قليلاً!

تخيل أنك تقوم بتشغيل موقع الويب الخاص بك على Docker Swarm في الإنتاج ويبدأ موقعك في الاتجاه نحو Hacker News. تضاعف عدد الزيارات لديك وتحتاج إلى التعامل مع الحمل الإضافي. لتضاعف عدد الحاويات التي تقوم بتشغيلها ثلاثة أضعاف ، ما عليك سوى تشغيل الأمر أدناه:

> مقياس خدمة عامل ميناء pintail-whoami_pintail-whoami = 3

المعزوفة! يقوم Docker Swarm بقياس عدد النسخ المتماثلة التي تقوم بتشغيلها وتوجيه حركة المرور إلى الحاويات. بعد اكتمال الأمر أعلاه ، عد إليك "Pintail.ai Docker Example" في متصفحك وانقر على تحديث عدة مرات. يجب أن ترى الرقم يتغير حيث أن شبكة التوجيه تنقلك إلى حاويات مختلفة.

تجعل Swarm خدمات التحجيم أمرًا سهلاً حتى تتمكن من القلق بشأن المشكلات الأكبر.

نظف

الآن دعونا نقوم بتنظيف حاوياتنا والسرب

لإزالة مكدس pintail-whoami ، قم بتشغيل

> عامل ميناء كومة rm pintail-whoami

كن حذرا مع هذا الأمر التالي. إذا كنت تقوم بتشغيل أي شيء آخر داخل سرب ، سيتم حذفه.

لحذف مجموعة Swarm ، قم بتشغيل

> عامل ميناء سرب إجازة - القوة

لذلك في هذه المقالة ، بدأنا مضيف Swarm ، وناقشنا إضافة العقد إلى نظامنا ، وبدأنا خدمة وتوسيع نطاقها ، وتحدثنا عن شبكة توجيه Swarm. نأمل أن تساعدك هذه المقدمة على تحسين لف عقلك حول تزامن الحاوية و Docker Swarm.

بالكاد تخدش هذه المقالة سطح ما هو ممكن باستخدام الحاويات و Swarm ، لكنني آمل أن يوفر لك بعض السياق لمساعدتك على مواصلة التعلم.

الرجاء إخبارنا إذا كان لديك أي تعليقات أو أسئلة أو مخاوف في التعليقات. أنا دائمًا منفتح على التعليقات وأحب أن أسمع اقتراحاتكم. إذا أعجبك المقال ، فالرجاء ترك لي الكثير من التصفيقات لإعلامنا بذلك.