تكوين التخزين
مفاهيم التخزين Kubernetes
يوفر Kubernetes طبقة تجريد البنية التحتية فوق مكدس تقنية المحاكاة الافتراضية الأساسي (اختياري) والأجهزة. الطريقة التي يقوم بها Kubernetes بتجريد التخزين بعيدا هي من خلال فئات التخزين. عند توفير جراب، يمكنك تحديد فئة تخزين لكل وحدة تخزين. في الوقت الذي يتم فيه توفير الكبسولة، يتم استدعاء موفر فئة التخزين لتوفير التخزين، ثم يتم إنشاء وحدة تخزين ثابتة على وحدة التخزين المتوفرة ثم يتم تثبيت الحاوية على وحدة التخزين الثابتة بواسطة مطالبة وحدة تخزين مستمرة.
يوفر Kubernetes طريقة لموفري البنية التحتية للتخزين لتوصيل برامج التشغيل (وتسمى أيضا "الإضافات") التي توسع Kubernetes. يجب أن تتوافق إضافات التخزين مع معيار واجهة تخزين الحاويات. هناك العشرات من الإضافات التي يمكن العثور عليها في هذه القائمة غير النهائية لبرامج تشغيل CSI. يعتمد برنامج تشغيل CSI الذي تستخدمه على عوامل مثل ما إذا كنت تعمل في خدمة Kubernetes مدارة ومستضافة على السحابة أو موفر OEM الذي تستخدمه لأجهزتك.
يمكنك عرض فئات التخزين التي تم تكوينها في مجموعة Kubernetes عن طريق تشغيل هذا الأمر:
kubectl get storageclass
مثال على الإخراج من مجموعة Azure Kubernetes Service (AKS):
NAME PROVISIONER AGE
azurefile kubernetes.io/azure-file 15d
azurefile-premium kubernetes.io/azure-file 15d
default (default) kubernetes.io/azure-disk 4d3h
managed-premium kubernetes.io/azure-disk 4d3h
يمكنك الحصول على تفاصيل حول فئة تخزين عن طريق تشغيل هذا الأمر:
kubectl describe storageclass/<storage class name>
مثال:
kubectl describe storageclass/azurefile
Name: azurefile
IsDefaultClass: No
Annotations: kubectl.kubernetes.io/last-applied-configuration={"allowVolumeExpansion":true,"apiVersion":"storage.k8s.io/v1beta1","kind":"StorageClass","metadata":{"annotations":{},"labels":{"kubernetes.io/cluster-service":"true"},"name":"azurefile"},"parameters":{"sku
Name":"Standard_LRS"},"provisioner":"kubernetes.io/azure-file"}
Provisioner: kubernetes.io/azure-file
Parameters: skuName=Standard_LRS
AllowVolumeExpansion: True
MountOptions: <none>
ReclaimPolicy: Delete
VolumeBindingMode: Immediate
Events: <none>
يمكنك الاطلاع على وحدات التخزين الثابتة المتوفرة حاليا ومطالبات وحدات التخزين المستمرة من خلال تشغيل الأوامر التالية:
kubectl get persistentvolumes -n <namespace>
kubectl get persistentvolumeclaims -n <namespace>
مثال على عرض وحدات التخزين الثابتة:
kubectl get persistentvolumes -n arc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pvc-07fc7b9f-9a37-4796-9442-4405147120da 15Gi RWO Delete Bound arc/sqldemo11-data-claim default 7d3h
pvc-3e772f20-ed89-4642-b34d-8bb11b088afa 15Gi RWO Delete Bound arc/data-metricsdb-0 default 7d14h
pvc-41b33bbd-debb-4153-9a41-02ce2bf9c665 10Gi RWO Delete Bound arc/sqldemo11-logs-claim default 7d3h
pvc-4ccda3e4-fee3-4a89-b92d-655c04fa62ad 15Gi RWO Delete Bound arc/data-controller default 7d14h
pvc-63e6bb4c-7240-4de5-877e-7e9ea4e49c91 10Gi RWO Delete Bound arc/logs-controller default 7d14h
pvc-8a1467fe-5eeb-4d73-b99a-f5baf41eb493 10Gi RWO Delete Bound arc/logs-metricsdb-0 default 7d14h
pvc-8e2cacbc-e953-4901-8591-e77df9af309c 10Gi RWO Delete Bound arc/sqldemo10-logs-claim default 7d14h
pvc-9fb79ba3-bd3e-42aa-aa09-3090135d4513 15Gi RWO Delete Bound arc/sqldemo10-data-claim default 7d14h
pvc-a39c85d4-5cd9-4249-9915-68a70a9bb5e5 15Gi RWO Delete Bound arc/data-controldb default 7d14h
pvc-c9cbd74a-76ca-4be5-b598-0c7a45749bfb 10Gi RWO Delete Bound arc/logs-controldb default 7d14h
pvc-d576e9d4-0a09-4dd7-b806-be8ed461f8a4 10Gi RWO Delete Bound arc/logs-logsdb-0 default 7d14h
pvc-ecd7d07f-2c2c-421d-98d7-711ec5d4a0cd 15Gi RWO Delete Bound arc/data-logsdb-0 default 7d14h
مثال على عرض مطالبات الحجم المستمرة:
kubectl get persistentvolumeclaims -n arc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
data-controldb Bound pvc-a39c85d4-5cd9-4249-9915-68a70a9bb5e5 15Gi RWO default 7d14h
data-controller Bound pvc-4ccda3e4-fee3-4a89-b92d-655c04fa62ad 15Gi RWO default 7d14h
data-logsdb-0 Bound pvc-ecd7d07f-2c2c-421d-98d7-711ec5d4a0cd 15Gi RWO default 7d14h
data-metricsdb-0 Bound pvc-3e772f20-ed89-4642-b34d-8bb11b088afa 15Gi RWO default 7d14h
logs-controldb Bound pvc-c9cbd74a-76ca-4be5-b598-0c7a45749bfb 10Gi RWO default 7d14h
logs-controller Bound pvc-63e6bb4c-7240-4de5-877e-7e9ea4e49c91 10Gi RWO default 7d14h
logs-logsdb-0 Bound pvc-d576e9d4-0a09-4dd7-b806-be8ed461f8a4 10Gi RWO default 7d14h
logs-metricsdb-0 Bound pvc-8a1467fe-5eeb-4d73-b99a-f5baf41eb493 10Gi RWO default 7d14h
sqldemo10-data-claim Bound pvc-9fb79ba3-bd3e-42aa-aa09-3090135d4513 15Gi RWO default 7d14h
sqldemo10-logs-claim Bound pvc-8e2cacbc-e953-4901-8591-e77df9af309c 10Gi RWO default 7d14h
sqldemo11-data-claim Bound pvc-07fc7b9f-9a37-4796-9442-4405147120da 15Gi RWO default 7d4h
sqldemo11-logs-claim Bound pvc-41b33bbd-debb-4153-9a41-02ce2bf9c665 10Gi RWO default 7d4h
العوامل التي يجب مراعاتها عند اختيار تكوين التخزين الخاص بك
يعد اختيار فئة التخزين المناسبة أمرا مهما لمرونة البيانات وأدائها. يمكن أن يؤدي اختيار فئة التخزين الخاطئة إلى تعريض بياناتك لخطر الفقدان الكلي للبيانات في حالة حدوث عطل في الأجهزة أو قد يؤدي إلى أداء أقل مثالية.
هناك عموما نوعان من التخزين:
- التخزين المحلي - التخزين المتوفر على محركات الأقراص الصلبة المحلية على عقدة معينة. يمكن أن يكون هذا النوع من التخزين مثاليا من حيث الأداء ، ولكنه يتطلب تصميما مخصصا لتكرار البيانات عن طريق تكرار البيانات عبر عقد متعددة.
- التخزين المشترك عن بعد - التخزين الذي يتم توفيره على بعض أجهزة التخزين عن بعد - على سبيل المثال، خدمة التخزين SAN أو NAS أو التخزين السحابي مثل EBS أو Azure Files. يوفر هذا النوع من التخزين بشكل عام تكرار البيانات تلقائيا ، ولكنه ليس بالسرعة التي يمكن أن يكون بها التخزين المحلي.
فئات التخزين المستندة إلى NFS
استنادا إلى تكوين خادم NFS وموفر فئة التخزين، قد تحتاج إلى تعيين supplementalGroups تكوينات الحاوية لمثيلات قاعدة البيانات، وقد تحتاج إلى تغيير تكوين خادم NFS لاستخدام معرفات المجموعة التي تم تمريرها بواسطة العميل (بدلا من البحث عن معرفات المجموعة على الخادم باستخدام معرف المستخدم الذي تم تمريره). استشر مسؤول NFS لتحديد ما إذا كانت هذه هي الحالة.
supplementalGroups تأخذ الخاصية صفيفا من القيم ويمكن تعيينها كجزء من نشر وحدة تحكم بيانات Azure Arc وسيتم استخدامها بواسطة أي مثيلات قاعدة بيانات تم تكوينها بواسطة وحدة تحكم بيانات Azure Arc.
لتعيين هذه الخاصية، قم بتشغيل الأمر التالي:
az arcdata dc config add --path custom/control.json --json-values 'spec.security.supplementalGroups="1234556"'
تكوين تخزين وحدة تحكم البيانات
تعتمد بعض الخدمات في Azure Arc لخدمات البيانات على تكوينها لاستخدام التخزين المشترك عن بعد لأن الخدمات ليس لديها القدرة على نسخ البيانات. تم العثور على هذه الخدمات في جمع قرون التحكم في البيانات:
| الخدمة | مطالبات الحجم المستمر |
|---|---|
| البحث المرن | <namespace>/logs-logsdb-0, <namespace>/data-logsdb-0 |
| InfluxDB | <namespace>/logs-metricsdb-0, <namespace>/data-metricsdb-0 |
| مثيل SQL وحدة التحكم | <namespace>/logs-controldb, <namespace>/data-controldb |
| خدمة واجهة برمجة تطبيقات وحدة التحكم | <namespace>/data-controller |
في الوقت الذي يتم فيه توفير وحدة التحكم في البيانات، يتم تحديد فئة التخزين التي سيتم استخدامها لكل وحدة من وحدات التخزين الثابتة هذه إما عن طريق تمرير | -sc المعلمة az arcdata dc create إلى الأمر أو عن طريق تعيين فئات التخزين في ملف قالب نشر control.json المستخدم. إذا كنت تستخدم مدخل Azure لإنشاء وحدة تحكم البيانات في الوضع المتصل مباشرة، فإن قالب النشر الذي تختاره سيحتوي إما على فئة التخزين المحددة مسبقا في القالب أو إذا قمت بتحديد قالب لا يحتوي على فئة تخزين محددة مسبقا، فستتم مطالبتك بواحدة. إذا كنت تستخدم قالب نشر مخصص، فيمكنك تحديد فئة التخزين.
تحتوي قوالب النشر التي يتم توفيرها خارج الصندوق على فئة تخزين افتراضية محددة ومناسبة للبيئة الهدف، ولكن يمكن تجاوزها أثناء النشر. راجع الخطوات التفصيلية لإنشاء temmplates تكوين مخصص لتغيير تكوين فئة التخزين لقرون وحدة التحكم في البيانات في وقت النشر.
إذا قمت بتعيين فئة التخزين باستخدام --فئة التخزين | -sc المعلمة سيتم استخدام فئة التخزين لكل من فئات السجل وتخزين البيانات. إذا قمت بتعيين فئات التخزين في ملف قالب النشر، فيمكنك تحديد فئات تخزين مختلفة للسجلات والبيانات.
العوامل المهمة التي يجب مراعاتها عند اختيار فئة تخزين لقرون وحدة التحكم في البيانات:
- يجب عليك استخدام فئة تخزين مشتركة عن بعد لضمان متانة البيانات وحتى إذا ماتت جراب أو عقدة ، فعند إعادة الكبسولة مرة أخرى ، يمكنها الاتصال مرة أخرى بوحدة التخزين الثابتة.
- البيانات التي تتم كتابتها إلى وحدة التحكم SQL المثال ، مقاييس DB ، وسجلات DB عادة ما تكون منخفضة الحجم إلى حد ما وغير حساسة لزمن الوصول ، لذا فإن تخزين الأداء فائق السرعة ليس أمرا بالغ الأهمية. إذا كان لديك مستخدمون يستخدمون واجهات Grafana وKibana بشكل متكرر وكان لديك عدد كبير من مثيلات قاعدة البيانات ، فقد يستفيد المستخدمون من التخزين الأسرع أداء.
- تتغير سعة التخزين المطلوبة مع عدد مثيلات قاعدة البيانات التي قمت بنشرها لأنه يتم تجميع السجلات والمقاييس لكل مثيل قاعدة بيانات. يتم الاحتفاظ بالبيانات في السجلات والمقاييس DB لمدة أسبوعين (2) قبل أن يتم تطهيرها.
- يعد تغيير نشر منشور فئة التخزين أمرا صعبا وغير موثق وغير مدعوم. تأكد من اختيار فئة التخزين بشكل صحيح في وقت النشر.
ملاحظة
إذا لم يتم تحديد فئة تخزين، استخدام فئة التخزين الافتراضية. يمكن أن يكون هناك فئة تخزين افتراضية واحدة فقط لكل مجموعة Kubernetes. يمكنك تغيير فئة التخزين الافتراضية.
تكوين تخزين مثيل قاعدة البيانات
يحتوي كل مثيل قاعدة بيانات على بيانات وسجلات ووحدات تخزين ثابتة احتياطية. يمكن تحديد فئات التخزين لوحدات التخزين الثابتة هذه في وقت النشر. إذا لم يتم تحديد فئة تخزين ، استخدام فئة التخزين الافتراضية.
عند إنشاء مثيل باستخدام أي منهما az sql mi-arc create أو az postgres arc-server create، هناك أربعة معلمات يمكن استخدامها لتعيين فئات التخزين:
| اسم المعلمة، الاسم المختصر | يُستخدم في |
|---|---|
--storage-class-data, -d |
يستخدم لتحديد فئة التخزين لجميع ملفات البيانات بما في ذلك ملفات سجل المعاملات |
--storage-class-logs, -g |
يستخدم لتحديد فئة التخزين لجميع ملفات السجل |
--storage-class-data-logs |
يستخدم لتحديد فئة التخزين لملفات سجل معاملات قاعدة البيانات. |
--storage-class-backups |
يستخدم لتحديد فئة التخزين لجميع ملفات النسخ الاحتياطي. |
يسرد الجدول أدناه المسارات داخل حاوية المثيل المدار SQL Azure التي تم تعيينها إلى وحدة التخزين الثابتة للبيانات والسجلات:
| اسم المعلمة، الاسم المختصر | المسار داخل حاوية mssql-miaa | الوصف |
|---|---|---|
--storage-class-data, -d |
/var/opt | يحتوي على أدلة لتثبيت mssql وعمليات النظام الأخرى. يحتوي دليل mssql على بيانات افتراضية (بما في ذلك سجلات المعاملات) ، أدلة النسخ الاحتياطي لسجل & الأخطاء |
--storage-class-logs, -g |
/var/log | يحتوي على الدلائل التي تخزن مخرجات وحدة التحكم (stderr ، stdout) ، ومعلومات تسجيل أخرى للعمليات داخل الحاوية |
يسرد الجدول أدناه المسارات داخل حاوية مثيل PostgreSQL التي تم تعيينها إلى وحدة التخزين الثابتة للبيانات والسجلات:
| اسم المعلمة، الاسم المختصر | المسار داخل حاوية postgres | الوصف |
|---|---|---|
--storage-class-data, -d |
/var/opt/postgresql | يحتوي على البيانات وأدلة السجل لتثبيت postgres |
--storage-class-logs, -g |
/var/log | يحتوي على الدلائل التي تخزن مخرجات وحدة التحكم (stderr ، stdout) ، ومعلومات تسجيل أخرى للعمليات داخل الحاوية |
سيكون لكل مثيل قاعدة بيانات وحدة تخزين ثابتة منفصلة لملفات البيانات والسجلات والنسخ الاحتياطية. وهذا يعني أنه سيكون هناك فصل بين الإدخال/الإخراج لكل نوع من هذه الأنواع من الملفات وفقا لكيفية قيام مقدم وحدة التخزين بتوفير التخزين. يحتوي كل مثيل قاعدة بيانات على مطالبات وحدة تخزين ثابتة خاصة به ووحدات تخزين ثابتة.
إذا كانت هناك قواعد بيانات متعددة على مثيل قاعدة بيانات معين، فستستخدم كافة قواعد البيانات نفس المطالبة بوحدة التخزين الثابتة ووحدة التخزين الثابتة وفئة التخزين. جميع النسخ الاحتياطية - ستستخدم كل من النسخ الاحتياطية التفاضلية للسجل والنسخ الاحتياطية الكاملة نفس المطالبة المستمرة بالحجم والحجم الثابت. يتم عرض مطالبات وحدة التخزين المستمرة لقرون مثيل قاعدة البيانات أدناه:
| المثيل | مطالبات الحجم المستمر |
|---|---|
| مثيل Azure SQL المُدار | <namespace>/logs-<instance name>-0, <namespace>/data-<instance name>-0 |
| قاعدة بيانات Azure لمثيل PostgreSQL | <namespace>/logs--<instance name>-0, <namespace>/data--<instance name>-0 |
| Azure PostgreSQL HyperScale | <namespace>/logs-<instance namme>-<ordinal>، <namespace>/data-<instance namme>-<ordinal>(يتراوح الترتيب من 0 إلى W حيث W هو عدد العمال) |
العوامل المهمة التي يجب مراعاتها عند اختيار فئة تخزين لقرون مثيل قاعدة البيانات:
- يمكن نشر مثيلات قاعدة البيانات إما في نمط جراب واحد أو نمط جراب متعدد. مثال على نمط جراب واحد هو طبقة تسعير للأغراض العامة Azure SQL مثيل مدار. مثال على نمط جراب متعدد هو طبقة تسعير مهمة للأعمال متوفرة بشكل كبير Azure SQL مثيلا مدارا. يجب أن تستخدم مثيلات قاعدة البيانات التي تم نشرها باستخدام نمط جراب واحد فئة تخزين مشتركة عن بعد لضمان متانة البيانات وحتى إذا مات جراب أو عقدة ، فعند إعادة الكبسولة مرة أخرى ، يمكنها الاتصال مرة أخرى بوحدة التخزين الثابتة. في المقابل، يستخدم المثيل المدار من Azure SQL المتوفر بشكل كبير مجموعات التوفر دائما لنسخ البيانات من مثيل إلى آخر إما بشكل متزامن أو غير متزامن. خاصة في حالة تكرار البيانات بشكل متزامن ، هناك دائما نسخ متعددة من البيانات - عادة ثلاث نسخ. ولهذا السبب ، من الممكن استخدام التخزين المحلي أو فئات التخزين المشتركة عن بعد للبيانات وملفات السجل. في حالة استخدام التخزين المحلي ، لا يزال يتم الاحتفاظ بالبيانات حتى في حالة فشل جراب أو عقدة أو أجهزة تخزين نظرا لوجود نسخ متعددة من البيانات. نظرا لهذه المرونة، يمكنك اختيار استخدام التخزين المحلي للحصول على أداء أفضل.
- أداء قاعدة البيانات هو إلى حد كبير وظيفة من إنتاجية الإدخال/الإخراج لجهاز تخزين معين. إذا كانت قاعدة البيانات الخاصة بك ثقيلة على عمليات القراءة أو ثقيلة على عمليات الكتابة ، فيجب عليك اختيار فئة تخزين مزودة بأجهزة مصممة لهذا النوع من عبء العمل. على سبيل المثال، إذا كانت قاعدة البيانات الخاصة بك تستخدم في الغالب للكتابة، فيمكنك اختيار التخزين المحلي باستخدام RAID 0. إذا كانت قاعدة البيانات الخاصة بك تستخدم في الغالب لقراءات كمية صغيرة من "البيانات الساخنة" ، ولكن هناك حجم تخزين إجمالي كبير للبيانات الباردة ، فيمكنك اختيار جهاز SAN قادر على التخزين المتدرج. لا يختلف اختيار فئة التخزين المناسبة عن اختيار نوع التخزين الذي ستستخدمه لأي قاعدة بيانات.
- إذا كنت تستخدم أداة توفير وحدات تخزين محلية، فتأكد من أن وحدات التخزين المحلية التي يتم توفيرها للبيانات والسجلات والنسخ الاحتياطية تهبط كل منها على أجهزة تخزين أساسية مختلفة لتجنب التنازع على إدخال/إخراج القرص. يجب أن يكون نظام التشغيل أيضا على وحدة تخزين مثبتة على قرص (أقراص) منفصل. هذا هو في الأساس نفس الإرشادات التي سيتم اتباعها لمثيل قاعدة بيانات على الأجهزة المادية.
- نظرا لأن كافة قواعد البيانات الموجودة على مثيل معين تشترك في مطالبة وحدة تخزين ثابتة ووحدة تخزين ثابتة، تأكد من عدم تحديد موقع مثيلات قاعدة البيانات المشغولة على مثيل قاعدة البيانات نفسه. إذا كان ذلك ممكنا، افصل قواعد البيانات المشغولة إلى مثيلات قاعدة البيانات الخاصة بها لتجنب نزاع الإدخال/الإخراج. علاوة على ذلك ، استخدم استهداف تسمية العقدة لإسقاط مثيلات قاعدة البيانات على عقد منفصلة لتوزيع إجمالي حركة مرور الإدخال / الإخراج عبر عقد متعددة. إذا كنت تستخدم المحاكاة الافتراضية ، فتأكد من التفكير في توزيع حركة مرور الإدخال / الإخراج ليس فقط على مستوى العقدة ولكن أيضا نشاط الإدخال / الإخراج المشترك الذي يحدث بواسطة جميع الأجهزة الظاهرية للعقدة على مضيف فعلي معين.
تقدير متطلبات التخزين
يستخدم كل جراب يحتوي على بيانات الحالة مجلدين ثابتين على الأقل - وحدة تخزين ثابتة للبيانات ووحدة تخزين ثابتة أخرى للسجلات. يسرد الجدول أدناه عدد وحدات التخزين الثابتة المطلوبة لوحدة تحكم بيانات واحدة ومثيل Azure SQL Managed وقاعدة بيانات Azure لمثيل PostgreSQL ومثيل Azure PostgreSQL HyperScale:
| نوع المورد | عدد القرون الفخمة | العدد المطلوب من وحدات التخزين الثابتة |
|---|---|---|
| مراقب البيانات | 4 (control, , , logsdbcontroldbmetricsdb) |
4 * 2 = 8 |
| مثيل Azure SQL المُدار | 1 | 2 |
| Azure Database for PostgreSQL instance | 1 | 2 |
| Azure PostgreSQL HyperScale | 1 + واط (W = عدد العمال) | 2 * (1 + واط) |
يوضح الجدول أدناه العدد الإجمالي لوحدات التخزين الثابتة المطلوبة لنشر عينة:
| نوع المورد | عدد المثيلات | العدد المطلوب من وحدات التخزين الثابتة |
|---|---|---|
| مراقب البيانات | 1 | 4 * 2 = 8 |
| مثيل Azure SQL المُدار | 5 | 5 * 2 = 10 |
| Azure Database for PostgreSQL instance | 5 | 5 * 2 = 10 |
| Azure PostgreSQL HyperScale | 2 (عدد العمال = 4 لكل مثيل) | 2 * 2 * (1 + 4) = 20 |
| إجمالي عدد وحدات التخزين الثابتة | 8 + 10 + 10 + 20 = 48 |
يمكن استخدام هذا الحساب لتخطيط التخزين لمجموعة Kubernetes استنادا إلى موفر التخزين أو البيئة. على سبيل المثال، إذا تم استخدام موفر التخزين المحلي لمجموعة Kubernetes مع خمس (5) عقد، فإن نشر العينة فوق كل عقدة يتطلب تخزينا على الأقل ل 10 وحدات تخزين ثابتة. وبالمثل ، عند توفير مجموعة Azure Kubernetes Service (AKS) مع خمس (5) عقد اختيار حجم VM مناسب لتجمع العقدة بحيث يمكن إرفاق 10 أقراص بيانات أمر بالغ الأهمية. يمكن العثور على مزيد من التفاصيل حول كيفية تحديد حجم العقد لاحتياجات التخزين لعقد AKS هنا.
اختيار فئة التخزين المناسبة
المواقع المحلية ومواقع الحافة
لدى Microsoft وشركاؤها في OEM و OS و Kubernetes برنامج تحقق من صحة خدمات بيانات Azure Arc. سيوفر هذا البرنامج للعملاء نتائج اختبار قابلة للمقارنة من مجموعة أدوات اختبار الشهادة. ستقوم الاختبارات بتقييم توافق الميزات ونتائج اختبار الإجهاد والأداء وقابلية التوسع. ستشير كل نتيجة من نتائج الاختبار هذه إلى نظام التشغيل المستخدم ، وتوزيع Kubernetes المستخدم ، و HW المستخدم ، والوظيفة الإضافية CSI المستخدمة ، وفئات التخزين المستخدمة. سيساعد ذلك العملاء على اختيار أفضل فئة تخزين ونظام تشغيل وتوزيع Kubernetes وأجهزة لمتطلباتهم. يمكن العثور على مزيد من المعلومات حول هذا البرنامج ونتائج الاختبار هنا.
السحابة العامة، خدمات Kubernetes المدارة
بالنسبة لخدمات Kubernetes العامة المدارة والمستندة إلى السحابة ، يمكننا تقديم التوصيات التالية:
| الخدمة السحابية العامة | التوصية |
|---|---|
| خدمة Azure Kubernetes (AKS) | يحتوي Azure Kubernetes Service (AKS) على نوعين من التخزين - Azure Files و Azure Managed Disks. يحتوي كل نوع من أنواع التخزين على مستويين للتسعير / الأداء - قياسي (HDD) ومتميز (SSD). وبالتالي ، فإن فئات التخزين الأربعة المتوفرة في AKS هي azurefile (الطبقة القياسية لملفات Azure) و (الطبقة المميزة لملفات Azure) و (الطبقة القياسية لأقراص Azure) default و azurefile-premiummanaged-premium (الطبقة المميزة لأقراص Azure). فئة التخزين الافتراضية هي default (الطبقة القياسية لأقراص Azure). هناك اختلافات كبيرة في الأسعار بين الأنواع والمستويات التي يجب أخذها في الاعتبار في قرارك. بالنسبة لأحمال عمل الإنتاج ذات المتطلبات عالية الأداء، نوصي باستخدامها managed-premium لجميع فئات التخزين. بالنسبة لأعباء عمل التطوير / الاختبار ، وإثبات المفهوم ، وما إلى ذلك ، حيث تكون التكلفة هي الاعتبار ، فإن azurefile الخيار الأقل تكلفة. يمكن استخدام جميع الخيارات الأربعة للمواقف التي تتطلب مساحة تخزين مشتركة عن بعد لأنها جميعا أجهزة تخزين متصلة بالشبكة في Azure. اقرأ المزيد عن تخزين AKS. |
| AWS Elastic Kubernetes Service (EKS) | تحتوي خدمة Elastic Kubernetes Service من Amazon على فئة تخزين أساسية واحدة - استنادا إلى برنامج تشغيل تخزين EBS CSI. يوصى بذلك لأحمال عمل الإنتاج. هناك برنامج تشغيل تخزين جديد - برنامج تشغيل تخزين EFS CSI - يمكن إضافته إلى مجموعة EKS ، ولكنه حاليا في مرحلة تجريبية وعرضة للتغيير. على الرغم من أن AWS تقول إن برنامج تشغيل التخزين هذا مدعوم للإنتاج، إلا أننا لا نوصي باستخدامه لأنه لا يزال في مرحلة تجريبية وعرضة للتغيير. فئة تخزين EBS هي الافتراضية وتسمى gp2. اقرأ المزيد عن تخزين EKS. |
| محرك جوجل كوبرنيتيس (GKE) | يحتوي محرك Google Kubernetes (GKE) على فئة تخزين واحدة فقط تسمى standard، والتي تستخدم للأقراص الثابتة GCE. كونه الوحيد ، فهو أيضا الافتراضي. على الرغم من وجود أداة توفير وحدات تخزين محلية ثابتة ل GKE يمكنك استخدامها مع محركات الأقراص ذات الحالة الصلبة المرفقة مباشرة، إلا أننا لا نوصي باستخدامه لأنه لا يتم صيانته أو دعمه من قبل Google. اقرأ المزيد عن تخزين GKE. |