ما هو الفرق بين "النشر" و "الخدمة" في Kubernetes؟


الاجابه 1:

كلاهما تجريدية في Kubernetes.

نشر:

"النشر" هو كائن في المجموعة يمثل مجموعة من مجموعة القرون قيد التشغيل ، وهي مجموعة منطقية بها بعض إمكانيات الإدارة المرتبطة بها. عمليات النشر لها دلالات بالنسبة لحالة الكتلة.

على سبيل المثال ، تخيل أن هناك حاجة لدعم مقاييس المراقبة لمجموعة من الخدمات في نظامك. قام فريق ops بتطوير صورة عامل ميناء تسمى metrics-analyser 1.0.0 والتي تستقبل تكوين أين هي كل العوامل التي تحتاج إلى التجميع ، ومدى تواتر تجميع المكون ونقطة النهاية لكل وكيل توفر المقاييس.

الآن إذا قام الفريق بكتابة "Pod ma.yml" لنشر ذلك على kubernetes ، فمن المحتمل أن ينتهي بهم الأمر بقرنة واحدة تعمل في أي عقدة يمكن أن تحددها kubernetes. إذا فشلت العملية ، أو إذا كان هناك حاجة إلى ترقية محلل المقاييس ، أو تحتاج kubernetes إلى إعادة تعيين الموارد (أو العديد من الأحداث الأخرى التي أغفلها) ، فسيكون من الضروري إخلاء الجراب مما يؤدي إلى توقف وقت جمع المقاييس. قد يتسبب هذا الحدث في إهمال الخدمة ، وقد يتصل المسؤولون التنفيذيون بالفريق قائلين: نحن بحاجة إلى مقاييس ، فقط قم بإصلاحها.

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

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

أيضًا ، في مواصفات النشر ، يمكن أيضًا تحديد pod spec لتجنب الاضطرار إلى التعامل مع ملفات موارد مختلفة لنفس الهدف. في النهاية ، يحتاج الفريق فقط إلى نشر مقاييس-محلل صحيح ؟.

خدمات:

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

مجال الخدمات هو توفير مجموعة من القواعد للوصول إلى مجموعة من القرون. بعض أمثلة القواعد التي قمت بتعيينها أثناء تحديد الخدمات هي:

  1. أي قرون تتطابق مع مجموعة الخدمة. ما نوع عنوان الشبكة الذي ستستخدمه الخدمة؟ Nodeport. جميع العقد في الكتلة لديها منفذ مخصص لإعادة التوجيه إلى السنفات المطابقة للخدمة. Cluster IP. هناك مجموعة IP مخصصة للوصول إلى السنفات المطابقة للخدمة. لفضح القرون خارج كتلة الشبكة مع اسم الشبكة الخارجية LB.External. لفضح مصدر URI خارجي مع اسم مؤهل في المجموعة (مثل db-service يذهب إلى 32dfs-324qa.domain.com) .Protocols والمنافذ. حيث يجب إعادة توجيه حركة المرور عند وجود طلبات إلى اسم الخدمة اسم شبكة الخدمة الفعلية مثل محلل المقاييس.

تسمح الخدمات للقرون الأخرى بالاتصال بمكونات المجموعة دون الحاجة إلى معرفة عنوان IP الفعلي الخاص بها في المجموعة.

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

الخدمات هي بناء الشبكات في الغالب. يصممون كيف يتم الوصول إلى القرون عبر شبكة الكتلة ومن العالم الخارجي إلى شبكة الكتلة.


الاجابه 2:

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

تعيين:

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

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

إذا كان نشرك يشير إلى أنه ينبغي أن يكون هناك أكثر من تطبيق واحد من تطبيقاتك (High Availability أو HA) ، فسيتم إنشاء المزيد من pod حتى يتم تلبية متطلبات مقياس التطبيق.

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

خدمات:

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

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

إذا كنت ترغب في رؤية حاويات Docker تعمل مع Kubernetes في العمل ، فيمكنك اختبارها على http://BroadIQ.com. يمكنك أيضًا إلقاء نظرة على مقالة "الدليل البسيط لتشغيل Rocket.Chat" (https: //medium.com/@jlutz_72580 / ...) التي ترشدك عبر خطوات نشر تطبيق حاوية الإرساء على Kubernetes.


الاجابه 3:

ليس من الصعب للغاية:

  • Kubernetes Deployment عبارة عن لوحة تجريدية ، تصف مجموعة Kubernetes الخاصة بك ، وكيفية نشر التطبيق الخاص بك. Kubernetes Service عبارة عن لوحة تجريدية ، تصف مجموعة Kubernetes الخاصة بك ، وكيفية كشف (إتاحة) تطبيقك إلى العالم الخارجي (إلى الشبكات) ، الذي تتصل به المجموعة الخاصة بك)