التشغيل السريع: نشر نظام مجموعة تلقائية لخدمة Azure Kubernetes (AKS) (معاينة)

ينطبق على: ✔️ AKS Automatic (معاينة)

توفر خدمة Azure Kubernetes (AKS) التلقائية (معاينة) أسهل تجربة Kubernetes مدارة للمطورين ومهندسي DevOps ومهندسي النظام الأساسي. مثالي للتطبيقات الحديثة الذكاء الاصطناعي، يقوم AKS Automatic بأتمتة إعداد نظام مجموعة AKS وعملياته وتضمين تكوينات أفضل الممارسات. يمكن للمستخدمين من أي مستوى مهارة الاستفادة من الأمان والأداء والاعتمادية من AKS التلقائي لتطبيقاتهم.

في هذا التشغيل السريع، تتعلم ما يلي:

  • نشر نظام مجموعة AKS التلقائي.
  • قم بتشغيل نموذج تطبيق متعدد الحاويات مع مجموعة من الخدمات المصغرة والواجهات الأمامية على الويب التي تحاكي سيناريو البيع بالتجزئة.

قبل البدء

يضمن هذا التشغيل السريع الفهم الأساسي لمفاهيم Kubernetes. لمزيد من المعلومات، راجع مفاهيم Kubernetes الأساسية الخاصة بخدمة Azure Kubernetes Service (AKS).

  • تتطلب هذه المقالة الإصدار 2.57.0 أو أحدث من Azure CLI. إذا كنت تستخدم Azure Cloud Shell، فإن أحدث إصدار مثبت بالفعل هناك.

  • تتطلب aks-preview هذه المقالة إصدار ملحق Azure CLI 3.0.0b13 أو أحدث.

  • إذا كان لديك العديد من اشتراكات Azure، فحدد معرف الاشتراك المناسب الذي يجب فوترة الموارد فيه باستخدام الأمر az account set .

  • تسجيل الميزة AutomaticSKUPreview في اشتراك Azure الخاص بك.

  • يجب أن يكون للهوية التي تنشئ نظام المجموعة أيضا الأذونات التالية على الاشتراك:

    • Microsoft.Authorization/policyAssignments/write
    • Microsoft.Authorization/policyAssignments/read

هام

تأكد من أن اشتراكك يحتوي على حصة نسبية ل 24 vCPUs للجهاز الظاهري Standard_DS4_v2 للمنطقة التي تقوم بنشر نظام المجموعة إليها. يمكنك عرض الحصص النسبية لعائلات أجهزة ظاهرية معينة وإرسال طلبات زيادة الحصة النسبية من خلال مدخل Microsoft Azure. ‎.png

  • لنشر ملف Bicep، تحتاج إلى كتابة الوصول على الموارد التي تقوم بإنشائها والوصول إلى جميع العمليات على Microsoft.Resources/deployments نوع المورد. على سبيل المثال، لإنشاء جهاز ظاهري، تحتاج إلى Microsoft.Compute/virtualMachines/write أذونات و Microsoft.Resources/deployments/* . للحصول على قائمة بالأدوار والأذونات، انظر أدوار Azure المضمنة.

تثبيت ملحق aks-preview Azure CLI

هام

تتوفر ميزات معاينة AKS على أساس الخدمة الذاتية والاشتراك. يتم توفير المعاينات "كما هي" و"كما هي متوفرة"، ويتم استبعادها من اتفاقيات مستوى الخدمة والضمان المحدود. تتم تغطية معاينات AKS جزئيًا بواسطة دعم العملاء على أساس بذل أفضل الجهود. على هذا النحو، هذه الميزات ليست مخصصة للاستخدام الإنتاجي. لمزيد من المعلومات، يُرجي الاطلاع على مقالات الدعم الآتية:

لتثبيت ملحق aks-preview، قم بتشغيل الأمر التالي:

az extension add --name aks-preview

قم بتشغيل الأمر التالي للتحديث إلى أحدث إصدار من الملحق الذي تم إصداره:

az extension update --name aks-preview

تسجيل علامات الميزة

لاستخدام AKS Automatic في المعاينة، يجب تسجيل علامات الميزات للميزات المطلوبة الأخرى. تسجيل العلامات التالية باستخدام الأمر az feature register .

az feature register --namespace Microsoft.ContainerService --name EnableAPIServerVnetIntegrationPreview
az feature register --namespace Microsoft.ContainerService --name NRGLockdownPreview
az feature register --namespace Microsoft.ContainerService --name SafeguardsPreview
az feature register --namespace Microsoft.ContainerService --name NodeAutoProvisioningPreview
az feature register --namespace Microsoft.ContainerService --name DisableSSHPreview
az feature register --namespace Microsoft.ContainerService --name AutomaticSKUPreview

تحقق من حالة التسجيل باستخدام الأمر az feature show . يستغرق الأمر بضع دقائق حتى تظهر الحالة مسجل:

az feature show --namespace Microsoft.ContainerService --name AutomaticSKUPreview

عندما تعكس الحالة Registered، قم بتحديث تسجيل موفر موارد Microsoft.ContainerService باستخدام الأمر az provider register:

az provider register --namespace Microsoft.ContainerService

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

مجموعة موارد Azure هي مجموعة منطقية يمكن من خلالها نشر وإدارة موارد Azure.

في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

أنشئ مجموعة موارد مستخدماً الأمر az group create.

az group create --name myResourceGroup --location eastus

يشبه إخراج العينة التالي الإنشاء الناجح لمجموعة الموارد:

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

إنشاء نظام مجموعة تلقائية ل AKS

لإنشاء نظام مجموعة تلقائية AKS، استخدم الأمر az aks create . ينشئ المثال التالي مجموعة تسمى myAKSAutomaticCluster مع تمكين تكامل Managed Prometheus و Container Insights.

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic

بعد بضع دقائق، الأمر إكمال وإرجاع معلومات منسقة JSON حول الكتلة.

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

لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميلkubectl. kubectl سيكون مثبتاً بالفعل في حال كنت تستخدم Azure Cloud Shell. لتثبيت kubectl محليا، قم بتشغيل الأمر az aks install-cli . يتم تكوين مجموعات AKS التلقائية باستخدام معرف Microsoft Entra للتحكم في الوصول المستند إلى دور Kubernetes (RBAC). عند إنشاء نظام مجموعة باستخدام Azure CLI، يتم تعيين أدوار مضمنة للمستخدم ل Azure Kubernetes Service RBAC Cluster Admin.

قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

تحقق من الاتصال بنظام مجموعتك مستخدماً أمرkubectl get. يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

kubectl get nodes

سيعرض إخراج العينة التالي كيفية مطالبتك بتسجيل الدخول.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

بعد تسجيل الدخول، يظهر إخراج العينة التالي تجمعات العقد المدارة التي تم إنشاؤها في الخطوات السابقة. تأكد من أن حالة العقدة جاهزة.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

إنشاء مجموعة Kubernetes التلقائية

  1. لإنشاء مجموعة AKS التلقائية، ابحث عن خدمات Kubernetes، وحدد مجموعة Kubernetes التلقائية من الخيارات المنسدلة.

    لقطة شاشة لنقطة الإدخال لإنشاء نظام مجموعة AKS تلقائي في مدخل Microsoft Azure.

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

    لقطة شاشة لعلامة التبويب Create - Basics لمجموعة AKS التلقائية في مدخل Microsoft Azure.

    إذا لم يتم استيفاء المتطلبات الأساسية وكان الاشتراك يتطلب تسجيل علامات المعاينة، فسيظهر خطأ ضمن حقل الاشتراك:

    لقطة شاشة للخطأ الذي يظهر عندما لا يحتوي الاشتراك على علامات معاينة مسجلة أثناء إنشاء نظام مجموعة AKS تلقائي في مدخل Microsoft Azure.

  3. في علامة التبويب Monitoring ، اختر تكوينات المراقبة الخاصة بك من Azure Monitor وPrometheus المدار و/أو Managed Grafana و/أو تكوين التنبيهات. أضف العلامات (اختياري)، ثم تابع لإنشاء نظام المجموعة.

    لقطة شاشة لعلامة التبويب Monitoring أثناء إنشاء نظام مجموعة AKS التلقائي في مدخل Microsoft Azure.

  4. ابدأ بتكوين تطبيقك الأول من GitHub وإعداد البنية الأساسية لبرنامج ربط العمليات التجارية للتوزيع التلقائي.

    لقطة شاشة لعلامة التبويب

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

لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميلkubectl. kubectl سيكون مثبتاً بالفعل في حال كنت تستخدم Azure Cloud Shell. لتثبيت kubectl محليا، قم بتشغيل الأمر az aks install-cli . يتم تكوين مجموعات AKS التلقائية باستخدام معرف Microsoft Entra للتحكم في الوصول المستند إلى دور Kubernetes (RBAC). عند إنشاء نظام مجموعة باستخدام مدخل Microsoft Azure، يتم تعيين أدوار مضمنة للمستخدم ل Azure Kubernetes Service RBAC Cluster Admin.

قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.

az aks get-credentials --resource-group myResourceGroup --name myAKSAutomaticCluster

تحقق من الاتصال بنظام مجموعتك مستخدماً أمرkubectl get. يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

kubectl get nodes

سيعرض إخراج العينة التالي كيفية مطالبتك بتسجيل الدخول.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

بعد تسجيل الدخول، يظهر إخراج العينة التالي تجمعات العقد المدارة التي تم إنشاؤها في الخطوات السابقة. تأكد من أن حالة العقدة جاهزة.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

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

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

في المثال التالي، سيتم إنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

أنشئ مجموعة موارد مستخدماً الأمر az group create.

az group create --name myResourceGroup --location eastus

يشبه إخراج العينة التالي الإنشاء الناجح لمجموعة الموارد:

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

مراجعة ملف Bicep

يعرف ملف Bicep هذا نظام مجموعة AKS تلقائيا. أثناء المعاينة، تحتاج إلى تحديد ملف تعريف تجمع عامل nodepool للنظام.

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
		name: 'Automatic'
  		tier: 'Standard'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        count: 3
        vmSize: 'Standard_DS4_v2'
        osType: 'Linux'
        mode: 'System'
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

لمزيد من المعلومات حول المورد المحدد في ملف Bicep، راجع مرجع Microsoft.ContainerService/managedClusters.

نشر ملف Bicep

  1. احفظ ملف Bicep بالاسم main.bicep على الكمبيوتر المحلي الخاص بك.

    هام

    يعين clusterName ملف Bicep المعلمة إلى السلسلة myAKSAutomaticCluster. إذا كنت تريد استخدام اسم نظام مجموعة مختلف، فتأكد من تحديث السلسلة إلى اسم نظام المجموعة المفضل لديك قبل حفظ الملف إلى الكمبيوتر.

  2. انشر ملف Bicep باستخدام Azure CLI.

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    يستغرق إنشاء نظام مجموعة AKS بضع دقائق. انتظر حتى نجاح نشر نظام المجموعة قبل انتقالك إلى الخطوة التالية.

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

لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميلkubectl. kubectl سيكون مثبتاً بالفعل في حال كنت تستخدم Azure Cloud Shell. لتثبيت kubectl محليا، قم بتشغيل الأمر az aks install-cli . يتم تكوين مجموعات AKS التلقائية باستخدام معرف Microsoft Entra للتحكم في الوصول المستند إلى دور Kubernetes (RBAC). عند إنشاء نظام مجموعة باستخدام Bicep، تحتاج إلى تعيين أحد الأدوار المضمنة مثل Azure Kubernetes Service RBAC Reader، Azure Kubernetes Service RBAC WriterAzure Kubernetes Service RBAC Adminأو ، أو Azure Kubernetes Service RBAC Cluster Admin للمستخدمين، محدد النطاق إلى نظام المجموعة أو مساحة اسم معينة. تأكد أيضا من أن المستخدمين لديهم Azure Kubernetes Service Cluster User الدور المضمن ليكونوا قادرين على تشغيل az aks get-credentials، ثم احصل على kubeconfig لنظام مجموعة AKS باستخدام az aks get-credentials الأمر .

قم بتكوين kubectl للاتصال بكتلة Kubernetes مستخدماً الأمر az aks get-credentials. هذا الأمر يقوم بتحميل بيانات الاعتماد وضبط Kubernetes CLI لاستخدامها.

az aks get-credentials --resource-group myResourceGroup --name

تحقق من الاتصال بنظام مجموعتك مستخدماً أمرkubectl get. يعمل هذا الأمر على استرجاع قائمة نظام المجموعة العنقودية.

kubectl get nodes

سيعرض إخراج العينة التالي كيفية مطالبتك بتسجيل الدخول.

To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.

بعد تسجيل الدخول، يظهر إخراج العينة التالي تجمعات العقد المدارة التي تم إنشاؤها في الخطوات السابقة. تأكد من أن حالة العقدة جاهزة.

NAME                                STATUS   ROLES   AGE     VERSION
aks-default-f8vj2                   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

قم بنشر التطبيق

لنشر التطبيق، يمكنك استخدام ملف بيان لإنشاء كافة الكائنات المطلوبة لتشغيل تطبيق AKS Store. يحدد ملف بيانات Kubernetesالحالة المطلوبة لنظام المجموعة، مثل صور الحاوية المراد تشغيلها. يتضمن البيان عمليات نشر وخدمات Kubernetes التالية:

لقطة شاشة لبنية نموذج Azure Store.

  • واجهة المتجر: تطبيق ويب للعملاء لعرض المنتجات وتقديم الطلبات.
  • خدمة المنتج: تعرض معلومات المنتج.
  • خدمة الطلب: يضع الطلبات.
  • Rabbit MQ: قائمة انتظار الرسائل لقائمة انتظار الطلبات.

إشعار

لا نوصي بتشغيل حاويات ذات حالة، مثل Rabbit MQ، دون تخزين مستمر للإنتاج. يتم استخدام هذه هنا للتبسيط، ولكن نوصي باستخدام الخدمات المدارة، مثل Azure Cosmos DB أو ناقل خدمة Azure.

  1. إنشاء مساحة aks-store-demo اسم لنشر موارد Kubernetes فيها.

    kubectl create ns aks-store-demo
    
  2. انشر التطبيق باستخدام الأمر kubectl apply في aks-store-demo مساحة الاسم. ملف YAML الذي يحدد التوزيع موجود على GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    يظهر إخراج العينة التالي عمليات التوزيع والخدمات:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    ingress/store-front created
    

اختبر التطبيق

عند تشغيل التطبيق، تعرض خدمة Kubernetes واجهة التطبيق الأمامية للإنترنت. قد تستغرق هذه العملية بضع دقائق حتى تكتمل.

  1. تحقق من حالة pods المنشورة باستخدام الأمر kubectl get pods . تأكد من أن جميع القرون Running قبل المتابعة. إذا كان هذا هو حمل العمل الأول الذي تقوم بنشره، فقد يستغرق التوفير التلقائي للعقدة بضع دقائق لإنشاء تجمع عقدة لتشغيل pods.

    kubectl get pods -n aks-store-demo
    
  2. تحقق من وجود عنوان IP عام لتطبيق المتجر الأمامي. راقب سير العملية باستخدام أمر kubectl get serviceمع --watchوسيطة.

    kubectl get ingress store-front -n aks-store-demo --watch
    

    يظهر إخراج ADDRESS للخدمة store-front في البداية فارغا:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. بمجرد تغيير ADDRESS من فارغ إلى عنوان IP عام فعلي، استخدم CTRL-C لإيقاف kubectl عملية المراقبة.

    يظهر إخراج العينة التالي عنوان IP عاما صالحا تم تعيينه للخدمة:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. افتح مستعرض ويب إلى عنوان IP الخارجي للدخول الخاص بك لمشاهدة تطبيق Azure Store قيد التنفيذ.

    لقطة شاشة لتطبيق عينة AKS Store.

قم بحذف نظام المجموعة

إذا كنت لا تخطط للانتقال من خلال البرنامج التعليمي AKS، قم بتنظيف الموارد غير الضرورية لتجنب رسوم Azure. قم بتشغيل الأمر az group delete لإزالة مجموعة الموارد وخدمة الحاوية وجميع الموارد ذات الصلة.

az group delete --name myResourceGroup --yes --no-wait

إشعار

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

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

في هذا التشغيل السريع، قمت بنشر مجموعة Kubernetes باستخدام AKS Automatic ثم نشرت تطبيقا بسيطا متعدد الحاويات إليه. هذا التطبيق النموذجي هو لأغراض العرض التوضيحي فقط ولا يمثل جميع أفضل الممارسات لتطبيقات Kubernetes. للحصول على إرشادات حول إنشاء حلول كاملة باستخدام AKS للإنتاج، راجع إرشادات حل AKS.

لمعرفة المزيد حول AKS Automatic، تابع إلى المقدمة.