إذن، من المحتمل أنك تعمل مع حاويات Docker منذ فترة، أليس كذلك؟ أعلم أن الإثارة المتمثلة في تدوير تلك الحاوية الأولى تبدو وكأنها سحر، ولكن بعد ذلك تضرب الحقيقة. تبدأ في ملاحظة كيف أن إدارة الحاويات على نطاق واسع يمكن أن تصبح بسرعة كابوسًا لوجستيًا. وذلك عندما يدخل Kubernetes (K8s) إلى الغرفة كمدير مشروع متمرس، وعلى استعداد لتولي كل شيء وتبسيطه.
في هذا المنشور، سنلقي نظرة على التحديات التي تواجه الحاويات المستقلة، وكيف يساعد Kubernetes في حل تلك المشكلات، ومتى (ومتى لا ) لاستخدام Kubernetes. دعونا ندخل في ذلك!
إذا كنت قد عملت مع حاويات مستقلة، فقد تبدو هذه المشكلات مألوفة:
إن توسيع نطاق الحاويات المستقلة يشبه لعب لعبة الضرب بالخلد. هل تحتاج إلى المزيد من السعة؟ بدء تشغيل حاوية أخرى يدويًا. أوه، هل تحتاج إلى تقليل الموارد الآن؟ إغلاق بعض الحاويات يدوياً. وسرعان ما يصبح هذا الأمر غير قابل للإدارة، خاصة عندما يكون لديك ارتفاعات غير متوقعة في عدد الزيارات.
كيف تتحدث حاوياتك مع بعضها البعض؟ مع Docker، سينتهي بك الأمر إلى الحاجة إلى تشفير عناوين IP أو إعداد بعض الشبكات المخصصة التي لا تبدو طبيعية. إنها قديمة ويصعب صيانتها.
ماذا يحدث عندما تتعطل إحدى حاوياتك؟ لا يتعامل Standalone Docker مع هذا الأمر بشكل جيد من تلقاء نفسه. ستحتاج إلى مراقبة كل شيء وإعادة تشغيل الحاويات الميتة يدويًا. ونحن نعلم جميعًا مدى المتعة التي تبدو في الساعة 3 صباحًا يوم السبت.
أصبحت إدارة التطبيقات متعددة الحاويات أمرًا صعبًا. تحتاج إلى تنسيق كيفية تفاعلهم، والتعامل مع تبعياتهم، والتأكد من عملهم جميعًا في الوقت المناسب. وفجأة، أصبح التطبيق البسيط يبدو وكأنه بيت من ورق.
Kubernetes، منسق الحاوية الذي يتحدث عنه الجميع، يقوم بأتمتة الكثير من نقاط الضعف هذه. وإليك كيفية التدخل وحفظ الموقف:
يتيح لك K8s تحديد قواعد القياس بناءً على استخدام وحدة المعالجة المركزية أو الذاكرة. يمكنك ضبطه لتدوير المزيد من الحاويات تلقائيًا عند زيادة حركة المرور وإغلاقها عندما تبرد الأمور. لا مزيد من مجالسة الأطفال.
مع Kubernetes، لا داعي للقلق بشأن مكان وجود كل شيء في حاوياتك. يقوم K8s تلقائيًا بتعيين أسماء DNS للخدمات، حتى تتمكن حاوياتك من التواصل بسلاسة.
إذا ماتت إحدى الحاويات، فسيقوم Kubernetes بإعادة تشغيلها تلقائيًا. لا مزيد من النهوض من السرير لإعادة تشغيل حاوياتك عند بزوغ الفجر. يحافظ K8s على تشغيل تطبيقك بسلاسة بفضل قوى الإصلاح الذاتي التي يتمتع بها.
يتعامل K8s مع التطبيقات المعقدة متعددة الحاويات بسهولة. فهو ينظمها في وحدات وخدمات، مما يسهل طرح الإصدارات الجديدة، والتعامل مع التبعيات، والتأكد من أن كل شيء يعمل في وئام.
لذا، يبدو Kubernetes رائعًا، لكنه ليس حلاً سحريًا لـ كل مشكلة. فيما يلي خمس حالات يكون فيها Kubernetes هو الخيار الصحيح:
إذا شهد تطبيقك تقلبًا في حركة المرور أو كنت بحاجة إلى ضبط الموارد تلقائيًا بسرعة، فإن القياس التلقائي في Kubernetes سيغير قواعد اللعبة.
إذا كان تطبيقك يتكون من خدمات صغيرة، فإن K8s يجعل من السهل إدارة خدمات متعددة والتأكد من اتصالها جميعًا بسلاسة.
هل تحتاج إلى تطبيق يظل مرنًا حتى عند فشل أجزاء منه؟ تضمن قدرات Kubernetes للإصلاح الذاتي تقليل وقت التوقف عن العمل إلى الحد الأدنى.
إذا كنت تقوم بإنشاء مسار التكامل المستمر/النشر المستمر، فإن التحديثات المستمرة لـ Kubernetes وميزات التراجع السهلة تجعله خيارًا رائعًا.
يعد K8s مثاليًا إذا كنت بحاجة إلى إدارة أعباء العمل عبر العديد من موفري الخدمات السحابية أو مراكز البيانات الخاصة بك. فهو يزيل البنية الأساسية حتى تتمكن من التركيز على تطبيقك.
لكن Kubernetes ليس ضروريًا دائمًا. هنا قد ترغب في تجنب التعقيد:
إذا كان تطبيقك عبارة عن خدمة صغيرة ذات حاوية واحدة، فإن Kubernetes مبالغة. التزم بـ Docker لتحقيق البساطة.
إذا كان فريقك جديدًا على الحاويات، فقد يكون الانتقال مباشرةً إلى Kubernetes أمرًا شاقًا. Master Docker أولاً قبل الغوص في K8s.
بالنسبة للتطبيقات ذات حركة المرور المنخفضة والتي يمكن التنبؤ بها والتي لا تحتاج إلى توسيع مستمر أو تجاوز الفشل، فإن الحمل الزائد لـ Kubernetes لا يستحق كل هذا العناء.
إذا كنت تقوم بمشروع مؤقت، مثل مشروع هاكاثون أو إثبات مفهوم سريع، فقد يسبب Kubernetes مشكلة أكثر مما يستحق.
يمكن أن تكون K8s ثقيلة الموارد. إذا كنت تعمل في بيئة ذات وحدة معالجة مركزية أو ذاكرة أو مساحة تخزين محدودة، فقد يؤدي ذلك إلى إبطائك أكثر مما يساعدك.
تعد Kubernetes أداة رائعة عندما تحتاج إلى قابلية التوسع والمرونة والتنسيق السلس للحاويات. إنه يزيل العبء عن كتفيك من خلال أتمتة العديد من المهام المعقدة التي يصعب إدارتها يدويًا باستخدام حاويات مستقلة. ومع ذلك، لا تقفز إليها لمجرد أنها عصرية. قم بتقييم احتياجات تطبيقك أولاً.
إذا كنت تقوم بتشغيل تطبيقات صغيرة ويمكن التنبؤ بها، فقد يكون Docker وحده كافيًا بالنسبة لك. ولكن مع نموك وتوسعك، سيصبح Kubernetes أفضل صديق لك.
كمطور مبتدئ، سأعترف بأن النطاق الهائل لـ Kubernetes وجميع أجزائه المتحركة - Pods، Services، Ingress، autoscaling - يمكن أن يكون ساحقًا. من السهل أن تضيع في قدراتها. لكن الدرس الأساسي هو معرفة متى يجب إبقاء الأمور بسيطة ومتى يكون التعقيد يستحق ذلك بالفعل. قم دائمًا بوزن الإيجابيات والسلبيات بعناية، لأن الالتزام أحيانًا بالحاويات المستقلة يمكن أن يوفر الكثير من الوقت والصداع.
@piyushsachdeva
فيديو اليوم الرابع
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3