اعتبارات التخزين لخدمة Azure Kubernetes (AKS)

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

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

توضح هذه المقالة العوامل والخيارات التي تحتاج إلى مراعاتها في تحديد خدمة التخزين الصحيحةواعتبارات التصميم. يوفر توصيات محددة في توصيات التصميم.

حدد خدمة التخزين المناسبة

يتطلب اختيار وحدات SKU والأحجام المناسبة لعمليات التوزيع الأولية بعض التقييمات، وربما إثبات المفهوم أو بيئة الاختبار. فيما يلي الإرشادات عالية المستوى لمساعدتك على بدء استخدام التخزين ل AKS:

  • بيانات منظّمة البنية. بالنسبة للبيانات المنظمة التي يمكن لتطبيقك تخزينها في قاعدة بيانات مدارة متوفرة على النظام الأساسي (على سبيل المثال، Azure SQL)، نوصي باستخدام قاعدة بيانات مدارة.

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

  • بيانات التطبيق المشتركة. بالنسبة لبيانات التطبيق المشتركة التي تتطلب أداء عاليا، استخدم إما Azure NetApp Files أو الطبقة المتميزة من Azure Files. بالنسبة لبيانات التكوين المشتركة التي تتطلب أداء محدودا فقط، استخدم المستوى القياسي من ملفات Azure.

  • النطاق الترددي لطلبات تخزين التطبيق&. تأكد من أن العقد الخاصة بك لديها نطاق ترددي كاف للشبكة للتعامل مع كل من طلبات التطبيق وطلبات التخزين. تنتقل حركة مرور التخزين عبر مكدس الشبكة، سواء كان بروتوكول عمليات النقل هو Server Message Block (SMB) أو NFS.

  • زمن انتقال منخفض، IOPS عال. استخدم الأقراص للتخزين إذا كان تطبيقك يحتاج إلى زمن انتقال منخفض باستمرار لتطبيقات المراسلة وعمليات الإدخال/الإخراج العالية في الثانية (IOPS) ومعدل نقل عال لتشغيل قواعد البيانات الخاصة بك على Kubernetes. للحصول على أفضل أداء، ضع في اعتبارك استخدام Azure Premium SSD أو Azure Premium SSD v2 أو Azure Ultra Disk Storage.

اعتبارات التصميم

الاعتبارات التالية هي لتصميم التخزين ل AKS. ضع في اعتبارك مكان التخزين المطلوب في بيئة AKS الخاصة بك، وحدد أفضل حل لكل متطلبات.

أقراص نظام التشغيل (OS)

بالنسبة لأقراص نظام التشغيل (OS)، ضع في اعتبارك العوامل التالية:

  • الأقراص سريعة الزوال لنظام التشغيل. يتطلب كل جهاز ظاهري (VM) في Azure قرصا لنظام التشغيل الخاص به. نظرا لأن عقد Kubernetes سريعة الزوال، فإن AKS افتراضيا لاستخدام أقراص نظام التشغيل سريعة الزوال على أحجام الأجهزة الظاهرية المدعومة. لمزيد من المعلومات حول أقراص نظام التشغيل سريعة الزوال، راجع نظام التشغيل المؤقت.

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

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

بيانات التطبيق

تحتاج بعض أحمال العمل إلى مخزن بيانات متسق لتخزين بيانات التطبيق. إذا كان تطبيقك يتطلب قاعدة بيانات، ففكر في استكشاف قواعد البيانات المدارة في Azure، والتي تتضمن الخيارات التالية:

حلول التخزين في AKS

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

الحلول المستندة إلى القرص

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

حلول الأقراص سريعة الزوال

ضع في اعتبارك ما إذا كان تطبيقك يتطلب تخزينا مؤقتا غير دائم أو المكان الذي تريد فيه استخدام محركات الأقراص عالية الأداء في الأجهزة الظاهرية المحسنة للتخزين. للاتصال بوحدة تخزين سريعة الزوال، يمكنك استخدام خيار emptyDir في Kubernetes أو برنامج التشغيل لوحدة تخزين محلية سريعة الزوال CSI. نوصي ب emptyDir للبيانات سريعة الزوال، مثل مساحة الصفر. للتخزين على سلسلة الأجهزة الظاهرية المحسنة للتخزين، نوصي باستخدام CSI مع وحدة تخزين محلية سريعة الزوال. لمزيد من المعلومات حول برامج تشغيل CSI، راجع برامج تشغيل واجهة تخزين الحاوية (CSI) على خدمة Azure Kubernetes (AKS).

الحلول المستندة إلى الملفات

ضع في اعتبارك ما إذا كانت pods الخاصة بك بحاجة إلى مشاركة نظام ملفات. يعد نظام الملفات المشتركة مثاليا لبيانات التطبيق والتكوين التي تتم قراءتها ومشاركتها بواسطة pods متعددة في مجموعة Kubernetes الخاصة بك. يعرض تخزين الملفات نظام ملفات مشترك عبر NFS أو SMB/Common Internet File System (CIFS). يحتوي Azure على حلين للتخزين المستند إلى الملفات: Azure Files وAzure NetApp Files.

Azure Files

بالنسبة إلى Azure Files، ضع في اعتبارك الخيارات التالية:

  • مشاركة ملف ثابتة أو تم إنشاؤها ديناميكيا. ضع في اعتبارك ما إذا كنت تريد استخدام مشاركة ملف ثابتة تم إنشاؤها خارج AKS، أو إذا كنت تريد أن تقوم AKS بإنشاء مشاركة الملف ديناميكيا نيابة عنك. لمزيد من المعلومات، راجع:

  • أداء قياسي أو متميز. تقييم ما إذا كان الأداء القياسي كافيا أو إذا كنت بحاجة إلى أداء متميز من Azure Files.

  • SMB/CIFS أو NFS. للوصول إلى Azure Files، قم بتقييم ما إذا كان يجب أن يستخدم حمل العمل الخاص بك واجهة برمجة التطبيقات للبروتوكول الافتراضي، SMB/CIFS، أو إذا كان حمل العمل الخاص بك يتطلب دعم NFS.

  • نموذج الشبكة للوصول. ضع في اعتبارك نموذج الشبكة الذي تريد استخدامه للوصول إلى ملفات Azure: الوصول عبر عنوان IP العام المباشر أو نقطة نهاية الخدمة أو ارتباط خاص.

ملفات Azure NetApp

بالنسبة إلى Azure NetApp Files، ضع في اعتبارك الخيارات التالية:

Blob Storage

ضع في اعتبارك كمية البيانات غير المنظمة التي يحتاج تطبيقك إلى تخزينها. يمكن الوصول إلى تخزين Azure Blob عبر واجهة برمجة تطبيقات HTTP أو من خلال SDKs. يعد تركيب تخزين كائن ثنائي كبير الحجم كنظام ملفات في حاوية أو جراب مثاليا لأحمال عمل التطبيق التي تحتوي على كميات هائلة من البيانات غير المنظمة، مثل ملفات السجل والصور والمستندات ووسائط الدفق وبيانات التعافي من الكوارث.

  • تكرار البيانات. ضع في اعتبارك تكرار البيانات الذي يناسب تطبيقك. لمزيد من المعلومات، راجع تكرار Azure Storage. يتم تحديد تكرار البيانات على مستوى حساب التخزين.

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

  • طريقة المصادقة للوصول. ضع في اعتبارك طريقة المصادقة التي يجب أن يستخدمها التطبيق الخاص بك للوصول إلى تخزين الكائن الثنائي كبير الحجم: مفتاح التخزين أو SAS أو Azure Active Directory (Azure AD). لمزيد من المعلومات، راجع السماح بالوصول إلى تخزين Azure.

  • واجهة برمجة التطبيقات لتخزين كائن ثنائي كبير الحجم تجريدي. ضع في اعتبارك واجهة برمجة التطبيقات التي يجب استخدامها. عادة ما تستخدم التطبيقات التي تصل إلى تخزين الكائن الثنائي كبير الحجم واجهة برمجة التطبيقات في التطبيق من خلال إحدى مجموعات SDK، والتي تلخص التفاعل مع تخزين الكائن الثنائي كبير الحجم من مجموعة Kubernetes. لمزيد من المعلومات حول المكتبات للغات البرمجة المختلفة، راجع مقدمة حول تخزين Azure Blob.

  • تخزين كائن ثنائي كبير الحجم ثابت أو تم إنشاؤه ديناميكيا. ضع في اعتبارك ما إذا كنت تريد استخدام حاوية تخزين كائن ثنائي كبير الحجم ثابتة تم إنشاؤها خارج AKS أو إذا كنت تريد أن تقوم AKS بإنشاء حاوية تخزين كائن ثنائي كبير الحجم ديناميكيا نيابة عنك. لمزيد من المعلومات، راجع:

  • برنامج تشغيل للوصول إلى التخزين. ضع في اعتبارك كيف يجب أن يصل تطبيقك إلى تخزين الكائن الثنائي كبير الحجم. للوصول إليه كنظام ملفات، يمكنك استخدام برنامج تشغيل blob CSI في Kubernetes. يسمح برنامج التشغيل هذا بالوصول إلى تخزين الكائن الثنائي كبير الحجم إما من خلال بروتوكول NFSv3 أو من خلال برنامج تشغيل الصمامات.

حلول التخزين الأخرى

ضع في اعتبارك أنواعا أخرى من التخزين إذا كان تطبيقك يتطلب شيئا غير موصوف في هذه المقالة. هناك العديد من حلول التخزين المتخصصة في Azure التي يمكن أن تتكامل مع Kubernetes. لا تغطي هذه المقالة هذه، ولكن القائمة التالية تحدد الحلول المحتملة:

  • ذاكرة التخزين المؤقت ل Azure HPC. تعمل HPC Cache على تسريع الوصول إلى بياناتك لمهام الحوسبة عالية الأداء (HPC). من خلال تخزين الملفات مؤقتاً في Azure، يجلب Azure HPC Cache قابلية التوسع للحوسبة السحابية إلى سير عملك الحالي. لمزيد من المعلومات، راجع دمج Azure HPC Cache مع خدمة Azure Kubernetes.

  • Azure Data Lake Storage Gen2. Data Lake Storage Gen2 هو نوع خاص من تخزين الكائن الثنائي كبير الحجم الذي تم تحسينه لأحمال عمل البيانات الضخمة مثل Hadoop وSpark. لمعرفة المزيد من المعلومات، راجع مقدمة حول Azure Data Lake Storage Gen2.

توصيات التصميم

يوفر هذا القسم توصيات تستند إلى ما ثبت فعاليته لعملاء Azure.

  • استخدم Azure Private Link. للأمان، نوصي باستخدام Azure Private Link لجميع حلول التخزين التي تدعمه. يتيح Azure Private Link الوصول إلى خدمات Azure، مثل Azure Storage وقاعدة بيانات SQL والخدمات المستضافة من Azure عبر نقطة نهاية خاصة في شبكتك الظاهرية. لمزيد من المعلومات، راجع ما هو ارتباط Azure الخاص؟

  • استخدم الأقراص سريعة الزوال لنظام التشغيل. بالنسبة لأقراص نظام التشغيل، نوصي باستخدام الأقراص سريعة الزوال. للاستفادة من هذه الميزة، حدد حجم جهاز ظاهري يحتوي على قرص مؤقت بحجم مناسب. لمزيد من المعلومات، راجع أقراص نظام التشغيل سريعة الزوال لأجهزة Azure الظاهرية.

  • استخدم قواعد البيانات المدارة. بالنسبة لبيانات التطبيق، نوصي باستخدام قواعد البيانات المدارة. للحصول على قائمة بخيارات قاعدة البيانات، راجع أنواع قواعد البيانات على Azure.

تصف الأقسام التالية المزيد من التوصيات لأقراص Azure وملفات Azure وتخزين الكائنات الثنائية كبيرة الحجم.

أقراص Azure

بالنسبة لأقراص Azure، نوصي بخيارات التصميم التالية:

  • استخدم أقراص Premium أو Ultra. في معظم الحالات، نوصي بأقراص Premium أو Ultra لضمان الأداء المناسب. لمزيد من المعلومات، راجع Azure Disk Storage.

  • حجم العقدة للأقراص ومعدل النقل. نوصي بالتأكد من أن حجم عقدة Kubernetes كبيرة بما يكفي لدعم عدد الأقراص ومقدار معدل النقل الإجمالي. للحصول على معلومات حول الأحجام والخصائص، راجع أحجام الأجهزة الظاهرية في Azure.

  • إنشاء لقطات من وحدات التخزين الثابتة. نوصي بأخذ لقطات من وحدات التخزين الثابتة، إما لتوفير وحدات تخزين جديدة يتم ملؤها مسبقا ببيانات اللقطة أو لاستعادة وحدة تخزين موجودة إلى حالة سابقة باستخدام إمكانية اللقطة لبرنامج تشغيل Azure Disks CSI. لمزيد من المعلومات، راجع لقطات وحدة التخزين.

  • تجنب تخطيط القرص عبر الأقراص. نوصي بتجنب التخطيط عبر أقراص متعددة في Kubernetes.

  • استخدم PV/PVC. نوصي باستخدام PV وPVC في Kubernetes لإنشاء أقراص ديناميكيا عند الحاجة. لمزيد من المعلومات حول التخزين المستمر، راجع خيارات التخزين للتطبيقات في خدمة Azure Kubernetes (AKS).

Azure Files

بالنسبة إلى Azure Files، نوصي بخيارات التصميم التالية:

  • اختر Premium. إذا كان الأداء مهما، نوصي باستخدام المستوى Premium.

  • إنشاء حسابات تخزين مخصصة. نوصي بتوفير حسابات تخزين مخصصة لمشاركات الملفات.

  • اختر مشاركات الملفات الثابتة أو التي تم إنشاؤها ديناميكيا. نوصي بالنظر بعناية فيما إذا كنت تريد أن تقوم AKS بإنشاء مشاركات الملفات أو إذا كنت تريد إنشاؤها بشكل ثابت خارج Kubernetes. يمكن أيضا حذف التخزين الذي تم إنشاؤه ديناميكيا ديناميكيا. لمزيد من المعلومات حول السماح ل AKS بإنشاء مشاركات الملفات ديناميكيا، راجع إنشاء وحدة تخزين ثابتة واستخدامها ديناميكيا مع ملفات Azure.

ملفات Azure NetApp

بالنسبة إلى Azure NetApp Files، نوصي بخيارات التصميم التالية:

  • اختر مستوى أداء استنادا إلى متطلبات التطبيق. تقدم Azure NetApp Files 3 مستويات أداء تقدم فئات مختلفة من الأداء. لمزيد من المعلومات، راجع Performance considerations for Azure NetApp Files.

  • إنشاء تجمعات السعة في نفس منطقة Azure مثل نظام مجموعة AKS. لمزيد من المعلومات، راجع إنشاء تجمع سعة لملفات Azure NetApp.

  • استخدم نوع QoS التلقائي لتجمعات السعة.

  • خطط لشبكتك. يوجد خياران لتصميم الشبكة:

    1. إذا كنت تستخدم نفس VNet ل AKS وAzure NetApp Files، فقم بإنشاء شبكة فرعية مخصصة ل Azure NetApp Files وتفويض الشبكة الفرعية إلى Microsoft.NetApp/Volumes.
    2. إذا كنت تستخدم شبكات ظاهرية مختلفة، فنشئ نظير VNet بينها.

Blob Storage

لتخزين الكائن الثنائي كبير الحجم، نوصي بخيارات التصميم التالية:

الخطوات التالية

تعرف على كيفية تحديد نطاق تخصيص التكلفة لتوزيع أو خدمة أو تسمية أو جراب أو مساحة اسم في AKS باستخدام Kubecost.