التشغيل السريع: استخدام 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.
- إذا لم تكن قد أنشأت نظام مجموعة AKS بالفعل، فاتبع الإرشادات الخاصة بتثبيت نظام مجموعة AKS.
الشروع في العمل
دون معرف اشتراك 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
الأمر .
قم بتكوين
kubectl
للاتصال بالمجموعة باستخدامaz aks get-credentials
الأمر . ثم استخدم الأمر التالي:- حمل بيانات الاعتماد ثم احرص على تكوين Kubernetes CLI بغرض استخدامها.
- يستخدم
~/.kube/config
، الموقع الافتراضي لملف تكوين Kubernetes. يمكنك تحديد موقع مختلف لملف تكوين Kubernetes باستخدام وسيطة --file .
az aks get-credentials --resource-group <resource-group> --name <cluster-name>
تحقق من الاتصال بالمجموعة باستخدام
kubectl get
الأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.kubectl get nodes
يوضح مثال الإخراج التالي العقد في نظام المجموعة الخاص بك. تأكد من أن حالة جميع العقد تظهر 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 لكل منها.
قم بتشغيل الأمر التالي لعرض قائمة تجمعات العقد المتوفرة. استبدال
<resource-group>
و<cluster-name>
بالقيم الخاصة بك.az aks nodepool list --resource-group <resource-group> --cluster-name <cluster-name>
قم بتشغيل الأمر التالي لتثبيت 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>
إشعار
إذا كان لديك تجمع تخزين موجود من النوع الذي تحاول تعطيله، فلن يتم تعطيل نوع تجمع التخزين.
الخطوات التالية
لإنشاء وحدات تخزين ثابتة، حدد الارتباط لنوع تخزين النسخ الاحتياطي الذي حددته.