أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

إذا كنت مثل معظم الأشخاص، فمن المحتمل أنك تستخدم الموارد التي تعمل خارج مجموعتك. ربما تستخدم Taleo API لإرسال رسائل نصية أو تحليل الصور باستخدام Google Cloud Vision API.

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

مثال على خدمة خارجية مشتركة هو قاعدة بيانات تعمل خارج مجموعة Kubernetes. على عكس قواعد البيانات السحابية مثل Google Cloud Data Store أو Google Cloud Spanner، التي تستخدم نقطة نهاية واحدة لجميع عمليات الوصول، فإن معظم قواعد البيانات لها نقاط نهاية منفصلة لظروف مختلفة.
أفضل الممارسات لاستخدام قواعد البيانات التقليدية مثل MySQL وMongoDB تعني عادةً أنك تتصل بمكونات مختلفة لبيئات مختلفة. يمكنك الحصول على جهاز كبير لبيانات الإنتاج وجهاز أصغر لبيئة الاختبار. سيكون لكل واحد منهم عنوان IP أو اسم المجال الخاص به، ولكنك ربما لن ترغب في تغيير التعليمات البرمجية الخاصة بك عند الانتقال من بيئة إلى أخرى. لذا، بدلًا من تشفير هذه العناوين بشكل صارم، يمكنك استخدام اكتشاف الخدمة الخارجية المضمنة والمعتمدة على نظام أسماء النطاقات في Kubernetes بنفس طريقة استخدام خدمات Kubernetes الأصلية.

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

لنفترض أنك تقوم بتشغيل قاعدة بيانات MongoDB على Google Compute Engine. سوف تظل عالقًا في هذا العالم المختلط حتى تتمكن من نقله إلى المجموعة.

لحسن الحظ، يمكنك استخدام خدمات Kubernetes الثابتة لتجعل حياتك أسهل قليلاً. في هذا المثال، قمت بإنشاء خادم MongoDB باستخدام Google Cloud Launcher. وبما أنه تم إنشاؤه على نفس الشبكة (أو مجموعة Kubernetes VPC)، فيمكن الوصول إليه باستخدام عنوان IP داخلي عالي الأداء.

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

يوضح مثال التعليمات البرمجية التالي أن نقاط النهاية تحدد عنوان IP لقاعدة البيانات باستخدام نفس اسم mongo كالخدمة.

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

سيستخدم Kubernetes جميع عناوين IP للعثور على نقاط النهاية كما لو كانت Kubernetes Pods عادية، لذا يمكنك الآن الوصول إلى قاعدة البيانات باستخدام سلسلة اتصال بسيطة بالاسم أعلاه mongodb://mongo. ليست هناك حاجة لاستخدام عناوين IP في التعليمات البرمجية الخاصة بك على الإطلاق.

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

إذا كنت تستخدم قاعدة بيانات مستضافة على مضيف جهة خارجية، فمن المحتمل أن يكون مالكو المضيف قد زودوك بمعرف الموارد المنتظم (URI) لمعرف الموارد الموحد للاتصال به. لذا، إذا تم إعطاؤك عنوان IP، فيمكنك ببساطة استخدام الطريقة السابقة. يوضح هذا المثال أن لدي قاعدتي بيانات MongoDB مستضافتين على مضيف mLab.

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

ستقوم هذه الخدمة بإجراء إعادة توجيه CNAME بسيطة على مستوى kernel بأقل تأثير على الأداء. وبفضل هذا يمكنك استخدام سلسلة اتصال أبسط.

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

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

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

أفضل ممارسات Kubernetes. رسم خرائط للخدمات الخارجية

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

على أن تستمر قريبا جدا ...

بعض الاعلانات 🙂

أشكركم على البقاء معنا. هل تحب مقالاتنا؟ تريد أن ترى المزيد من المحتوى المثير للاهتمام؟ ادعمنا عن طريق تقديم طلب أو التوصية للأصدقاء ، Cloud VPS للمطورين يبدأ من 4.99 دولارًا, تناظرية فريدة من خوادم المستوى المبتدئ ، اخترعناها من أجلك: الحقيقة الكاملة حول VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps من 19 دولارًا أو كيفية مشاركة الخادم؟ (متوفر مع RAID1 و RAID10 ، حتى 24 مركزًا وحتى 40 جيجا بايت DDR4).

Dell R730xd أرخص مرتين في مركز بيانات Equinix Tier IV في أمستردام؟ هنا فقط 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6 جيجا هرتز 14C 64 جيجا بايت DDR4 4x960 جيجا بايت SSD 1 جيجابت في الثانية 100 تلفزيون من 199 دولارًا في هولندا! Dell R420 - 2x E5-2430 2.2 جيجا هرتز 6C 128 جيجا بايت DDR3 2x960 جيجا بايت SSD 1 جيجا بايت في الثانية 100 تيرا بايت - من 99 دولارًا! أقرأ عن كيفية بناء شركة البنية التحتية. فئة مع استخدام خوادم Dell R730xd E5-2650 v4 بقيمة 9000 يورو مقابل فلس واحد؟

المصدر: www.habr.com

إضافة تعليق