البرنامج التعليمي: تثبيت Azure Container Storage Preview للاستخدام مع خدمة Azure Kubernetes

Azure Container Storage هي خدمة إدارة وحدة تخزين ونشر وتنسيق مستندة إلى السحابة تم إنشاؤها في الأصل للحاويات. في هذا البرنامج التعليمي، ستقوم بإنشاء نظام مجموعة Azure Kubernetes Service (AKS) وتثبيت Azure Container Storage على نظام المجموعة. بدلا من ذلك، يمكنك تثبيت Azure Container Storage باستخدام QuickStart بدلا من اتباع الخطوات اليدوية في هذا البرنامج التعليمي.

في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

  • إنشاء مجموعة موارد
  • اختر خيار تخزين البيانات ونوع الجهاز الظاهري
  • إنشاء نظام مجموعة AKS
  • الاتصال بنظام المجموعة
  • تسمية تجمع العقدة
  • تعيين دور المساهم إلى الهوية المدارة ل AKS
  • تثبيت ملحق Azure Container Storage

المتطلبات الأساسية

  • في حال لم يكن لديك اشتراك Azure، فأنشئ حساباً مجانيّاً قبل البدء.

  • تتطلب هذه المقالة أحدث إصدار (2.35.0 أو أحدث) من Azure CLI. راجع كيفية تثبيت Azure CLI. إذا كنت تستخدم بيئة Bash في Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل. إذا كنت تخطط لتشغيل الأوامر محليا بدلا من Azure Cloud Shell، فتأكد من تشغيلها بامتيازات إدارية. لمزيد من المعلومات، راجع بدء استخدام Azure Cloud Shell.

  • ستحتاج إلى عميل سطر أوامر Kubernetes، kubectl. يتم تثبيته بالفعل إذا كنت تستخدم Azure Cloud Shell، أو يمكنك تثبيته محليا عن طريق تشغيل az aks install-cli الأمر .

إشعار

إذا كان لديك بالفعل نظام مجموعة AKS تم نشره، فانتقل إلى الاتصال إلى نظام المجموعة.

الشروع في العمل

  • دون معرف اشتراك Azure الخاص بك. نوصي باستخدام اشتراك يكون لديك دور مساهم Kubernetes عليه إذا كنت تريد استخدام أقراص Azure أو القرص المؤقت كمخزن للبيانات. إذا كنت ترغب في استخدام Azure Elastic SAN كمخزن للبيانات، فستحتاج إلى دور المالك في اشتراك Azure.

  • قم بتشغيل Azure Cloud Shell، أو إذا كنت تستخدم تثبيتا محليا، فسجل الدخول إلى Azure CLI باستخدام الأمر az login .

  • إذا كنت تستخدم Azure Cloud Shell، فقد تتم مطالبتك بتحميل التخزين. حدد اشتراك Azure حيث تريد إنشاء حساب التخزين وحدد إنشاء.

تعيين سياق الاشتراك

تعيين سياق اشتراك Azure باستخدام az account set الأمر . يمكنك عرض معرفات الاشتراك لجميع الاشتراكات التي لديك حق الوصول إليها عن طريق تشغيل az account list --output table الأمر . تذكر استبدال <subscription-id> بمعرف اشتراكك.

az account set --subscription <subscription-id>

تسجيل موفري الموارد

Microsoft.ContainerService يجب تسجيل موفري الموارد و Microsoft.KubernetesConfiguration على اشتراك Azure الخاص بك. لتسجيل هؤلاء الموفرين، قم بتشغيل الأمر التالي:

az provider register --namespace Microsoft.ContainerService --wait 
az provider register --namespace Microsoft.KubernetesConfiguration --wait 

للتحقق مما إذا كان هؤلاء الموفرون مسجلين بنجاح، قم بتشغيل الأمر التالي:

az provider list --query "[?namespace=='Microsoft.ContainerService'].registrationState"
az provider list --query "[?namespace=='Microsoft.KubernetesConfiguration'].registrationState"

إنشاء مجموعة موارد

مجموعة موارد Azure هي مجموعة منطقية تحتفظ بموارد Azure التي تريد إدارتها كمجموعة. عند إنشاء مجموعة موارد، تتم مطالبتك بتحديد موقع. والموقع هو:

  • موقع تخزين بيانات التعريف لمجموعة الموارد الخاصة بك.
  • حيث سيتم تشغيل الموارد الخاصة بك في Azure في حال لم تقم بتحديد منطقة أخرى في أثناء إنشاء المورد.

إنشاء مجموعة موارد باستخدام az group create الأمر . استبدل <resource-group-name> باسم مجموعة الموارد التي تريد إنشاؤها، واستبدل <location> بمنطقة Azure مثل eastus أو westus2 أو westus3 أو westeurope.

az group create --name <resource-group-name> --location <location>

إذا تم إنشاء مجموعة الموارد بنجاح، فسترى إخراجا مشابها لهذا:

{
  "id": "/subscriptions/<guid>/resourceGroups/myContainerStorageRG",
  "location": "eastus",
  "managedBy": null,
  "name": "myContainerStorageRG",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

اختر خيار تخزين البيانات ونوع الجهاز الظاهري

قبل إنشاء نظام المجموعة الخاص بك، يجب أن تفهم خيار التخزين الخلفي الذي ستختاره في نهاية المطاف لإنشاء تجمع التخزين الخاص بك. وذلك لأن خدمات التخزين المختلفة تعمل على أفضل نحو مع أنواع مختلفة من الأجهزة الظاهرية (VM) كعقد نظام المجموعة، وستنشر نظام المجموعة قبل إنشاء تجمع التخزين.

خيارات تخزين البيانات

  • Azure Elastic SAN: يعد Azure Elastic SAN مناسبا لقواعد البيانات للأغراض العامة، وخدمات البث والمراسلة، وبيئات CD/CI، وأحمال العمل الأخرى من المستوى 1/الطبقة 2. يتم توفير التخزين عند الطلب لكل وحدة تخزين ولقطة وحدة تخزين تم إنشاؤها. يمكن لمجموعات متعددة الوصول إلى SAN واحد في وقت واحد، ولكن يمكن إرفاق وحدات التخزين الثابتة من قبل مستهلك واحد فقط في كل مرة.

  • أقراص Azure: تعد أقراص Azure مناسبة لقواعد البيانات مثل MySQL وMongoDB وPostgreSQL. يتم توفير التخزين لكل حجم تجمع تخزين حاوية مستهدفة والحد الأقصى لحجم وحدة التخزين.

  • القرص المؤقت: يستخدم هذا الخيار محركات أقراص NVMe المحلية أو محرك أقراص SSD المؤقت على عقد AKS وهو حساس لزمن الانتقال للغاية (زمن انتقال منخفض دون مللي ثانية)، لذلك فهو الأفضل للتطبيقات التي لا تحتوي على متطلبات متانة البيانات أو مع دعم النسخ المتماثل للبيانات المضمن مثل Cassandra. تكتشف AKS التخزين المؤقت المتوفر على عقد AKS وتحصل على محركات الأقراص لتوزيع وحدة التخزين.

أنواع الجهاز الظاهري

لاستخدام Azure Container Storage، ستحتاج إلى تجمع عقدة من ثلاثة أجهزة ظاهرية تعمل بنظام Linux على الأقل. يجب أن يكون لكل جهاز ظاهري ما لا يقل عن أربع وحدات معالجة مركزية ظاهرية (vCPUs). سيستهلك Azure Container Storage نواة واحدة لمعالجة الإدخال/الإخراج على كل جهاز ظاهري يتم نشر الملحق إليه.

إذا كنت تنوي استخدام Azure Elastic SAN أو أقراص Azure مع Azure Container Storage، فيجب عليك اختيار نوع جهاز ظاهري للأغراض العامة مثل standard_d4s_v5 لعقد نظام المجموعة.

إذا كنت تنوي استخدام القرص المؤقت، فاختر نوع جهاز ظاهري محسن للتخزين مثل standard_l8s_v3.

هام

يجب اختيار نوع جهاز ظاهري يدعم تخزين Azure المتميز.

إنشاء نظام مجموعة AKS

قم بتشغيل الأمر التالي لإنشاء نظام مجموعة AKS يستند إلى Linux وتمكين هوية مدارة معينة من قبل النظام. إذا كان لديك بالفعل نظام مجموعة AKS تريد استخدامه، يمكنك تخطي هذه الخطوة.

استبدل <resource-group> باسم مجموعة الموارد التي قمت بإنشائها، <cluster-name> واسم المجموعة التي تريد إنشاؤها، ونوع <vm-type> الجهاز الظاهري الذي حددته في الخطوة السابقة. في هذا المثال، سنقوم بإنشاء نظام مجموعة بثلاث عقد. قم بزيادة --node-count إذا كنت تريد مجموعة أكبر.

az aks create -g <resource-group> -n <cluster-name> --node-count 3 -s <vm-type> --generate-ssh-keys

سيستغرق اكتمال عملية النشر بضع دقائق.

إشعار

عند إنشاء نظام مجموعة AKS، تقوم AKS تلقائيا بإنشاء مجموعة موارد ثانية لتخزين موارد AKS. تتبع مجموعة الموارد الثانية هذه اصطلاح MC_YourResourceGroup_YourAKSClusterName_Regionالتسمية . لمزيد من المعلومات، راجع لماذا يتم إنشاء مجموعتين من الموارد باستخدام AKS؟.

الاتصال بنظام المجموعة

للاتصال بنظام المجموعة، استخدم عميل سطر الأوامر Kubernetes، kubectl. يتم تثبيته بالفعل إذا كنت تستخدم Azure Cloud Shell، أو يمكنك تثبيته محليا عن طريق تشغيل az aks install-cli الأمر .

  1. قم بتكوين kubectl للاتصال بالمجموعة باستخدام az aks get-credentials الأمر . ثم استخدم الأمر التالي:

    • حمل بيانات الاعتماد ثم احرص على تكوين Kubernetes CLI بغرض استخدامها.
    • يستخدم ~/.kube/config، الموقع الافتراضي لملف تكوين Kubernetes. يمكنك تحديد موقع مختلف لملف تكوين Kubernetes باستخدام وسيطة --file .
    az aks get-credentials --resource-group <resource-group> --name <cluster-name>
    
  2. تحقق من الاتصال بالمجموعة باستخدام kubectl get الأمر . يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

    kubectl get nodes
    
  3. يوضح مثال الإخراج التالي العقد في نظام المجموعة الخاص بك. تأكد من أن حالة جميع العقد تظهر Ready:

    NAME                                STATUS   ROLES   AGE   VERSION
    aks-nodepool1-34832848-vmss000000   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000001   Ready    agent   80m   v1.25.6
    aks-nodepool1-34832848-vmss000002   Ready    agent   80m   v1.25.6
    

    دون اسم تجمع العقدة. في هذا المثال، سيكون nodepool1.

تسمية تجمع العقدة

بعد ذلك، يجب تحديث تسمية تجمع العقدة لربط تجمع العقدة بمحرك IO الصحيح ل Azure Container Storage.

هام

إذا قمت بإنشاء نظام مجموعة AKS الخاص بك باستخدام مدخل Microsoft Azure: من المحتمل أن يكون للمجموعة تجمع عقدة مستخدم وتجمع عقدة نظام/عامل. قبل أن تتمكن من تثبيت Azure Container Storage، يجب تحديث تسمية تجمع عقدة المستخدم كما هو موضح في هذا القسم. ومع ذلك، إذا كانت مجموعتك تتكون من تجمع عقدة نظام فقط، وهو الحال مع مجموعات الاختبار/التطوير التي تم إنشاؤها باستخدام مدخل Microsoft Azure، فستحتاج أولا إلى إضافة تجمع عقدة مستخدم جديد ثم تسميته. وذلك لأنه عند إنشاء نظام مجموعة AKS باستخدام مدخل Microsoft Azure، تتم إضافة صبغة CriticalAddOnsOnly إلى عقدة العامل/النظام، والتي تحظر تثبيت Azure Container Storage على تجمع عقدة النظام. لا تتم إضافة هذه الصبغة عند إنشاء نظام مجموعة AKS باستخدام Azure CLI.

قم بتشغيل الأمر التالي لتحديث تسمية تجمع العقدة. تذكر استبدال <resource-group> و <cluster-name> بالقيم الخاصة بك، واستبدال <nodepool-name> باسم تجمع العقدة.

az aks nodepool update --resource-group <resource-group> --cluster-name <cluster-name> --name <nodepool-name> --labels acstor.azure.com/io-engine=acstor

يمكنك التحقق من تسمية تجمع العقدة بشكل صحيح عن طريق تسجيل الدخول إلى مدخل Azure والانتقال إلى مجموعة AKS الخاصة بك. انتقل إلى الإعدادات تجمعات العقد، وحدد تجمع العقدة، وضمن Taints والتسميات التي يجب أن تشاهدها Labels: acstor.azure.com/io-engine:acstor> .

تعيين دور المساهم إلى الهوية المدارة ل AKS

Azure Container Service هي خدمة منفصلة عن AKS، لذلك ستحتاج إلى منح أذونات للسماح ل Azure Container Storage بتوفير التخزين للمجموعة الخاصة بك. على وجه التحديد، يجب تعيين دور المساهم Azure RBAC المضمن إلى الهوية المدارة AKS. يمكنك القيام بذلك باستخدام مدخل Microsoft Azure أو Azure CLI. ستحتاج إلى دور المالك لاشتراك Azure الخاص بك للقيام بذلك. إذا لم يكن لديك أذونات كافية، فاطلب من المسؤول تنفيذ هذه الخطوات.

  1. سجل الدخول إلى مدخل Microsoft Azure، وابحث عن خدمات Kubernetes وحددها.

  2. حدد موقع مجموعة AKS الخاصة بك وحددها. حدد الإعدادات> Properties من التنقل الأيمن.

  3. ضمن مجموعة موارد البنية الأساسية، يجب أن تشاهد ارتباطا إلى مجموعة الموارد التي أنشأتها AKS عند إنشاء نظام المجموعة. حددها.

  4. حدد Access control (IAM) من الجزء الأيمن.

  5. حدد إضافة > إضافة تعيين الدور.

  6. ضمن نوع التعيين، حدد أدوار المسؤول المتميز ثم المساهم، ثم حدد التالي. إذا لم يكن لديك دور المالك في الاشتراك، فلن تتمكن من إضافة دور المساهم.

    لقطة شاشة توضح كيفية استخدام مدخل Microsoft Azure لإضافة دور المساهم إلى الهوية المدارة ل AKS.

  7. ضمن تعيين الوصول إلى، حدد الهوية المدارة.

  8. ضمن الأعضاء، انقر فوق + تحديد أعضاء. ستظهر قائمة تحديد الهويات المدارة.

  9. في الهوية المدارة، حدد هوية مدارة معينة للمستخدم.

  10. ضمن تحديد، ابحث عن الهوية المدارة وحددها باسم نظام المجموعة الخاص بك وإلحاقها -agentpool .

  11. انقر فوق تحديد، ثم مراجعة + تعيين.

تثبيت Azure Container Storage

يستخدم التثبيت الأولي أوامر Azure Arc CLI لتنزيل ملحق جديد. استبدال <cluster-name>و<resource-group> بالقيم الخاصة بك. <extension-name> يمكن أن تكون القيمة كما تريد؛ إنها مجرد تسمية للملحق الذي تقوم بتثبيته.

أثناء التثبيت، قد يطلب منك تثبيت k8s-extension. حدد Y.

az k8s-extension create --cluster-type managedClusters --cluster-name <cluster-name> --resource-group <resource-group> --name <extension-name> --extension-type microsoft.azurecontainerstorage --scope cluster --release-train stable --release-namespace acstor

يستغرق التثبيت من 10 إلى 15 دقيقة لإكماله. يمكنك التحقق مما إذا كان التثبيت قد اكتمل بشكل صحيح عن طريق تشغيل الأمر التالي والتأكد من أن provisioningState يقول Succeeded:

az k8s-extension list --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type managedClusters

تهانينا، لقد قمت بتثبيت Azure Container Storage بنجاح. لديك الآن فئات تخزين جديدة يمكنك استخدامها لأحمال عمل Kubernetes.

الخطوات التالية

يمكنك الآن إنشاء تجمع تخزين ومطالبة وحدة تخزين ثابتة، ثم نشر جراب وإرفاق وحدة تخزين ثابتة. اتبع الخطوات الواردة في مقالة الكيفية المناسبة.