استكشاف أخطاء معاينة Azure Container Storage وإصلاحها
Azure Container Storage هي خدمة إدارة وحدة تخزين ونشر وتنسيق مستندة إلى السحابة تم إنشاؤها في الأصل للحاويات. استخدم هذه المقالة لاستكشاف المشكلات الشائعة في Azure Container Storage وإصلاحها والعثور على حلول للمشاكل.
استكشاف مشكلات التثبيت وإصلاحها
فشل تثبيت Azure Container Storage
بعد تشغيل az aks create
، قد ترى الرسالة فشل تثبيت Azure Container Storage. يتم إنشاء نظام مجموعة AKS. يرجى العمل az aks update
مع --enable-azure-container-storage
لتمكين Azure Container Storage.
تعني هذه الرسالة أنه لم يتم تثبيت Azure Container Storage، ولكن تم إنشاء نظام مجموعة AKS بشكل صحيح.
لتثبيت 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>
لا يمكن تعيين نوع تجمع التخزين إلى NVMe
إذا حاولت تثبيت Azure Container Storage مع القرص المؤقت، وتحديدا مع NVMe المحلي على نظام مجموعة حيث لا يحتوي SKU للجهاز الظاهري (VM) على محركات أقراص NVMe، فستحصل على رسالة الخطأ التالية: لا يمكن تعيين --storage-pool-option ك NVMe حيث لا يمكن لأي من تجمعات العقد دعم قرص NVMe سريع الزوال.
للمعالجة، قم بإنشاء تجمع عقدة مع VM SKU يحتوي على محركات أقراص NVMe وحاول مرة أخرى. راجع الأجهزة الظاهرية المحسنة للتخزين.
استكشاف مشكلات تجمع التخزين وإصلاحها
للتحقق من حالة تجمعات التخزين الخاصة بك، قم بتشغيل kubectl describe sp <storage-pool-name> -n acstor
. فيما يلي بعض المشكلات التي قد تواجهها.
فشل إنشاء شبكة SAN المرنة
إذا كنت تحاول إنشاء تجمع تخزين Elastic SAN، فقد ترى الرسالة فشل إنشاء Azure Elastic SAN: أقصى عدد ممكن من Elastic SAN للاشتراك الذي تم إنشاؤه بالفعل. وهذا يعني أنك وصلت إلى الحد الأقصى لعدد موارد Elastic SAN التي يمكن نشرها في منطقة لكل اشتراك. يمكنك التحقق من الحد هنا: أهداف قابلية التوسع والأداء Elastic SAN. ضع في اعتبارك حذف أي موارد Elastic SAN موجودة على الاشتراك الذي لم يعد قيد الاستخدام، أو حاول إنشاء تجمع التخزين في منطقة مختلفة.
لم يتم العثور على أجهزة حظر
إذا رأيت هذه الرسالة، فمن المحتمل أنك تحاول إنشاء تجمع تخزين قرص سريع الزوال على نظام مجموعة حيث لا تحتوي وحدة SKU للجهاز الظاهري على محركات أقراص NVMe.
للمعالجة، قم بإنشاء تجمع عقدة مع VM SKU يحتوي على محركات أقراص NVMe وحاول مرة أخرى. راجع الأجهزة الظاهرية المحسنة للتخزين.
نوع تجمع التخزين ممكن بالفعل
إذا حاولت تمكين نوع تجمع تخزين تم تمكينه بالفعل، فستتلقى الرسالة التالية: قيمة غير صالحة --enable-azure-container-storage
. تم تمكين Azure Container Storage بالفعل لنوع <storage-pool-type>
تجمع التخزين في نظام المجموعة. يمكنك التحقق مما إذا كان لديك أي تجمعات تخزين موجودة تم إنشاؤها عن طريق تشغيل kubectl get sp -n acstor
.
تعطيل نوع تجمع تخزين
عند تعطيل نوع تجمع تخزين عبر az aks update --disable-azure-container-storage <storage-pool-type>
أو إلغاء تثبيت Azure Container Storage عبر az aks update --disable-azure-container-storage all
، إذا كان هناك تجمع تخزين موجود من هذا النوع، فستتلقى الرسالة التالية:
سيؤدي تعطيل Azure Container Storage لنوع <storage-pool-type>
تجمع التخزين إلى حذف جميع تجمعات التخزين من نفس النوع بقوة والتأثير على التطبيقات التي تستخدم تجمعات التخزين هذه. يمكن أن يؤدي الحذف القسري لتجمعات التخزين أيضا إلى تسرب موارد التخزين التي يتم استهلاكها. هل تريد التحقق مما إذا كان يتم استخدام أي من مجموعات التخزين من النوع <storage-pool-type>
قبل تعطيل Azure Container Storage؟ (Y/n)
إذا حددت Y، يتم تشغيل التحقق التلقائي للتأكد من عدم وجود وحدات تخزين ثابتة تم إنشاؤها من تجمع التخزين. يؤدي تحديد n إلى تجاوز التحقق من الصحة هذا وتعطيل نوع تجمع التخزين، وحذف أي تجمعات تخزين موجودة وربما يؤثر على التطبيق الخاص بك.
لا يمكن حذف مجموعة الموارد التي تحتوي على نظام مجموعة AKS
إذا قمت بإنشاء تجمع تخزين Elastic SAN، فقد لا تتمكن من حذف مجموعة الموارد التي يوجد بها نظام مجموعة AKS.
لحل هذه المشكلة، سجل الدخول إلى مدخل Microsoft Azure وحدد Resource groups. حدد موقع مجموعة الموارد التي أنشأتها AKS (يبدأ اسم مجموعة الموارد MC_). حدد كائن مورد SAN ضمن مجموعة الموارد هذه. إزالة كافة وحدات التخزين ومجموعات وحدات التخزين يدويا. ثم أعد محاولة حذف مجموعة الموارد التي تتضمن مجموعة AKS الخاصة بك.
استكشاف مشكلات وحدة التخزين الثابتة وإصلاحها
لا يمكن إنشاء وحدات تخزين ثابتة من تجمعات تخزين الأقراص سريعة الزوال
نظرا لأن الأقراص سريعة الزوال (NVMe المحلية وSSD المؤقتة) سريعة الزوال وليست دائمة، فإننا نفرض استخدام وحدات التخزين المؤقتة العامة Kubernetes. إذا حاولت إنشاء مطالبة وحدة تخزين ثابتة باستخدام تجمع قرص سريع الزوال، فسترى الخطأ التالي: خطأ من الخادم (ممنوع): خطأ عند إنشاء "eph-pvc.yaml": رفض إخطار على الويب للقبول "pvc.acstor.azure.com" الطلب: يسمح فقط بوحدات التخزين العامة سريعة الزوال في تجمعات تخزين سريعة الزوال غير مكررة.
إذا كنت بحاجة إلى وحدة تخزين ثابتة، حيث تحتوي وحدة التخزين على دورة حياة مستقلة عن أي جراب فردي يستخدم وحدة التخزين، يدعم Azure Container Storage النسخ المتماثل ل NVMe. يمكنك إنشاء تجمع تخزين مع النسخ المتماثل وإنشاء وحدات تخزين ثابتة من هناك. راجع إنشاء تجمع تخزين مع النسخ المتماثل وحدة التخزين للحصول على إرشادات. لاحظ أنه نظرا لأن تجمعات تخزين القرص سريعة الزوال تستهلك جميع أقراص NVMe المتوفرة، يجب حذف أي تجمعات تخزين قرص سريعة الزوال قبل إنشاء تجمع تخزين جديد مع تمكين النسخ المتماثل. إذا لم تكن بحاجة إلى استمرار، يمكنك إنشاء وحدة تخزين سريعة الزوال عامة.
إنشاء Pod المعلق بسبب حجم وحدة التخزين المؤقتة فوق السعة المتوفرة
يتم تخصيص وحدة تخزين سريعة الزوال على عقدة واحدة. عند تكوين حجم وحدات التخزين المؤقتة لوحدات الجراب الخاصة بك، يجب أن يكون الحجم أقل من السعة المتوفرة للقرص المؤقت لعقدة واحدة. وإلا، سيكون إنشاء الجراب في حالة معلقة.
استخدم الأمر التالي للتحقق مما إذا كان إنشاء الجراب الخاص بك في حالة معلقة.
$ kubectl get pods
NAME READY STATUS RESTARTS AGE
fiopod 0/1 Pending 0 17s
في هذا المثال، الحاوية fiopod
في Pending
حالة .
استخدم الأمر التالي للتحقق مما إذا كان الحاوية تحتوي على حدث التحذير لإنشاء persistentvolumeclaim.
$ kubectl describe pod fiopod
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 40s default-scheduler 0/3 nodes are available: waiting for ephemeral volume controller to create the persistentvolumeclaim "fiopod-ephemeralvolume". preemption: 0/3 nodes are available: 3 Preemption is not helpful for scheduling..
في هذا المثال، يعرض pod حدث التحذير عند إنشاء مطالبة fiopod-ephemeralvolume
وحدة تخزين ثابتة .
استخدم الأمر التالي للتحقق مما إذا كانت مطالبة وحدة التخزين الدائمة تفشل في التوفير بسبب عدم كفاية السعة.
$ kubectl describe pvc fiopod-ephemeralvolume
...
Warning ProvisioningFailed 107s (x13 over 20m) containerstorage.csi.azure.com_aks-nodepool1-29463073-vmss000000_7f5bd88d-be76-40d2-a59e-e51ce000e35e failed to provision volume with StorageClass "acstor-ephemeraldisk-temp": rpc error: code = Internal desc = Operation failed: GenericOperation("error in response: status code '507 Insufficient Storage', content: 'RestJsonError { details: \"Operation failed due to insufficient resources: Not enough suitable pools available, 0/1\", message: \"SvcError :: NotEnoughResources\", kind: ResourceExhausted }'")
في هذا المثال، Insufficient Storage
يظهر كسبب لفشل توفير وحدة التخزين.
قم بتشغيل الأمر التالي للتحقق من السعة المتوفرة للقرص المؤقت لعقدة واحدة.
$ kubectl get diskpool -n acstor
NAME CAPACITY AVAILABLE USED RESERVED READY AGE
ephemeraldisk-temp-diskpool-jaxwb 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-wzixx 75660001280 75031990272 628011008 560902144 True 21h
ephemeraldisk-temp-diskpool-xbtlj 75660001280 75031990272 628011008 560902144 True 21h
في هذا المثال، السعة المتاحة للقرص المؤقت لعقدة واحدة هي 75031990272
بايت أو 69 غيغابايت.
اضبط حجم تخزين وحدة التخزين أقل من السعة المتوفرة وأعد توزيع الجراب الخاص بك. راجع نشر جراب مع وحدة تخزين سريعة الزوال عامة.
(راجع أيضًا )
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ