استخدام أقراص Azure Premium SSD v2 على Azure Kubernetes Service
توفر أقراص Azure Premium SSD v2 أحمال عمل مؤسسية مكثفة من IO وزمن انتقال ثابت للقرص دون الثانية وIOPS ومعدل نقل عال. يمكن تكوين أداء (السعة ومعدل النقل ومعدل الإدخال/الإخراج في الثانية) للإصدار 2 من محركات الأقراص ذات الحالة الصلبة المتميزة بصفةٍ مستقلةٍ في أي وقت، مما يسهل على المزيد من السيناريوهات لتكون فعالةً من حيث التكلفة مع تلبية احتياجات الأداء.
توضح هذه المقالة كيفية تكوين مجموعة AKS جديدة أو موجودة لاستخدام أقراص Azure Premium SSD v2.
قبل البدء
قبل إنشاء أو ترقية مجموعة AKS قادرة على استخدام أقراص Azure Premium SSD v2، تحتاج إلى إنشاء مجموعة AKS في نفس المنطقة ومنطقة التوفر التي تدعم Premium Storage وإرفاق الأقراص باتباع الخطوات أدناه.
بالنسبة إلى نظام مجموعة AKS موجود، يمكنك تمكين أقراص Premium SSD v2 عن طريق إضافة تجمع عقدة جديد إلى نظام المجموعة الخاص بك، ثم إرفاق الأقراص باتباع الخطوات أدناه.
هام
تتطلب أقراص Azure Premium SSD v2 تجمعات العقد الموزعة في المناطق التي تدعم هذه الأقراص. للحصول على قائمة بالمناطق المدعومة، راجع المناطق المدعومة بأقراص Premium SSD v2.
القيود
- تحتوي أقراص Azure Premium SSD v2 على قيود معينة تحتاج إلى أن تكون على دراية بها. للحصول على قائمة كاملة، راجع قيود Premium SSD v2.
استخدام أقراص Premium SSD v2 ديناميكيا مع فئة تخزين
لاستخدام أقراص Premium SSD v2 في عملية نشر أو مجموعة ذات حالة، يمكنك استخدام فئة تخزين للتزويد الديناميكي.
إنشاء فئة التخزين
يتم استخدام فئة تخزين لتعريف كيفية إنشاء وحدة تخزين بشكل حيوي مع وحدة تخزين ثابتة. لمزيد من المعلومات حول فئات التخزين Kubernetes، راجع فئات تخزين Kubernetes .
في هذا المثال، يمكنك إنشاء فئة تخزين تشير إلى أقراص Premium SSD v2. قم بإنشاء ملف باسم azure-pv2-disk-sc.yaml
، وانسخه في البيان التالي.
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: premium2-disk-sc
parameters:
cachingMode: None
skuName: PremiumV2_LRS
DiskIOPSReadWrite: "4000"
DiskMBpsReadWrite: "1000"
provisioner: disk.csi.azure.com
reclaimPolicy: Delete
volumeBindingMode: Immediate
allowVolumeExpansion: true
أنشئ فئة التخزين باستخدام الأمر kubectl apply وحدد ملف azure-pv2-disk-sc.yaml :
kubectl apply -f azure-pv2-disk-sc.yaml
الإخراج من الأمر يشبه المثال التالي:
storageclass.storage.k8s.io/premium2-disk-sc created
إنشاء مطالبة وحدة تخزين ثابتة
يتم استخدام مطالبة الحجم الثابت (PVC)؛ لتوفير التخزين تلقائيًا بناءً على فئة التخزين. في هذه الحالة، يمكن استخدام PVC فئة التخزين التي تم إنشاؤها مسبقًا لإنشاء قرص فائق.
قم بإنشاء ملف باسم azure-pv2-disk-pvc.yaml
، وانسخه في البيان التالي. تطلب المطالبة قرصًا باسم premium2-disk
بحجم 1000 غيغابايت مع وصول ReadWriteOnce . يتم تحديد فئة التخزين premium2-disk-sc كفئة التخزين.
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: premium2-disk
spec:
accessModes:
- ReadWriteOnce
storageClassName: premium2-disk-sc
resources:
requests:
storage: 1000Gi
أنشئ مطالبة وحدة التخزين الثابتة باستخدام الأمر kubectl apply وحدد ملف azure-pv2-disk-pvc.yaml :
kubectl apply -f azure-pv2-disk-pvc.yaml
الإخراج من الأمر يشبه المثال التالي:
persistentvolumeclaim/premium2-disk created
استخدم الحجم الثابت
بمجرد إنشاء مطالبة وحدة التخزين الثابتة، وتوفير القرص بنجاح، يمكن إنشاء كبسولة للوصول إلى القرص. ينشئ البيان التالي حاوية NGINX أساسية تستخدم مطالبة وحدة التخزين الدائمة المسماة premium2-disk لتحميل قرص Azure في المسار /mnt/azure
.
قم بإنشاء ملف باسم nginx-premium2.yaml
، وانسخه في البيان التالي.
kind: Pod
apiVersion: v1
metadata:
name: nginx-premium2
spec:
containers:
- name: nginx-premium2
image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 250m
memory: 256Mi
volumeMounts:
- mountPath: "/mnt/azure"
name: volume
volumes:
- name: volume
persistentVolumeClaim:
claimName: premium2-disk
قم بإنشاء الكبسولة باستخدام الأمر kubectl apply ، كما هو موضح في المثال التالي:
kubectl apply -f nginx-premium2.yaml
الإخراج من الأمر يشبه المثال التالي:
pod/nginx-premium2 created
لديك الآن كبسولة قيد التشغيل مع قرص Azure المثبت في الدليل /mnt/azure
. يمكن رؤية هذه التهيئة عند فحص الكبسولة الخاص بك عبر kubectl describe pod nginx-premium2
، كما هو موضح في المثال المكثف التالي:
kubectl describe pod nginx-premium2
[...]
Volumes:
volume:
Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
ClaimName: premium2-disk
ReadOnly: false
kube-api-access-sh59b:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: Burstable
Node-Selectors: <none>
Tolerations: node.kubernetes.io/memory-pressure:NoSchedule op=Exists
node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 7m58s default-scheduler Successfully assigned default/nginx-premium2 to aks-agentpool-12254644-vmss000006
Normal SuccessfulAttachVolume 7m46s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-ff39fb64-1189-4c52-9a24-e065b855b886"
Normal Pulling 7m39s kubelet Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine"
Normal Pulled 7m38s kubelet Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine" in 1.192915667s
Normal Created 7m38s kubelet Created container nginx-premium2
Normal Started 7m38s kubelet Started container nginx-premium2
[...]
تعيين حدود IOPS ومعدل النقل
عمليات الإدخال/الإخراج في الثانية (IOPS) وحدود معدل النقل لقرص Azure Premium v2 SSD غير مدعومة حاليا من خلال AKS. لضبط الأداء، يمكنك استخدام أمر Azure CLI az disk update وتضمين --disk-iops-read-write
المعلمتين و --disk-mbps-read-write
.
يحدث المثال التالي قراءة/كتابة IOPS القرص إلى 5000 وMbps إلى 200. بالنسبة إلى --resource-group
، يجب أن تكون القيمة هي مجموعة الموارد الثانية التي يتم إنشاؤها تلقائيا لتخزين عقد عامل AKS مع اصطلاح التسمية MC_resourcegroupname_clustername_location. لمزيد من المعلومات، راجع لماذا يتم إنشاء مجموعتين من الموارد باستخدام AKS؟.
قيمة المعلمة --name
هي اسم وحدة التخزين التي تم إنشاؤها باستخدام StorageClass، وتبدأ ب pvc-
. لتعريف اسم القرص، يمكنك تشغيل kubectl get pvc
أو الانتقال إلى مجموعة الموارد الثانوية في المدخل للعثور عليه. راجع إدارة الموارد من مدخل Microsoft Azure لمعرفة المزيد.
az disk update --subscription subscriptionName --resource-group myResourceGroup --name diskName --disk-iops-read-write=5000 --disk-mbps-read-write=200
الخطوات التالية
- لمزيد من التفاصيل حول أقراص Premium SSD v2، راجع استخدام أقراص Azure Premium SSD v2.
- لمزيد من المعلومات حول أفضل ممارسات التخزين، راجع أفضل الممارسات للتخزين والنسخ الاحتياطية في خدمة Azure Kubernetes (AKS).
Azure Kubernetes Service