التشغيل السريع: استخدام Azure Container Storage Preview مع خدمة Azure Kubernetes

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

المتطلبات الأساسية

  • في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

  • تتطلب هذه المقالة أحدث إصدار (2.35.0 أو أحدث) من Azure CLI. راجع كيفية تثبيت Azure CLI. إذا كنت تستخدم بيئة Bash في Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل. إذا كنت تخطط لتشغيل الأوامر محليا بدلا من Azure Cloud Shell، فتأكد من تشغيلها بامتيازات إدارية. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.

  • ستحتاج إلى عميل سطر أوامر Kubernetes، kubectl. يتم تثبيته بالفعل إذا كنت تستخدم Azure Cloud Shell، أو يمكنك تثبيته محليا عن طريق تشغيل az aks install-cli الأمر .

  • إذا لم تكن قد قمت بتثبيت Azure Container Storage بالفعل، فاتبع الإرشادات الواردة في تثبيت Azure Container Storage.

  • تحقق مما إذا كانت منطقتك المستهدفة مدعومة في مناطق Azure Container Storage.

الشروع في العمل

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

  • قم بتشغيل Azure Cloud Shell، أو إذا كنت تستخدم تثبيتا محليا، فسجل الدخول إلى Azure باستخدام الأمر az login .

  • إذا كنت تستخدم Azure Cloud Shell، فقد تتم مطالبتك بتحميل التخزين. حدد اشتراك Azure حيث تريد إنشاء حساب التخزين وحدد إنشاء.

تثبيت الملحق المطلوب

أضف أو قم بالترقية إلى أحدث إصدار من k8s-extension عن طريق تشغيل الأمر التالي.

az extension add --upgrade --name k8s-extension

تعيين سياق الاشتراك

تعيين سياق اشتراك Azure باستخدام az account set الأمر . يمكنك عرض معرفات الاشتراك لجميع الاشتراكات التي لديك حق الوصول إليها عن طريق تشغيل az account list --output table الأمر . تذكر استبدال <subscription-id> بمعرف اشتراكك.

az account set --subscription <subscription-id>

الاتصال بنظام المجموعة

للاتصال بنظام المجموعة، استخدم عميل سطر الأوامر Kubernetes، kubectl. يتم تثبيته بالفعل إذا كنت تستخدم Azure Cloud Shell، أو يمكنك تثبيته محليا عن طريق تشغيل az aks install-cli الأمر .

  1. قم بتكوين kubectl للاتصال بالمجموعة باستخدام az aks get-credentials الأمر . ثم استخدم الأمر التالي:

    • حمل بيانات الاعتماد ثم احرص على تكوين Kubernetes CLI بغرض استخدامها.
    • يستخدم ~/.kube/config، الموقع الافتراضي لملف تكوين Kubernetes. يمكنك تحديد موقع مختلف لملف تكوين Kubernetes باستخدام وسيطة --file .
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  2. تحقق من الاتصال بالمجموعة باستخدام kubectl get الأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

    kubectl get nodes
    
  3. يوضح مثال الإخراج التالي العقد في نظام المجموعة الخاص بك. تأكد من أن حالة جميع العقد تظهر Ready:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    دون اسم تجمع العقدة. في هذا المثال، سيكون nodepool1.

اختر خيار تخزين البيانات لتجمع التخزين الخاص بك

قبل نشر Azure Container Storage، ستحتاج إلى تحديد خيار التخزين الخلفي الذي تريد استخدامه لإنشاء تجمع التخزين ووحدات التخزين الثابتة. تتوفر حاليا ثلاثة خيارات:

  • Azure Elastic SAN: يعد Azure Elastic SAN مناسبا لقواعد البيانات للأغراض العامة وخدمات الدفق والمراسلة وبيئات CI/CD وأحمال العمل الأخرى من المستوى 1/الطبقة 2. يتم توفير التخزين عند الطلب لكل وحدة تخزين ولقطة وحدة تخزين تم إنشاؤها. يمكن لمجموعات متعددة الوصول إلى SAN واحد في وقت واحد، ولكن يمكن إرفاق وحدات التخزين الثابتة من قبل مستهلك واحد فقط في كل مرة.

  • أقراص Azure: تعد أقراص Azure مناسبة لقواعد البيانات مثل MySQL وMongoDB وPostgreSQL. يتم توفير التخزين لكل حجم تجمع تخزين حاوية مستهدفة والحد الأقصى لحجم وحدة التخزين.

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

إشعار

بالنسبة إلى Azure Elastic SAN وأقراص Azure، سيقوم Azure Container Storage بنشر تخزين النسخ الاحتياطي لك كجزء من التثبيت. لا تحتاج إلى إنشاء Elastic SAN أو قرص Azure الخاص بك. لاستخدام Elastic SAN، ستحتاج إما إلى دور مالك Azure Container Storage أو دور Azure Container Storage Contributor في اشتراك Azure.

استهلاك الموارد

يتطلب Azure Container Storage موارد عقدة معينة لتشغيل مكونات الخدمة. استنادا إلى تحديد نوع تجمع التخزين الخاص بك، والذي ستحدده عند تثبيت Azure Container Storage، هذه هي الموارد التي سيتم استهلاكها:

نوع تجمع التخزين مراكز وحدة المعالجة المركزية ذاكره الوصول العشوائي
Azure Elastic SAN  بلا بلا
أقراص Azure 1 1 جيجابيت
القرص المؤقت - Temp SSD 1 1 جيجابيت
القرص المؤقت - NVMe المحلي 25٪ من الذاكرات الأساسية (اعتمادا على حجم العقدة)* 2 GiB

الموارد المستهلكة هي لكل عقدة، وسيتم استهلاكها لكل عقدة في تجمع العقدة حيث سيتم تثبيت Azure Container Storage. إذا لم يكن لدى العقد موارد كافية، فسيفشل تشغيل Azure Container Storage. سيعيد Kubernetes تلقائيا محاولة تهيئة هذه القرون الفاشلة، لذلك إذا تم تحرير الموارد، يمكن تهيئة هذه القرون مرة أخرى.

*في نوع تجمع تخزين القرص المؤقت - NVMe المحلي، إذا كنت تستخدم أنواعا متعددة من وحدات SKU للجهاز الظاهري لعقد نظام المجموعة، فإن 25٪ من الذاكرات الأساسية لوحدة المعالجة المركزية المستهلكة تنطبق على أصغر وحدة SKU مستخدمة. على سبيل المثال، إذا كنت تستخدم مزيجا من أنواع الأجهزة الظاهرية من 8 ذاكرات أساسية و16 نواة، فإن استهلاك الموارد هو 2 نواة.

تأكد من أن نوع الجهاز الظاهري لنظام المجموعة الخاص بك يفي بالمعايير التالية

لاستخدام Azure Container Storage، ستحتاج إلى تجمع عقدة من ثلاثة أجهزة ظاهرية تعمل بنظام Linux على الأقل. يجب أن يكون لكل جهاز ظاهري ما لا يقل عن أربع وحدات معالجة مركزية ظاهرية (vCPUs). سيستهلك Azure Container Storage نواة واحدة لمعالجة الإدخال/الإخراج على كل جهاز ظاهري يتم نشر الملحق إليه.

اتبع هذه الإرشادات عند اختيار نوع الجهاز الظاهري لعقد نظام المجموعة. يجب اختيار نوع جهاز ظاهري يدعم تخزين Azure المتميز.

  • إذا كنت تنوي استخدام Azure Elastic SAN أو أقراص Azure كمخزن احتياطي، فاختر نوع جهاز ظاهري للأغراض العامة مثل standard_d4s_v5.
  • إذا كنت تنوي استخدام القرص المؤقت مع NVMe المحلي، فاختر نوع الجهاز الظاهري المحسن للتخزين مثل standard_l8s_v3.
  • إذا كنت تنوي استخدام القرص المؤقت مع SSD المؤقت، فاختر جهازا ظاهريا يحتوي على قرص SSD مؤقت مثل سلسلة Ev3 وEsv3.

تثبيت Azure Container Storage على نظام مجموعة AKS

إذا كانت مجموعة AKS تفي بمتطلبات الجهاز الظاهري، فقم بتشغيل الأمر التالي لتثبيت Azure Container Storage على نظام المجموعة وإنشاء تجمع تخزين. استبدال <cluster-name>و<resource-group> بالقيم الخاصة بك. استبدل <storage-pool-type> ب azureDiskأو ephemeraldiskأو elasticSan. إذا قمت بتحديد ephemeralDisk، يمكنك أيضا تحديد --storage-pool-option، ويمكن أن تكون NVMe القيم أو Temp.

سيؤدي تشغيل هذا الأمر إلى تمكين Azure Container Storage على تجمع عقدة النظام، والذي يسمى nodepool1بشكل افتراضي *. إذا كنت ترغب في تمكينه على تجمعات العقد الأخرى، فشاهد تثبيت Azure Container Storage على تجمعات عقدة معينة. إذا كنت تريد تحديد معلمات تجمع تخزين إضافية، فشاهد هذا الجدول.

*إذا كان هناك أي تجمعات عقدة موجودة مع التسمية acstor.azure.com/io-engine:acstor ، فسيتم تثبيت Azure Container Storage هناك بشكل افتراضي. وإلا، يتم تثبيته على تجمع عقدة النظام.

هام

إذا قمت بإنشاء نظام مجموعة AKS الخاص بك باستخدام مدخل Microsoft Azure: من المحتمل أن يكون للمجموعة تجمع عقدة مستخدم وتجمع عقدة نظام/عامل. ومع ذلك، إذا كانت مجموعتك تتكون من تجمع عقدة نظام فقط، وهو الحال مع مجموعات الاختبار/التطوير التي تم إنشاؤها باستخدام مدخل Microsoft Azure، فستحتاج أولا إلى إضافة تجمع عقدة مستخدم جديد ثم تسميته. وذلك لأنه عند إنشاء نظام مجموعة AKS باستخدام مدخل Microsoft Azure، تتم إضافة تلوث CriticalAddOnsOnly إلى تجمع عقدة النظام/العامل، والذي يحظر تثبيت Azure Container Storage على تجمع عقدة النظام. لا تتم إضافة هذه الصبغة عند إنشاء نظام مجموعة AKS باستخدام Azure CLI.

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

سيستغرق النشر من 10 إلى 15 دقيقة. عند اكتماله، سيكون لديك مجموعة AKS مع Azure Container Storage مثبتة، ومكونات نوع تجمع التخزين الذي اخترته ممكنة، وتجمع تخزين افتراضي. إذا كنت ترغب في تمكين أنواع تجمعات تخزين إضافية لإنشاء تجمعات تخزين إضافية، فشاهد تمكين أنواع تجمعات التخزين الإضافية.

هام

إذا حددت Azure Elastic SAN كمساحة تخزين احتياطية لتجمع التخزين الخاص بك ولم يكن لديك دور مالك Azure Container Storage أو دور Azure Container Storage Contributor المعين لاشتراك Azure، فسيتم تثبيت Azure Container Storage فقط ولن يتم إنشاء تجمع تخزين. في هذه الحالة، سيتعين عليك إنشاء تجمع تخزين Elastic SAN يدويا.

تثبيت Azure Container Storage على تجمعات عقدة معينة

إذا كنت ترغب في تثبيت Azure Container Storage على تجمعات عقدة معينة، فاتبع هذه الإرشادات. يجب أن تحتوي تجمعات العقد على ما لا يقل عن ثلاثة أجهزة ظاهرية Linux لكل منها.

  1. قم بتشغيل الأمر التالي لعرض قائمة تجمعات العقد المتوفرة. استبدال <resource-group>و<cluster-name> بالقيم الخاصة بك.

    az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
    
  2. قم بتشغيل الأمر التالي لتثبيت Azure Container Storage على تجمعات عقدة معينة. استبدال <cluster-name>و<resource-group> بالقيم الخاصة بك. استبدل <storage-pool-type> ب azureDiskأو ephemeraldiskأو elasticSan. إذا قمت بتحديد ephemeralDisk، يمكنك أيضا تحديد --storage-pool-option، ويمكن أن تكون NVMe القيم أو Temp.

    az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type> --azure-container-storage-nodepools <comma separated values of nodepool names>
    

تمكين أنواع تجمعات التخزين الإضافية

إذا كنت تريد تمكين نوع تجمع تخزين لم يتم تمكينه في الأصل أثناء تثبيت Azure Container Storage، فقم بتشغيل الأمر التالي. استبدال <cluster-name>و<resource-group> بالقيم الخاصة بك. بالنسبة إلى <storage-pool-type>، حدد azureDiskأو ephemeralDiskأو .elasticSan

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

az aks update -n <cluster-name> -g <resource-group> --enable-azure-container-storage <storage-pool-type>

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

تلميح

إذا قمت بإضافة تجمع عقدة جديد إلى نظام المجموعة الخاص بك وتريد تشغيل Azure Container Storage على تجمع العقدة هذا، يمكنك تحديد تجمع العقدة مع --azure-container-storage-nodepools <nodepool-name> عند تشغيل az aks update الأمر.

عرض تجمعات التخزين المتوفرة

للحصول على قائمة تجمعات التخزين المتوفرة، قم بتشغيل الأمر التالي:

kubectl get sp -n acstor

للتحقق من حالة تجمع تخزين، قم بتشغيل الأمر التالي:

kubectl describe sp <storage-pool-name> -n acstor

Message إذا لم يذكر StoragePool is ready، فإن تجمع التخزين الخاص بك لا يزال ينشئ أو واجه مشكلة. راجع استكشاف أخطاء Azure Container Storage وإصلاحها.

تعطيل أنواع تجمعات التخزين

إذا لم تعد تستخدم نوع تجمع تخزين معين وتريد تعطيله لتحرير الموارد في تجمع العقدة، فقم بتشغيل الأمر التالي. استبدال <cluster-name>و<resource-group> بالقيم الخاصة بك. بالنسبة إلى <storage-pool-type>، حدد azureDiskأو ephemeralDiskأو .elasticSan

az aks update -n <cluster-name> -g <resource-group> --disable-azure-container-storage <storage-pool-type>

إشعار

إذا كان لديك تجمع تخزين موجود من النوع الذي تحاول تعطيله، فلن يتم تعطيل نوع تجمع التخزين.

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

لإنشاء وحدات تخزين ثابتة، حدد الارتباط لنوع تخزين النسخ الاحتياطي الذي حددته.