شرح تقنية التخزين: Kubernetes والحاويات والتخزين الدائم
الحاويات مرادفة لـ تطوير التطبيقات السحابية، ويعد Kubernetes أساسيًا بين منصات تنسيق الحاويات المتاحة.
في هذه المقالة، نحن ننظر إلى الحاوياتما الذي يميزه، وكيف يتناسب Kubernetes مع الحاويات، وكيف يتم تنظيم Kubernetes، وكيف يتعامل مع التخزين الدائم وحماية البيانات.
نحن ننظر أيضًا إلى واجهة تخزين الحاويات (CSI)، والتي توفر برنامج تشغيل Kubernetes للارتباط بأجهزة صانع مجموعة التخزين.
أخيرًا، نلقي نظرة على منصات إدارة Kubernetes التي يوفرها بائعو التخزين الرئيسيون.
ما هي الحاويات؟
إن الحاويات هي شكل من أشكال المحاكاة الافتراضية، وربما يكون من الأفضل فهمها من خلال مقارنتها بمحاكاة الخادم “التقليدية”.
إنشاء خادم افتراضي – فكر في VMware وNutanix – المشرف الافتراضي الطبقة التي تخفي الموارد المادية للخادم وهي الموقع الذي يتم فيه تشغيل العديد من الخوادم المنطقية المعروفة باسم الآلات الافتراضية.
تتخلص حاويات التطبيقات من طبقة المشرف الافتراضي وتعمل مع نظام تشغيل الخادم. تغلف الحاويات كل ما يلزم لتشغيل التطبيق، ويمكن إنشاؤها وتشغيلها واستنساخها وتوسيع نطاقها وإطفائها بسرعة كبيرة.
الحاويات “أخف وزنًا”، ولا تحتاج إلى برنامج تشغيل افتراضي أو تكرارات متعددة لنظام التشغيل الافتراضي. وهي تتطلب موارد خادم أقل وهي سهلة النقل عبر البيئات المحلية والسحابية. وهذا يجعل الحاويات مناسبة تمامًا لأحمال العمل التي تشهد ارتفاعات هائلة في الطلب، وخاصة على الويب.
تعمل الحاويات أيضًا على مبدأ الخدمات المصغرة، حيث يتم دمج وظائف التطبيق المنفصلة في حالات صغيرة تعمل بنظام الكود مبنية حول واجهات برمجة التطبيقات (APIs) التي تربطها معًا – وهذا على النقيض من التطبيقات الضخمة المتجانسة في الماضي.
تُعد الحاويات والخدمات المصغرة أيضًا مرادفة لمنهجيات تطوير البرامج التكرارية في DevOps.
ما هو Kubernetes؟
Kubernetes هو منسق حاويات. إنه ليس الوحيد. هناك أيضًا Apache Mesos وDocker Swarm وNomad وRed Hat OpenShift وغيرها. هناك AWS Elastic Container Services (ECS) وAzure Kubernetes Service وGoogle Cloud Kubernetes في السحابة. وهناك منتجات VMware Tanzu التي تدير Kubernetes في بيئة المحاكاة الافتراضية الخاصة بها.
يتولى منظمو الحاويات التعامل مع وظائف مثل إنشاء الحاويات وإدارتها وأتمتتها وموازنة الأحمال والعلاقة بالأجهزة – بما في ذلك التخزين – الخاصة بالحاويات. يتم تنظيمها، بلغة Kubernetes، في قرون، وهي عبارة عن مجموعة من حاوية واحدة أو أكثر.
في هذا الشرح، سنركز على Kubernetes. وكما ذكرنا، فهو ليس منسق الحاويات الوحيد، ولكنه وفقا لبعض الأبحاثإنها الشركة الرائدة في السوق بنسبة تزيد عن 97%.
كيف يتم تنظيم Kubernetes؟
الحاوية هي الوحدة الأساسية التي تحتوي على وقت تشغيل التطبيق والرمز، بالإضافة إلى التبعيات والمكتبات وما إلى ذلك. الحاويات عديمة الجنسية لأنها لا تخزن أي بيانات أو معلومات حول الحالات السابقة. وهي محمولة للغاية وقابلة للاستنساخ وقابلة للتطوير وما إلى ذلك لأنها تأخذ معها كل ما تحتاجه. إن انعدام الجنسية هو أيضًا نقطة ضعف محتملة، كما سنرى.
بعد ذلك تأتي المجموعات التي تحتوي على وحدات تخزين وتستضيف الحاويات وتديرها. يمكن لهذه الحاويات أن تخدم وظائف مختلفة – مثل واجهة المستخدم وقاعدة البيانات الخلفية – ولكنها موجودة على نفس العقدة (أي الخادم) وقريبة من بعضها البعض وبالتالي تتواصل بسرعة.
العقد عبارة عن آلات مادية أو أجهزة افتراضية داخلها تعمل على تشغيل وحدات التخزين. ويمكن أن تكون عقدًا رئيسية أو عقدًا عاملة. العقد الرئيسية هي مستوى التحكم الذي يدير نشر مجموعة Kubernetes وحالتها.
تتضمن عقد المكونات الرئيسية: خادم API، الذي يتم من خلاله التفاعل مع المجموعة؛ والمجدول الذي يجد ويحدد أفضل العقد لتشغيل الأوعية؛ ومدير وحدة التحكم، الذي يساعد في الحفاظ على الحالة المطلوبة للمجموعة، مثل عدد النسخ المتماثلة التي يجب صيانتها؛ وetcd، وهو مخزن قيمة مفتاح يحمل حالة المجموعة.
تُشغِّل العقد العاملة حاويات بمهام مفوضة من العقد الرئيسية. تتألف العقد العاملة من: Kubelets، وهي الواجهة الأساسية بين العقدة العاملة ومستوى التحكم في العقدة الرئيسية؛ وkube-proxy، الذي يتعامل مع اتصالات الشبكة مع الحاويات؛ ووقت تشغيل الحاوية، وهو البرنامج الذي يُشغِّل الحاويات بالفعل.
ما هو التحدي الذي يواجهنا مع التخزين وKubernetes؟
في أبسط صوره، يكون التخزين في Kubernetes مؤقتًا. وهذا يعني أنه ليس دائمًا ولن يكون متاحًا بعد حذف الحاوية. يتم كتابة تخزين Kubernetes الأصلي في الحاوية ويتم إنشاؤه من مساحة مؤقتة على الجهاز المضيف والتي لا توجد إلا طوال عمر حاوية Kubernetes.
ولكن، بطبيعة الحال، تتطلب تطبيقات المؤسسات تخزينًا مستمرًا، وKubernetes لديه طرق لتحقيق ذلك.
كيف يوفر Kubernetes تخزينًا دائمًا؟
يدعم Kubernetes التخزين الدائم الذي يمكن كتابته إلى مجموعة واسعة من التنسيقات المحلية والسحابية، بما في ذلك تنسيقات الملفات والكتل والكائنات وفي خدمات البيانات، مثل قواعد البيانات.
يمكن الرجوع إلى التخزين من داخل الجراب، ولكن لا يُنصح بذلك لأنه ينتهك مبدأ قابلية النقل. بدلاً من ذلك، يستخدم Kubernetes وحدات تخزين ثابتة (PVs) ومطالبات وحدات تخزين ثابتة (PVCs) لتحديد متطلبات التخزين والتطبيق.
تقوم الخلايا الكهروضوئية والألواح البلاستيكية بفصل التخزين وتسمح باستهلاكه بواسطة كبسولة بطريقة محمولة.
تحدد وحدة التخزين الدائمة – التي لا يمكن نقلها عبر مجموعات Kubernetes – مساحة التخزين في المجموعة التي تم تحديدها من خلال معلمات الأداء والسعة. وهي تحدد وحدة تخزين دائمة وتحتوي على تفاصيل مثل فئة الأداء/التكلفة والسعة ومكونات وحدة التخزين المستخدمة والمسارات وعناوين IP وأسماء المستخدمين وكلمات المرور وما يجب فعله بوحدة التخزين بعد الاستخدام.
في هذه الأثناء، يصف PVC طلبًا لتخزين التطبيقات التي سيتم تشغيلها في Kubernetes. تكون PVCs محمولة وتنتقل مع التطبيق الموجود في حاوية. يحدد Kubernetes مساحة التخزين المتاحة من PVs المحددة ويربط PVC بها.
يتم تعريف PVCs في الجراب يامل ملف التكوين بحيث ينتقل المطالبة معه ويمكنه تحديد السعة وأداء التخزين وما إلى ذلك.
تقوم StatefulSet بمضاعفة عناصر PVC للتخزين الدائم عبر الأوعية، من بين أشياء أخرى.
يمكن تجميع مجموعة من PVs في فئة تخزين، والتي تحدد مكون إضافي لحجم التخزين المستخدم، والمزود الخارجي – مثل السحابة – واسم برنامج تشغيل CSI (انظر أدناه).
غالبًا ما يتم وضع علامة على فئة تخزين واحدة على أنها “افتراضية” حتى لا يتعين استدعاؤها باستخدام PVC، أو حتى يمكن استدعاؤها إذا لم يحدد المستخدم فئة تخزين في PVC. يمكن أيضًا إنشاء فئة تخزين للبيانات القديمة التي قد تحتاج إلى الوصول إليها بواسطة التطبيقات الموجودة في حاويات.
ما هو CSI؟
CSI هي واجهة تخزين الحاويات. تصف CSI برامج التشغيل الخاصة بـ Kubernetes ومنظمي الحاويات الآخرين الذين يقدمهم موردو التخزين لعرض سعتهم للتطبيقات الحاوية كتخزين دائم.
في وقت كتابة هذا المقال، هناك أكثر من 130 برنامج تشغيل CSI متاح لتخزين الملفات والكتل والكائنات بتنسيقات الأجهزة والسحابة.
يوفر CSI واجهة تحدد تكوين التخزين الدائم الخارجي للمنسق، ومدخلاته/مخرجاته (I/O)، والوظائف المتقدمة مثل اللقطات والاستنساخ.
يمكن استخدام وحدة تخزين CSI لتحديد وحدات تخزين خارجية. على سبيل المثال، يمكنك إنشاء وحدات تخزين خارجية وفئات تخزين تشير إلى وحدة تخزين خارجية محددة بواسطة مكون إضافي لـ CSI، مع تشغيل عملية التجهيز بواسطة وحدة تخزين خارجية تحددها.
ماذا يقدم بائعو التخزين للمساعدة في تخزين K8s وحماية البيانات؟
إن مكونات Kubernetes عديدة ومتعددة الوحدات. ولعل من غير المستغرب أن يستفيد بائعو مجموعات التخزين من إمكانية إضافة طبقة إدارة أخرى فوقها وتبسيط توفير خدمات التخزين والبيانات للمسؤولين. وهنا، نلقي نظرة على منتجات بائعي التخزين في هذا المجال.
تتراوح المتطلبات هنا من تكوين الموارد وفقًا لملف التخزين المطلوب من قبل التطبيقات، بالإضافة إلى مصدر وهدف النسخ الاحتياطية ووظائف حماية البيانات الأخرى، والتي يمكن أن تتغير جميعها بسرعة.
تتمتع كل من Dell EMC وIBM وHPE وHitachi وNetApp وPure Storage بمنصات لإدارة الحاويات تسمح للمطورين بكتابة متطلبات التخزين وحماية البيانات في التعليمات البرمجية بسهولة أكبر مع السماح أيضًا بإدارة وظائف تكنولوجيا المعلومات التقليدية مثل حماية البيانات دون الحاجة إلى مهارات عميقة.
يستخدم الجميع برامج تشغيل CSI في شكل ما لتقديم خدمات التزويد وإدارة التخزين والنسخ الاحتياطي لبيئة التخزين الخاصة بهم، وفي بعض الحالات، لأي بيئة تخزين، بما في ذلك تلك الموجودة في السحابة.
ماذا تفعل وحدات تخزين الحاويات من Dell؟
تعتمد وحدات تخزين الحاويات (CSM) من Dell على برامج تشغيل CSI. وفي حين تساعد برامج تشغيل CSI الأساسية في توفير وحذف وتعيين وإلغاء تعيين أحجام البيانات، تساعد وحدات تخزين الحاويات (CSM) من Dell في الأتمتة والتحكم والبساطة.
تسمح العديد من أدوات إدارة خدمة العملاء للعملاء بالوصول إلى ميزات مجموعة التخزين التي لا يمكنهم الوصول إليها عادةً. تستهدف مكونات CSM الإضافية هذه وظائف أو خدمات بيانات محددة، بما في ذلك التكرار، والقدرة على المراقبة، والمرونة، وتنقل التطبيقات (الاستنساخ)، واللقطات الفورية، والتفويض (أي الوصول إلى موارد التخزين)، والتشفير.
تتيح أدوات CSM من Dell للعملاء جعل حاويات التخزين الحالية جاهزة من خلال توفير الوصول إلى مجموعات تخزين Dell بدلاً من استخدام برامج إضافية للوصول إلى هذه الميزات.
ماذا يفعل Red Hat Openshift من IBM للحاويات؟
أدى استحواذ IBM على Red Hat في عام 2018 إلى منحها محفظة OpenShift، وهو الموقع الرئيسي لجهود إدارة الحاويات الخاصة بها.
يستخدم OpenShift مطالبات الحجم الدائمة (PVC) الخاصة بـ Kubernetes عبر برامج تشغيل CSI للسماح للمطورين بطلب موارد التخزين. يمكن لمطالبات الحجم الدائمة الوصول إلى وحدات التخزين الدائمة من أي مكان في منصة OpenShift.
تدعم منصة OpenShift Container العديد من مكونات PV الشائعة في الموقع وفي السحابة، بما في ذلك Amazon EBS، وAzure Files، وAzure Managed Disks، وGoogle Cloud Persistent Disk، وCinder، وiSCSI، وLocal Volume، وNFS، وVMware vSphere.
يستخدم مزود البنية التحتية المتقاربة Nutanix أيضًا OpenShift كمنصة لنشر الحاويات.
كيف يساعد Ezmeral Runtime Enterprise من HPE في إدارة الحاويات؟
قامت شركة HPE بتطوير منصة إدارة Kubernetes الخاصة بها، HPE Ezmeral Runtime Enterprise، والتي يمكن نشرها عبر بيئة Synergy الخاصة بشركة HPE.
إنها عبارة عن منصة برمجية مصممة لنشر التطبيقات السحابية وغير السحابية باستخدام Kubernetes ويمكن تشغيلها على البنية الأساسية المادية أو الافتراضية، في الموقع أو في أي سحابة. إنها تتجاوز مجرد نشر التطبيقات، مع إدارة البيانات بما في ذلك خارج الحافة.
توفر Ezmeral تخزينًا مستمرًا للحاويات وأتمتة التكوين لإعداد HA للحاويات والنسخ الاحتياطي والاستعادة والتحقق من الأمان والمراقبة لتقليل مهام الإدارة اليدوية
ماذا تفعل خدمة Hitachi Kubernetes لنشر الحاويات؟
في عام 2021، انضمت شركة Hitachi إلى ساحة تخزين Kubernetes من خلال خدمة Hitachi Kubernetes (HKS)، والتي تسمح للعملاء بإدارة تخزين الحاويات في مراكز البيانات المحلية والسحابات العامة الرئيسية الثلاث.
يتيح HKS نشر Hitachi Unified Compute Platform كسحابة خاصة مُدارة بواسطة Kubernetes عبر بيئات سحابية محلية وهجينة.
تستخدم HKS برامج تشغيل CSI لإدارة وحدات التخزين الدائمة مباشرةً على عقد Kubernetes، وهو ما يميزها عن العروض الأصلية للحاويات التي تقدمها الموردين الآخرين.
كيف يساعد NetApp Astra في نشر الحاويات وإدارتها؟
Astra من NetApp هي منصة إدارة الحاويات الخاصة بها. وهي تتألف من عدد من المكونات، بما في ذلك Astra Control لإدارة دورة حياة تطبيقات Kubernetes؛ وAstra Control Service لإدارة بيانات أحمال عمل Kubernetes في السحابات العامة؛ وAstra Control Centre لأحمال عمل Kubernetes المحلية؛ وAstra Trident لتوفير وإدارة تخزين CSI. وهناك أيضًا Astra Automation وواجهات برمجة التطبيقات وحزمة SDK الخاصة بها لتدفقات عمل Astra.
ما هي الوظائف التي توفرها Pure Storage Portworx لنشر الحاويات؟
Portworx هي منصة الحاويات الخاصة بشركة Pure Storage، وتوفر لها إمكانية التجهيز والاتصال وتكوين الأداء لمجموعات Kubernetes. ويمكنها اكتشاف التخزين وتوفير سعة ثابتة لتطبيقات المؤسسة مع إمكانية الوصول إلى الكتل والملفات والكائنات والتخزين السحابي.
يمكن للعملاء استخدام Portworx لبناء مجموعات من التخزين وإدارة التزويد وتوفير وظائف متقدمة مثل النسخ الاحتياطي واسترداد البيانات بعد الكوارث والأمان والتوسع التلقائي ونقل التخزين المحلي أو السحابي لدى موفري الخدمات السحابية الرئيسيين.