كيفية اختيار تزامن الحاوية الصحيحة وكيفية نشرها

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

إذا لم تستخدم خط أنابيب CI / CD ونظام تزامن ، فسيتعين على التطوير والعمليات القيام بالتعاون والتنسيق الشديد والمتواصل.

Image Courtesy Julius Silver - Pexels.com - أتمنى أن يكون لديهم تزامن حول كيفية تحميل الحاويات على هذه السفن ... لا أستطيع أن أتخيل المتغيرات المعنية: توزيع الوزن. الوجهة وترتيب الإزالة. التقلب. هذه الصورة تجعلني سعيدًا لأنني أعمل في برنامج حيث أحصل على المساعدة في إدارة التعقيد!

عندما بدأت التحقيق في عالم الخدمات المصغرة في وقت سابق من هذا العام ، لم يكن لدي أي فكرة عن البنية التحتية للدعم الواسعة التي سأكتشفها. لقد كانت Kubernetes كنزًا مطلقًا لاكتشاف ، ويبدو أن Istio مدهش ببساطة للخدمات الميكروية - على الرغم من أنني أعلم أنني قد خدشت سطح هاتين التقنيتين فقط.

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

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

جعل الخيار الصحيح تزامن الحاوية

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

السؤال الأول كان لدي ، ما هي بدائل لتنسيق الحاويات؟

بعد قضاء قدر معقول من الوقت في البحث والقراءة ، إليك قائمة أنظمة الأوركسترا التي يمكنني العثور عليها:

  • Kubernetes - الأب الكبير الواضح لكل منهم. المشروع نفسه نشط للغاية ، والهندسة المعمارية تعطيني الراحة لأن التطوير المستمر سيكون سريعًا وآمنًا. هذا هو خياري الغريزي.
  • Docker Swarm - هذا مدمج في Docker افتراضيًا ، ولديه الكثير من الوظائف الأساسية التي تريدها في النظام. لديه الكثير من التكافؤ مع Kubernetes ، لكنه يفتقر إلى عنصر رئيسي في أن الإصدار المجاني المفتوح المصدر هو التحكم في الوصول إلى الأدوار (RBAC). يمكنك الحصول على ذلك في إصدار Enterprise المدفوع.
  • ماراثون على ميسوس - ميسوس نفسها هو نظام للتجميع قابلة للتطوير للغاية لتشغيل المهام من جميع الأنواع. يعتمد على أطر عمل لدعم أنواع مختلفة من المهام ، وماراثون هو البرنامج المساعد الذي يوفر الدعم لتنسيق الحاويات داخل نظام ميسوس البيئي. قائمة الأطر مثيرة للإعجاب.
  • Titus - أثناء كتابتي لهذا ، قامت Netflix بتزويد نظام تزامن داخلي مفتوح المصدر. شكرا نيتفليكس! تم تصميم Titus لتوفير أدق عمليات التكامل مع البنية التحتية لـ Amazon AWS (حيث تحتفظ Netflix بعملياتها). أحد نواياهم هو أن المشاريع الأخرى سوف تستخدم التكنولوجيا الخاصة بهم حتى يتمكن Netflix من استخدامها في المستقبل.
  • Cattle - هذا هو محرك الأوركسترا المصمم والمضمّن في نظام Rancher. لم أقم بإعطاء Cattle نظرة عميقة للغاية ، حيث يبدو أن مشروعها الرئيسي قد اشترى إلى Kubernetes كمحرك موسيقي أساسي مفضل. يقرأ العنوان الرئيسي على موقع Rancher ، "Enterprise Kubernetes Made Easy". الصفحة مليئة بالكيفية التي تساعدك بها في تشغيل مجموعات Kubernetes. لا يوجد ذكر للماشية على صفحة الويب. من الواضح أن مشروع رانشر جعله يختار.
  • البدوي - حسنًا ، هذا هو هاشيكورب. بصفتي أحد المعجبين الهائلين في Hashicorp ، سأشعر بالظلم إذا لم أعطي منتجاتهم مرة واحدة على الأقل. المنتج يبدو مثيرا للاهتمام على السطح مع بعض المخاوف paywall الرئيسية إلى حد ما. مساحات الأسماء متوفرة فقط في إصدار المؤسسة. لاكتشاف الخدمة ، يجب عليك إضافة على القنصل ، وللإدارة السرية ، ستحتاج إلى إضافة على Vault. من خلال مراجعة الوثائق ، يبدو أيضًا أنه يفتقر إلى تكوين CNI الأساسي - المناقشة الأساسية لتكوين الشبكات هي على منافذ التعيين وتعيينات IP الثابتة.
  • Kontena - هذا هو منتج مذهل بصريا. يمكنك تشغيل العروض السحابية الخاصة بهم ، أو يمكنك إعداد سيد النظام الأساسي الخاص بك على البنية التحتية التي تختارها. إذا اخترت إحضار البنية الأساسية الخاصة بك ، فيمكنك إما اختيار توصيلها بـ Kontena Cloud مقابل 15 دولارًا شهريًا أم لا. واجهة الويب الجميلة هي ما تتخلى عنه في هذه الحالة. بسبب عدم الخوض بعد بضع ساعات من الحفر حول موقعهم ، لست متأكدًا من التأثير الذي سيحدث.

لا يزال هناك آخرون تجدون تلميحات حولها إذا كنت تبدو قوياً بما يكفي: Deis و Mantl و Cloud Foundry و Amazon ECS على سبيل المثال لا الحصر. ربما يستحق هؤلاء الرجال أكثر من هذا الذكر البسيط المشرف.

متطلبات أولا

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

  1. التنمية النشطة: عالم تزامن الحاوية صغير نسبيا. سوف تتخلف المشاريع غير النشطة بسرعة وتدل على أن الأخطاء لا يتم معالجتها. لدي شعور بأن الماشية في طريقها للخروج. لذلك أنا خدش هنا.
  2. لا يوجد مورد سحابة مغلق: لست مهتمًا بالتعامل مع أي مزود خدمة سحابي واحد في هذا الوقت. يقع Titus هنا بسبب تكامله الشديد مع AWS ، وهو بالتأكيد جانب سلبي هنا.
  3. البساطة: كلما كان النظام أكثر تعقيدًا ، كلما زاد صعوبة تشغيله. هذا المطلب يجعلني أسقط Mesos عن التشغيل ، لأنه ليس نظام تزامن حاوية أولاً. تحاول أن تكون أشياء كثيرة لكثير من الناس ، وهذا يبدو وكأنه نوبة خاطئة.
  4. CNI Networking: القدرة على الحصول على اتصال شبكي تافه بين خدماتي أمر مهم. لا أريد للمطورين قضاء وقت في رمز الأغراض الخاصة للعثور على الخدمات التابعة. Docker Swarm و Kubernetes ، أنتما ما زلتان في الركض.
  5. مساحات الأسماء مع RBAC - أعمل في بيئة شركة ، وأحد أهدافي هو توفير التطوير وضمان الجودة والتدريج وإعدادات الإنتاج التي لا تتعارض. يمكنني إعداد مجموعة منفصلة لكل منها ، أو يمكنني استخدام RBAC ومشاركة قوة حسابي. Docker Swarm ، أنا آسف لرؤيتك تذهب ، ولكن هذه هي نهاية رحلتنا معًا. أحب Hashicorp ، لكن Nomad يضع هذه الوظيفة أيضًا وراء paywall.

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

لقد تركت مع حالة غريبة من وجود Kubernetes و Kontena لا يزال في القائمة. Kontena هو حرفيا تحقيق الساعة 11th. غادرت تقريبا هبط إلى قائمة الآخرين. لو كنت قد فعلت ذلك ، ستكون هذه الساعة الأخيرة من التأليف أقل إيلامًا. ولكن هنا هو عليه. يجب اتخاذ قرار ، وبينما سأعود في النهاية إلى كونتينا ، فإن Kubernetes هو تصويتي الحالي.

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

الابتداء مع Kubernetes

لذلك اخترت Kubernetes ليكون نظام تزامن حاوية بلدي المفضل. كيف يمكنني الحصول على مجموعة جاهزة للاختبار واستخدام الإنتاج؟ الإجابات على هذا السؤال متنوعة جدا كذلك.

طرق النشر Kubernetes

  • Minikube: الطريقة الموصى بها للحصول على Kubernetes عقدة واحدة تعمل بسرعة لأغراض الاختبار والتطوير. أفضل رؤية الأشياء في إجراء كامل ، لذلك لم أتمكن من قبول نشر عقدة واحدة لاختباراتي.
  • Kubeadm: يتم توفير ذلك بواسطة kubernetes.io كطريقة لنشر كتلة رئيسية متعددة العقدة. هناك تعليمات إضافية لإعداد تكوين متعدد الوظائف ، أيضًا. سبق أن استخدمت Kubeadm من خلال بعض البرامج النصية Terraform لإعداد مجموعات اختبار المحيط الرقمي الخاصة بي.
  • Docker Enterprise 2.0: أثناء العمل على هذه المقالة ، أعلنت Docker عن الترقية إلى EE 2.0. يتضمن هذا الإصدار الجديد الآن نشر Kubernetes الكامل المضمن في المنتج. من قراءة سريعة ، يستخدمون Swarm لتمهيد الكتلة ونشر Kubernetes.
  • رانشر: "Enterprise Kubernetes Made Easy" هي مطالبهم. في الواقع ، تمكنت من الحصول على مجموعة Kubernetes كاملة تعمل على المحيط الرقمي في أقل من ساعة باتباع دليلهم. كان رد فعلي الأولي: "البقرة المقدسة! Rancher is amazing. "وهو يدعم إدارة عمليات نشر Kubernetes في العديد من البيئات ويسهل نشر High Availability. يهدف إلى السماح بإدارة مجموعات متعددة إلى جانب إدارة بدائل أخرى للتنسيق بما في ذلك Cattle و Apache Mesos.
  • Mesosphere DC / OS: من المحتمل أن يأتي كبطل أثقل في الوزن كنظام لتنسيق الحاويات في حد ذاته ، ولكن الآن قادر أيضًا على إدارة مجموعات Kubernetes أيضًا. يبدو هذا المنتج مقنعًا للغاية ... فيما عدا أن الأشياء الجيدة حقًا تقع تحت جدار دفع المؤسسة. أنا أيضًا غير واضح من موقع الويب الخاص بهم إذا كان إصدار DC / OS مجانيًا وتم دفع إصدار DC / OS Enterprise (أو إذا تم دفع كلاهما). في أي وقت أرى "اتصل بنا للحصول على السعر" ، أميل إلى المضي قدمًا. هذا سوف يمنعني من النظر عن كثب - اعتذارات لأي شخص أسيء إليه.
  • Kontena’s Pharos - يبدو أنه حتى الشركات التي لديها بديلها الكامل عن Kubernetes لا يمكنها أن تبقي أيديها خارج مبادرات برامج نشر Kubernetes. يبدو أن وثائق "Usage with Terraform" لديها قدر كبير من القوة في جعل تثبيت Kubernetes خطوة مميزة وقابلة للتكوين. يمكنك إعداد البنية الأساسية الخاصة بك في خطوة واحدة باستخدام أي أداة لديك لذلك ، ثم إعداد Kubernetes علاوة على ذلك. إعداد البنية التحتية | install-kubernetes> الربح

تستمر القائمة: Pivitol’s Kubo و Apprenda Kismatic و CoreOS Tectonic و RedHat Openshift v3 و Openshift Origin والمزيد بالتأكيد.

خيارات مستضافة

  • أمازون EKS - خدمة الحاويات المرنة ل Kubernetes - استضافت أمازون مجموعة Kubernetes. هذه تقنية "في المعاينة" حاليًا بواسطة Amazon. هذا يتحدث عن استمرارية ومستقبل Kubernetes ...
  • Google Kubernetes Engine (GKE) - هذا هو عرض Google المستضاف. أود أن أقول أكثر من ذلك ، لكن لسبب ما تم كسر حسابي فيما يتعلق بالوصول إليه.
  • OpenShift - خدمة حاويات Red Hat عبر الإنترنت.

بلدي اختيار Kubernetes النشر؟

لنشر Kubernetes ، أخطط لمواصلة العمل مع كل من Kubeadm (ربما استبدال ذلك بـ Pharos) وكذلك Rancher.

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

ما التالي؟

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

تحدثت من قبل أيضًا عن Istio التي تضع على قمة Kubernetes لتوفير المزيد من الأساس لدعم اتصالات ومراقبة الخدمات المصغرة. توقع المزيد من ذلك في المقالات القادمة. أوه ، والآن بعد أن تعثرت على Kontena ، شعرت بالسحب لإخضاعها للمحاكمة.