ما هو هيلث شيك تستخدم حقا لعند تشغيل عامل الميناء في وضع سرب?

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

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

بعبارات أخرى, أنا تكافح من أجل العثور على تفسير واضح وجدير بالثقة ما HEALTCHECK حقا لا.

علاوة على ذلك ، بالنظر إلى عامل الميناء ريست أبي، هذا جزء معين من البيانات (هي مهمة صحية أم لا) لا يتعرض حتى للمهام (يتعرض للحاويات على الرغم من). هذا يجعل من الصعب استخدام هذا المقياس لمراقبة سرب عامل الميناء ، لذلك لا يبدو لي أن هذا هو الغرض الأساسي من المقياس أيضا.

ماذا يحدث حقا عندما تصبح مهمة غير صحية عند تشغيل عامل الميناء في وضع سرب?

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

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

إذا كنت تستخدم docker service create (أو docker stack deploy) لإنشاء خدمة سرب وفشل هذا الفحص الصحي ، فإنه سيتم إيقاف / قتل المهمة (الحاوية) وإعادة جدولة مهمة جديدة لاستبدال تلك النسخة المتماثلة من الخدمة. أثناء التوقف / القتل (يحاول إيقافه بأمان ، ولكنه يقتل بعد 10 ثوان مثل جميع حاويات عامل الإرساء) ، سيتوقف سرب عن تراكب حركة المرور الواردة إلى هذه المهمة كما يفعل لجميع مهام التوقف.