استخدام الأقراص الفائقة من Azure على خدمة Azure Kubernetes
توفر الأقراص الفائقة من Azure معدل نقل عال وIOPS عال و تخزين قرص بزمن انتقال منخفض متناسق للتطبيقات الخاصة بك. فائدة رئيسية واحدة من الأقراص الفائقة هي القدرة على تغيير أداء SSD بشكل حيوي جنبًا إلى جنب مع أحمال العمل الخاصة بك دون الحاجة إلى إعادة تشغيل العقد وكيل الخاص بك. الأقراص الفائقة ملاءمة لأحمال العمل كثيفة البيانات.
توضح هذه المقالة كيفية تكوين مجموعة AKS جديدة أو موجودة لاستخدام أقراص Azure ultra.
قبل البدء
يمكن تعيين هذه الميزة فقط عند إنشاء نظام المجموعة أو عند إنشاء تجمع عقدة.
القيود
- تتطلب أقراص Azure ultra تجمعات العقد الموزعة في مناطق التوفر والمناطق التي تدعم هذه الأقراص، ويتم دعمها فقط بواسطة سلسلة أجهزة ظاهرية معينة. راجع الجدول المقابل ضمن قسم قيود القرص Ultra للحصول على مزيد من المعلومات.
- لا يمكن استخدام أقراص Ultra مع بعض الميزات والوظائف، مثل مجموعات التوفر أو تشفير قرص Azure. راجع قيود قرص Ultra للحصول على أحدث المعلومات.
إنشاء نظام مجموعة يمكنه استخدام الأقراص الفائقة
إنشاء مجموعة AKS قادرة على الاستفادة من أقراص Azure الفائقة باستخدام أوامر CLI التالية. استخدم المعلمة --enable-ultra-ssd
لتعيين الميزة EnableUltraSSD
.
az aks create \
--resource-group MyResourceGroup \
--name myAKSCluster \
--location westus2 \
--node-vm-size Standard_D2s_v3 \
--zones 1 2 \
--node-count 2 \
--enable-ultra-ssd \
--generate-ssh-keys
إذا كنت ترغب في إنشاء نظام مجموعة دون دعم القرص الفائق، يمكنك القيام بذلك عن طريق حذف المعلمة --enable-ultra-ssd
.
تمكين الأقراص الفائقة على نظام مجموعة موجود
يمكنك تمكين الأقراص الفائقة على مجموعة موجودة عن طريق إضافة تجمع عقدة جديد إلى نظام المجموعة الذي يدعم الأقراص الفائقة. تكوين تجمع عقدة جديدة لاستخدام الأقراص فائقة باستخدام المعلمة --enable-ultra-ssd
az aks nodepool add
مع الأمر .
إذا كنت ترغب في إنشاء تجمعات عقد جديدة دون دعم للأقراص الفائقة، يمكنك القيام بذلك عن طريق استبعاد المعلمة --enable-ultra-ssd
.
استخدام الأقراص الفائقة بشكل ديناميكي مع فئة تخزين
لاستخدام الأقراص الفائقة في عمليات التوزيع أو المجموعات ذات الحالة الخاصة بك، يمكنك استخدام فئة تخزين للتزويد الديناميكي.
إنشاء فئة التخزين
يتم استخدام فئة تخزين لتعريف كيفية إنشاء وحدة تخزين بشكل حيوي مع وحدة تخزين ثابتة. لمزيد من المعلومات حول فئات التخزين Kubernetes، راجع فئات تخزين Kubernetes . في هذا المثال، سننشئ فئة تخزين تشير إلى الأقراص الفائقة.
أنشئ ملفا باسم
azure-ultra-disk-sc.yaml
وانسخه في البيان التالي:kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: ultra-disk-sc provisioner: disk.csi.azure.com # replace with "kubernetes.io/azure-disk" if aks version is less than 1.21 volumeBindingMode: WaitForFirstConsumer # optional, but recommended if you want to wait until the pod that will use this disk is created parameters: skuname: UltraSSD_LRS kind: managed cachingMode: None diskIopsReadWrite: "2000" # minimum value: 2 IOPS/GiB diskMbpsReadWrite: "320" # minimum value: 0.032/GiB
إنشاء فئة التخزين باستخدام
kubectl apply
الأمر وتحديد الملف الخاص بكazure-ultra-disk-sc.yaml
.kubectl apply -f azure-ultra-disk-sc.yaml
يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:
storageclass.storage.k8s.io/ultra-disk-sc created
إنشاء مطالبة وحدة تخزين ثابتة
يتم استخدام مطالبة الحجم الثابت (PVC)؛ لتوفير التخزين تلقائيًا بناءً على فئة التخزين. في هذه الحالة، يمكن استخدام PVC فئة التخزين التي تم إنشاؤها مسبقًا لإنشاء قرص فائق.
أنشئ ملفا باسم
azure-ultra-disk-pvc.yaml
وانسخه في البيان التالي:apiVersion: v1 kind: PersistentVolumeClaim metadata: name: ultra-disk spec: accessModes: - ReadWriteOnce storageClassName: ultra-disk-sc resources: requests: storage: 1000Gi
تطلب المطالبة قرصًا باسم
ultra-disk
بحجم 1000 غيغابايت مع وصول ReadWriteOnce . يتم تحديد فئة التخزين ultra-disk-sc كفئة التخزين.إنشاء مطالبة وحدة التخزين الدائمة باستخدام
kubectl apply
الأمر وتحديد الملف الخاص بكazure-ultra-disk-pvc.yaml
.kubectl apply -f azure-ultra-disk-pvc.yaml
يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:
persistentvolumeclaim/ultra-disk created
استخدم الحجم الثابت
بمجرد إنشاء مطالبة وحدة التخزين الثابتة، وتوفير القرص بنجاح، يمكن إنشاء كبسولة للوصول إلى القرص. ينشئ البيان التالي كبسولة NGINX أساسي يستخدم مطالبة وحدة التخزين الثابتة المسمى ultra-disk لتحميل قرص Azure في المسار /mnt/azure
.
أنشئ ملفا باسم
nginx-ultra.yaml
وانسخه في البيان التالي:kind: Pod apiVersion: v1 metadata: name: nginx-ultra spec: containers: - name: nginx-ultra 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: ultra-disk
إنشاء الجراب باستخدام
kubectl apply
الأمر وتحديد الملف الخاص بكnginx-ultra.yaml
.kubectl apply -f nginx-ultra.yaml
يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:
pod/nginx-ultra created
لديك الآن كبسولة قيد التشغيل مع قرص Azure المثبت في الدليل
/mnt/azure
.راجع تفاصيل التكوين باستخدام
kubectl describe pod
الأمر وحدد الملف الخاص بكnginx-ultra.yaml
.kubectl describe pod nginx-ultra
يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:
[...] Volumes: volume: Type: PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace) ClaimName: azure-managed-disk ReadOnly: false default-token-smm2n: Type: Secret (a volume populated by a Secret) SecretName: default-token-smm2n Optional: false [...] Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 2m default-scheduler Successfully assigned mypod to aks-nodepool1-79590246-0 Normal SuccessfulMountVolume 2m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "default-token-smm2n" Normal SuccessfulMountVolume 1m kubelet, aks-nodepool1-79590246-0 MountVolume.SetUp succeeded for volume "pvc-faf0f176-8b8d-11e8-923b-deb28c58d242" [...]
الخطوات التالية
- لمزيد من بشأن الأقراص الفائقة، راجع استخدام أقراص فائقة من Azure.
- لمزيد من التفاصيل حول أفضل ممارسات التخزين، راجع أفضل الممارسات للتخزين والنسخ الاحتياطية في AKS.
Azure Kubernetes Service