إنشاء وحدة تخزين واستخدامها مع تخزين Azure Blob في خدمة Azure Kubernetes (AKS)
غالبًا ما تحتاج التطبيقات المستندة إلى حاوية إلى الوصول إلى البيانات، والمثابرة عليها في وحدة تخزين بيانات خارجية. إذا كانت القرون المتعددة بحاجة إلى وصول متزامن إلى نفس وحدة التخزين، فيمكنك استخدام تخزين Azure Blob للاتصال باستخدام blobfuse أو Network File System (NFS).
توضح لك هذه المقالة كيفية:
- العمل مع وحدة تخزين ثابتة ديناميكية (PV) عن طريق تثبيت برنامج تشغيل واجهة تخزين الحاوية (CSI) وإنشاء حاوية تخزين Azure Blob بشكل ديناميكي لإرفاقها بحاوية.
- العمل مع PV ثابت عن طريق إنشاء حاوية تخزين Azure Blob، أو استخدام حاوية موجودة وإرفاقها ب pod.
لمزيد من المعلومات حول وحدات تخزين Kubernetes، راجع خيارات التخزين للتطبيقات في AKS .
قبل البدء
تمكين برنامج تشغيل Blob storage CSI على نظام مجموعة AKS.
لدعم حساب تخزين Azure DataLake Gen2 عند استخدام تحميل blobfuse، ستحتاج إلى القيام بما يلي:
- لإنشاء حساب ADLS باستخدام برنامج التشغيل في التوفير الديناميكي، حدد
isHnsEnabled: "true"
في معلمات فئة التخزين. - لتمكين الوصول blobfuse إلى حساب ADLS في التوفير الثابت، حدد خيار
--use-adls=true
التحميل في وحدة التخزين الثابتة. - إذا كنت ستقوم بتمكين حساب تخزين باستخدام مساحة الاسم الهرمية، يجب إعادة تحميل وحدات التخزين الثابتة الموجودة مع
--use-adls=true
خيار التحميل.
- لإنشاء حساب ADLS باستخدام برنامج التشغيل في التوفير الديناميكي، حدد
حول ذاكرة التخزين المؤقت blobfuse
- بشكل افتراضي، توجد ذاكرة التخزين المؤقت blobfuse في
/mnt
الدليل. إذا كان VM SKU يوفر قرصا مؤقتا،/mnt
يتم تحميل الدليل على القرص المؤقت. ومع ذلك، إذا لم يوفر VM SKU قرصا مؤقتا،/mnt
يتم تحميل الدليل على قرص نظام التشغيل، يمكنك تعيين--tmp-path=
خيار التحميل لتحديد دليل ذاكرة تخزين مؤقت مختلفة
- بشكل افتراضي، توجد ذاكرة التخزين المؤقت blobfuse في
توفير وحدة تخزين ديناميكيا
يوفر هذا القسم إرشادات لمسؤولي نظام المجموعة الذين يرغبون في توفير وحدة تخزين ثابتة واحدة أو أكثر تتضمن تفاصيل تخزين Blob لاستخدامها بواسطة حمل العمل. تستخدم مطالبة وحدة التخزين الدائمة (PVC) كائن فئة التخزين لتوفير مشاركة ملف Azure بشكل ديناميكي.
معلمات فئة التخزين لوحدات التخزين الثابتة الديناميكية
يتضمن الجدول التالي المعلمات التي يمكنك استخدامها لتعريف فئة تخزين مخصصة لمطالبة وحدة التخزين الدائمة.
Name | الوصف | مثال | إلزامي | القيمة الافتراضية |
---|---|---|---|---|
skuName | حدد نوع حساب تخزين Azure (الاسم المستعار: storageAccountType ). |
Standard_LRS ، ، Premium_LRS ، Standard_GRS Standard_RAGRS |
لا | Standard_LRS |
مكان | حدد موقع Azure. | eastus |
لا | إذا كان فارغاً، فسيستخدم السائق نفس اسم الموقع مثل مجموعة AKS الحالية. |
resourceGroup | اسم مجموعة موارد Azure الخاصة بك. | myResourceGroup | لا | إذا كان فارغًا، فسيستخدم برنامج التشغيل نفس اسم مجموعة الموارد مثل نظام المجموعة الحالية. |
storageAccount | حدد اسم حساب تخزين Azure. | storageAccountName | -لا | عند عدم توفير اسم حساب تخزين معين، سيبحث برنامج التشغيل عن حساب تخزين مناسب يطابق إعدادات الحساب داخل نفس مجموعة الموارد. إذا فشل في العثور على حساب تخزين مطابق، فسينشئ حسابا جديدا. ومع ذلك، إذا تم تحديد اسم حساب تخزين، يجب أن يكون حساب التخزين موجودا بالفعل. |
نوع نقطة نهاية الشبكة | حدد نوع نقطة نهاية الشبكة لحساب التخزين الذي تم إنشاؤه بواسطة برنامج التشغيل. إذا تم تحديد نقطة نهاية خاصة، يتم إنشاء نقطة نهاية خاصة لحساب التخزين. بالنسبة للحالات الأخرى، سيتم إنشاء نقطة نهاية خدمة لبروتوكول NFS.1 | privateEndpoint |
لا | بالنسبة إلى نظام مجموعة AKS، أضف اسم مجموعة AKS إلى دور المساهم في مجموعة الموارد التي تستضيف VNET. |
البروتوكول | حدد تحميل blobfuse أو تحميل NFSv3. | fuse , nfs |
لا | fuse |
containerName | حدد اسم الحاوية (الدليل) الموجود. | حاوية | لا | إذا كان فارغًا، يقوم برنامج التشغيل بإنشاء اسم حاوية جديد، بدءًا من pvc-fuse blobfuse أو pvc-nfs ل NFS v3. |
containerNamePrefix | حدد بادئة دليل تخزين Azure التي تم إنشاؤها بواسطة برنامج التشغيل. | my | يمكن أن يحتوي فقط على أحرف صغيرة وأرقام وواصلات وطول يجب أن يكون أقل من 21 حرفًا. | لا |
الخادم | حدد اسم مجال حساب تخزين Azure. | اسم مجال DNS لحساب التخزين الموجود، على سبيل المثال <storage-account>.privatelink.blob.core.windows.net . |
لا | إذا كان فارغًا، يستخدم برنامج التشغيل اسم مجال DNS لحساب تخزين على السحابة الافتراضي <storage-account>.blob.core.windows.net أو أي حساب تخزين سحابي آخر ذي سيادة. |
allowBlobPublicAccess | السماح بالوصول العام أو عدم السماح به لجميع الكائنات الثنائية كبيرة الحجم أو الحاويات لحساب التخزين الذي أنشأه برنامج التشغيل. | true ,false |
لا | false |
storageEndpointSuffix | حدد لاحقة نقطة نهاية تخزين Azure. | core.windows.net |
لا | إذا كان فارغًا، فسيستخدم برنامج التشغيل لاحقة نقطة نهاية التخزين الافتراضية وفقا لبيئة السحابة. |
العلامات | سيتم إنشاء العلامات في حساب تخزين جديد. | تنسيق العلامة: 'foo=aaa,bar=bbb' | لا | "" |
علامات المطابقة | مطابقة العلامات عندما يحاول برنامج التشغيل العثور على حساب تخزين مناسب. | true ,false |
لا | false |
--- | المعلمات التالية مخصصة فقط لـ blobfuse | --- | --- | --- |
subscriptionID | حدد معرف اشتراك Azure حيث سيتم إنشاء دليل تخزين الكائن الثنائي كبير الحجم. | مُعرف اشتراكك في Azure | لا | إذا لم يكن فارغاً، فيجب تقديم resourceGroup . |
storeAccountKey | حدد مفتاح حساب المتجر إلى بيانات Kubernetes السرية. ملاحظه: false يعني أن برنامج التشغيل يستخدم هوية kubelet للحصول على مفتاح الحساب. |
true ,false |
لا | true |
secretName | حدد اسمًا سريًا لتخزين مفتاح الحساب. | لا | ||
secretNamespace | حدد مساحة اسم البيانات السرية لتخزين مفتاح الحساب. | default ،kube-system ، وما إلى ذلك. |
لا | مساحة اسم pvc |
isHnsEnabled | تمكين Hierarchical namespace لحساب تخزين Azure Data Lake. |
true ,false |
لا | false |
--- | المعلمات التالية مخصصة فقط لبروتوكول NFS | --- | --- | --- |
mountPermissions | حدد أذونات المجلد المحمل. | الافتراضي هو 0777 . إذا تم التعيين إلى 0 ، فلن يعمل chmod برنامج التشغيل بعد التحميل. |
0777 |
لا |
1 إذا تم إنشاء حساب التخزين بواسطة برنامج التشغيل، فأنت تحتاج فقط إلى تحديد networkEndpointType: privateEndpoint
معلمة في فئة التخزين. يقوم برنامج تشغيل CSI بإنشاء نقطة النهاية الخاصة مع الحساب. إذا قمت بإحضار حساب التخزين الخاص بك، فأنت بحاجة إلى إنشاء نقطة نهاية خاصة لحساب التخزين.
إنشاء مطالبة وحدة تخزين ثابتة باستخدام فئة التخزين المضمنة
تستخدم مطالبة وحدة التخزين الدائمة (PVC) كائن فئة التخزين لتوفير مشاركة ملف Azure بشكل ديناميكي. يمكن استخدام YAML التالي لإنشاء مطالبة ثابتة لوحدة التخزين بحجم 5 غيغابايت مع وصول ReadWriteMany، باستخدام فئة التخزين المدمجة. لمزيد من المعلومات حول أوضاع الوصول، راجع وثائق وحدة التخزين الدائمة لـ Kubernetes.
قم بإنشاء ملف باسم
blob-nfs-pvc.yaml
وانسخه في YAML التالي.apiVersion: v1 kind: PersistentVolumeClaim metadata: name: azure-blob-storage spec: accessModes: - ReadWriteMany storageClassName: azureblob-nfs-premium resources: requests: storage: 5Gi
إنشاء مطالبة وحدة التخزين الدائمة باستخدام الأمر kubectl create :
kubectl create -f blob-nfs-pvc.yaml
بمجرد الانتهاء، سيتم إنشاء حاوية تخزين Blob. يمكنك استخدام الأمر kubectl get لعرض حالة PVC:
kubectl get pvc azure-blob-storage
إخراج الأمر يشبه المثال التالي:
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
azure-blob-storage Bound pvc-b88e36c5-c518-4d38-a5ee-337a7dda0a68 5Gi RWX azureblob-nfs-premium 92m
إنشاء مطالبة وحدة التخزين الثابتة
ينشئ YAML التالية حاوية تستخدم مطالبة وحدة التخزين my-azurefile لتحميل مشاركة ملف Azure في المسار /mnt/azure.
قم بإنشاء ملف باسم
blob-nfs-pv
وانسخه في ملف YAML التالي. تأكد من أن claimName يطابق PVC التي تم إنشاؤها في الخطوة الأخيرة.kind: Pod apiVersion: v1 metadata: name: mypod spec: containers: - name: mypod image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine resources: requests: cpu: 100m memory: 128Mi limits: cpu: 250m memory: 256Mi volumeMounts: - mountPath: "/mnt/blob" name: volume readOnly: false volumes: - name: volume persistentVolumeClaim: claimName: azure-blob-storage
أنشئ الكبسولة باستخدام الأمر kubectl apply:
kubectl apply -f blob-nfs-pv.yaml
بعد أن يكون البود في حالة التشغيل، قم بتشغيل الأمر التالي لإنشاء ملف جديد يسمى
test.txt
.kubectl exec mypod -- touch /mnt/blob/test.txt
للتحقق من صحة تثبيت القرص بشكل صحيح، قم بتشغيل الأمر التالي وتحقق من رؤية الملف
test.txt
في الإخراج:kubectl exec mypod -- ls /mnt/blob
إخراج الأمر يشبه المثال التالي:
test.txt
إنشاء فئة تخزين مخصصة
تناسب فئات التخزين الافتراضية السيناريوهات الأكثر شيوعا، ولكن ليس كلها. في بعض الحالات، قد ترغب في تخصيص فئة التخزين الخاصة بك مع المعلمات الخاصة بك. في هذا القسم، نقدم مثالين. يستخدم الأول بروتوكول NFS، والثاني يستخدم blobfuse.
فئة التخزين باستخدام بروتوكول NFS
في هذا المثال، يقوم البيان التالي بتكوين تحميل حاوية تخزين Blob باستخدام بروتوكول NFS. استخدمه لإضافة معلمة العلامات.
قم بإنشاء ملف باسم
blob-nfs-sc.yaml
، والصق مثال البيان التالي:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azureblob-nfs-premium provisioner: blob.csi.azure.com parameters: protocol: nfs tags: environment=Development volumeBindingMode: Immediate allowVolumeExpansion: true mountOptions: - nconnect=4
أنشئ فئة التخزين باستخدام الأمر kubectl apply :
kubectl apply -f blob-nfs-sc.yaml
إخراج الأمر يشبه المثال التالي:
storageclass.storage.k8s.io/blob-nfs-premium created
فئة التخزين باستخدام blobfuse
في هذا المثال، يكون البيان التالي باستخدام blobfuse ويحمل حاوية تخزين Blob. استخدمه لتحديث معلمة skuName.
قم بإنشاء ملف باسم
blobfuse-sc.yaml
، والصق مثال البيان التالي:apiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: azureblob-fuse-premium provisioner: blob.csi.azure.com parameters: skuName: Standard_GRS # available values: Standard_LRS, Premium_LRS, Standard_GRS, Standard_RAGRS reclaimPolicy: Delete volumeBindingMode: Immediate allowVolumeExpansion: true mountOptions: - -o allow_other - --file-cache-timeout-in-seconds=120 - --use-attr-cache=true - --cancel-list-on-mount-seconds=10 # prevent billing charges on mounting - -o attr_timeout=120 - -o entry_timeout=120 - -o negative_timeout=120 - --log-level=LOG_WARNING # LOG_WARNING, LOG_INFO, LOG_DEBUG - --cache-size-mb=1000 # Default will be 80% of available memory, eviction will happen beyond that.
أنشئ فئة التخزين باستخدام الأمر kubectl apply :
kubectl apply -f blobfuse-sc.yaml
إخراج الأمر يشبه المثال التالي:
storageclass.storage.k8s.io/blob-fuse-premium created
توفير وحدة تخزين بشكل ثابت
يوفر هذا القسم إرشادات لمسؤولي نظام المجموعة الذين يرغبون في إنشاء وحدة تخزين ثابتة واحدة أو أكثر تتضمن تفاصيل تخزين Blob لاستخدامها بواسطة حمل العمل.
معلمات التوفير الثابت لوحدات التخزين الثابتة
يتضمن الجدول التالي المعلمات التي يمكنك استخدامها لتعريف وحدة تخزين ثابتة.
Name | الوصف | مثال | إلزامي | القيمة الافتراضية |
---|---|---|---|---|
volumeHandle | حدد قيمة يمكن لبرنامج التشغيل استخدامها لتعريف حاوية كائن ثنائي كبير الحجم للتخزين بشكل فريد في نظام المجموعة. | الطريقة الموصى بها لإنتاج قيمة فريدة هي دمج اسم حساب التخزين الفريد عالميا واسم الحاوية: {account-name}_{container-name} .ملاحظة: # الحرف ، / محجوز للاستخدام الداخلي ولا يمكن استخدامه في مقبض وحدة التخزين. |
نعم | |
volumeAttributes.resourceGroup | حدد اسم مجموعة موارد Azure. | myResourceGroup | لا | إذا كان فارغا، يستخدم برنامج التشغيل نفس اسم مجموعة الموارد مثل نظام المجموعة الحالي. |
volumeAttributes.storageAccount | حدد اسم حساب تخزين Azure موجود. | storageAccountName | نعم | |
volumeAttributes.containerName | حدد اسم الحاوية الحالي. | حاوية | نعم | |
volumeAttributes.protocol | حدد blobfuse mount أو NFS v3 mount. | fuse , nfs |
لا | fuse |
--- | المعلمات التالية مخصصة فقط لـ blobfuse | --- | --- | --- |
volumeAttributes.secretName | الاسم السري الذي يخزن اسم ومفتاح حساب التخزين (ينطبق فقط على SMB). | لا | ||
volumeAttributes.secretNamespace | حدد مساحة اسم البيانات السرية لتخزين مفتاح الحساب. | default |
لا | مساحة اسم Pvc |
nodeStageSecretRef.name | حدد اسما سريا يخزن أحد الإجراءات التالية:azurestorageaccountkey azurestorageaccountsastoken msisecret azurestoragespnclientsecret . |
لا | اسم البيانات السرية الحالي لـ Kubernetes | |
nodeStageSecretRef.namespace | حدد مساحة اسم البيانات السرية. | مساحة اسم Kubernetes | نعم | |
--- | المعلمات التالية مخصصة فقط لبروتوكول NFS | --- | --- | --- |
volumeAttributes.mountPermissions | حدد أذونات المجلد المحمل. | 0777 |
لا | |
--- | المعلمات التالية مخصصة فقط لإعداد NFS VNet | --- | --- | --- |
vnetResourceGroup | حدد مجموعة موارد الشبكة الظاهرية التي تستضيف شبكة ظاهرية. | myResourceGroup | لا | إذا كان فارغًا، يستخدم برنامج التشغيل القيمة vnetResourceGroup المحددة في ملف تكوين السحابة Azure. |
vnetName | حدد اسم الشبكة الظاهرية. | aksVNet | لا | إذا كان فارغًا، يستخدم برنامج التشغيل القيمة vnetName المحددة في ملف تكوين السحابة Azure. |
subnetName | حدد اسم الشبكة الفرعية الحالية لعقدة العامل. | aksSubnet | لا | إذا كان فارغًا، يستخدم برنامج التشغيل القيمة subnetName في ملف تكوين سحابة Azure. |
--- | المعلمات التالية مخصصة فقط للميزة: blobfuse مصادقة الهوية المُدارة واسم الخدمة الأساسي |
--- | --- | --- |
volumeAttributes.AzureStorageAuthType | حدد نوع المصادقة. | Key ، ، SAS ، MSI SPN |
لا | Key |
volumeAttributes.AzureStorageIdentityClientID | حدد معرف عميل الهوية. | لا | ||
volumeAttributes.AzureStorageIdentityResourceID | حدد معرف مورد الهوية. | لا | ||
volumeAttributes.MSIEndpoint | حدد نقطة نهاية MSI. | لا | ||
volumeAttributes.AzureStorageSPNClientID | حدد معرف عميل الاسم الأساسي لخدمة Azure (SPN). | لا | ||
volumeAttributes.AzureStorageSPNTenantID | حدد معرف مستأجر Azure SPN. | لا | ||
volumeAttributes.AzureStorageAADEndpoint | حدد نقطة نهاية Microsoft Entra. | لا | ||
--- | المعلمات التالية مخصصة فقط للميزة: blobfuse لقراءة مفتاح الحساب أو رمز SAS المميز من مخزن المفاتيح | --- | --- | --- |
volumeAttributes.keyVaultURL | حدد اسم Azure Key Vault DNS. | {vault-name}.vault.azure.net | لا | |
volumeAttributes.keyVaultSecretName | حدد اسم البيانات السرية لـ Azure Key Vault. | اسم البيانات السرية الحالية لـ Azure Key Vault. | لا | |
volumeAttributes.keyVaultSecretVersion | نسخة للبيانات السرية من Azure Key Vault. | الإصدار الحالي | لا | إذا كان فارغًا، يستخدم برنامج التشغيل الإصدار الحالي. |
بإنشاء حاوية تخزين الكائن الثنائي كبير الحجم
عند إنشاء مورد تخزين Azure Blob للاستخدام مع AKS، يمكنك إنشاء المورد في مجموعة موارد العقدة. يسمح هذا الأسلوب لمجموعة AKS بالوصول إلى موارد تخزين الكائن الثنائي كبير الحجم وإدارته.
بالنسبة لهذه المقالة، قم بإنشاء الحاوية في مجموعة موارد العقدة. أولاً، احصل على اسم مجموعة الموارد مع أمر az aks show وإضافة معلمة الاستعلام --query nodeResourceGroup
. يحصل المثال التالي على مجموعة موارد العقدة لمجموعة AKS المسماة myAKSCluster في مجموعة الموارد المسماة myResourceGroup:
az aks show --resource-group myResourceGroup --name myAKSCluster --query nodeResourceGroup -o tsv
إخراج الأمر يشبه المثال التالي:
MC_myResourceGroup_myAKSCluster_eastus
بعد ذلك، قم بإنشاء حاوية لتخزين الكائنات الثنائية كبيرة الحجم باتباع الخطوات الواردة في إدارة تخزين الكائن الثنائي كبير الحجم للسماح بالوصول ثم إنشاء الحاوية.
تحميل وحدة التخزين
في هذا القسم، يمكنك تحميل وحدة التخزين الثابتة باستخدام بروتوكول NFS أو Blobfuse.
لا يصادق تركيب تخزين الكائن الثنائي كبير الحجم باستخدام بروتوكول NFS v3 باستخدام مفتاح حساب. يجب أن تكون نظام مجموعة AKS الخاصة بك موجودة في نفس الشبكة الظاهرية أو نظيرها مثل عقدة الوكيل. الطريقة الوحيدة لتأمين البيانات في حساب التخزين الخاص بك هي باستخدام شبكة ظاهرية وإعدادات أمان أخرى للشبكة. لمزيد من المعلومات حول كيفية إعداد وصول NFS إلى حساب التخزين الخاص بك، راجع تحميل تخزين الكائن الثنائي كبير الحجم باستخدام بروتوكول نظام ملفات الشبكة (NFS) 3.0.
يوضح المثال التالي كيفية تحميل حاوية تخزين الكائن الثنائي كبير الحجم كوحدة تخزين ثابتة باستخدام بروتوكول NFS.
قم بإنشاء ملف باسم
pv-blob-nfs.yaml
وانسخه في YAML التالي. ضمنstorageClass
، حدِّثresourceGroup
وstorageAccount
وcontainerName
.إشعار
volumeHandle
يجب أن تكون القيمة معرف وحدة تخزين فريدا لكل حاوية كائن ثنائي كبير الحجم للتخزين متطابقة في نظام المجموعة. الحرف#
و/
محجوزان للاستخدام الداخلي ولا يمكن استخدامهما.apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: blob.csi.azure.com name: pv-blob spec: capacity: storage: 1Pi accessModes: - ReadWriteMany persistentVolumeReclaimPolicy: Retain # If set as "Delete" container would be removed after pvc deletion storageClassName: azureblob-nfs-premium mountOptions: - nconnect=4 csi: driver: blob.csi.azure.com # make sure volumeid is unique for every identical storage blob container in the cluster # character `#` and `/` are reserved for internal use and cannot be used in volumehandle volumeHandle: account-name_container-name volumeAttributes: resourceGroup: resourceGroupName storageAccount: storageAccountName containerName: containerName protocol: nfs
إشعار
في حين أن سمة سعة Kubernetes API إلزامية، لا يتم استخدام هذه القيمة من قبل برنامج تشغيل CSI لتخزين Azure Blob لأنه يمكنك كتابة البيانات بمرونة حتى تصل إلى حد سعة حساب التخزين الخاص بك. يتم استخدام قيمة السمة
capacity
فقط لمطابقة الحجم بين PersistentVolumes و PersistentVolumeClaims. نوصي باستخدام قيمة عالية وهمية. ترى الجراب وحدة تخزين مثبتة بحجم وهمي يبلغ 5 بيتابايت.قم بتشغيل الأمر التالي لإنشاء وحدة التخزين الثابتة باستخدام الأمر kubectl create الذي يشير إلى ملف YAML الذي تم إنشاؤه مسبقا:
kubectl create -f pv-blob-nfs.yaml
pvc-blob-nfs.yaml
إنشاء ملف باستخدام PersistentVolumeClaim. على سبيل المثال:kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc-blob spec: accessModes: - ReadWriteMany resources: requests: storage: 10Gi volumeName: pv-blob storageClassName: azureblob-nfs-premium
قم بتشغيل الأمر التالي لإنشاء مطالبة وحدة التخزين الدائمة باستخدام الأمر kubectl create الذي يشير إلى ملف YAML الذي تم إنشاؤه مسبقا:
kubectl create -f pvc-blob-nfs.yaml
استخدم الحجم الثابت
ينشئ YAML التالي حاوية تستخدم وحدة التخزين الثابتة أو مطالبة وحدة التخزين الثابتة المسماة pvc-blob التي تم إنشاؤها سابقا، لتحميل تخزين Azure Blob في /mnt/blob
المسار.
قم بإنشاء ملف باسم
nginx-pod-blob.yaml
وانسخه في ملف YAML التالي. تأكد من أن claimName يطابق PVC الذي تم إنشاؤه في الخطوة السابقة عند إنشاء وحدة تخزين ثابتة لـ NFS أو Blobfuse.kind: Pod apiVersion: v1 metadata: name: nginx-blob spec: nodeSelector: "kubernetes.io/os": linux containers: - image: mcr.microsoft.com/oss/nginx/nginx:1.17.3-alpine name: nginx-blob volumeMounts: - name: blob01 mountPath: "/mnt/blob" readOnly: false volumes: - name: blob01 persistentVolumeClaim: claimName: pvc-blob
قم بتشغيل الأمر التالي لإنشاء الجراب وتركيب PVC باستخدام الأمر kubectl create الذي يشير إلى ملف YAML الذي تم إنشاؤه مسبقا:
kubectl create -f nginx-pod-blob.yaml
قم بتشغيل الأمر التالي لإنشاء جلسة shell تفاعلية مع الجراب للتحقق من تحميل تخزين الكائن الثنائي كبير الحجم:
kubectl exec -it nginx-blob -- df -h
الإخراج من الأمر يشبه المثال التالي:
Filesystem Size Used Avail Use% Mounted on ... blobfuse 14G 41M 13G 1% /mnt/blob ...
الخطوات التالية
- لمعرفة كيفية استخدام برنامج تشغيل CSI لتخزين Azure Blob، راجع استخدام تخزين Azure Blob مع برنامج تشغيل جهاز CSI.
- للحصول على أفضل الممارسات المرتبطة بها، راجع أفضل الممارسات للتخزين والنسخ الاحتياطي في AKS.
Azure Kubernetes Service