البرنامج التعليمي - توسيع نطاق التطبيقات في خدمة Azure Kubernetes (AKS)

إذا اتبعت البرامج التعليمية السابقة، فلديك مجموعة Kubernetes عاملة وAzure Store Front app.

في هذا البرنامج التعليمي، يمكنك توسيع نطاق الجرابات في التطبيق، وتجربة التحجيم التلقائي للحجيرة، وتوسيع نطاق عدد عقد Azure VM لتغيير سعة نظام المجموعة لاستضافة أحمال العمل. ‏‫ستتعلم كيفية:

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

قبل البدء

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

هذا الدرس يغير عدد الوحدات والعقد ويمكن أن يزيد من تكاليف الحوسبة. استخدم هوية ذات إذن لتوسيع أحمال العمل ومجموعات العقد، مثل مساهم أو مالك لمجموعة الموارد.

يتطلب هذا البرنامج التعليمي الإصدار 2.34.1 من Azure CLI أو أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

توسيع النطاق يدوياً

سطح مكتب AKS

  1. قم بتعديل تكوين التحجيم لخدمة الطلب باختيار التكبير>اختيار النشر: أمر الخدمة>تعديل تكوين>عدد النسخ المقلدة: 5. لقطة شاشة تظهر تعديل تكوين مقياس خدمة الطلب.

  2. تحقق من اكتمال تحديث النشر قبل المتابعة.

  3. عرض pods في نظام المجموعة باستخدام kubectl get الأمر .

    kubectl get pods
    

    يظهر إخراج المثال التالي الحجيرات التي تقوم بتشغيل تطبيق Azure Store Front:

    NAME                               READY     STATUS     RESTARTS   AGE
    order-service-848767080-tf34m      1/1       Running    0          31m
    product-service-4019737227-2q2qz   1/1       Running    0          31m
    store-front-2606967446-2q2qz       1/1       Running    0          31m
    
  4. قم بتغيير عدد الجرابات يدويا في النشر على واجهة المتجر باستخدام الأمر kubectl scale .

    kubectl scale --replicas=5 deployment.apps/store-front
    
  5. تحقق من إنشاء وحدات الجراب الإضافية باستخدام kubectl get pods الأمر .

    kubectl get pods --selector app=store-front
    

    يظهر إخراج المثال التالي الحجيرات الإضافية التي تقوم بتشغيل تطبيق Azure Store Front:

    NAME                              READY     STATUS    RESTARTS   AGE
    store-front-3309479140-2hfh0      1/1       Running   0          3m
    store-front-3309479140-bzt05      1/1       Running   0          3m
    store-front-3309479140-fvcvm      1/1       Running   0          3m
    store-front-3309479140-hrbf2      1/1       Running   0          15m
    store-front-3309479140-qphz8      1/1       Running   0          3m
    

كبسولات التحجيم التلقائي

سطح مكتب AKS

  1. داخل Project، اختر زر >Kubernetes YAML. اختر مصدر التطبيق، Kubernetes YAML

  2. انسخ والصق ملف المقياس التلقائي لجهاز YAML وحدود الموارد.

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: store-front-hpa
    spec:
      maxReplicas: 10 # define max replica count
      minReplicas: 3  # define min replica count
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: store-front
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
    
  3. اختر التالي>إغلاق>. لقطة شاشة تظهر اللصق في تكوين YAML.

  4. اختر التكبير>واختر النشر: واجهة المتجر. يمكنك أن ترى أن وضع التحجيم الآن مضبوط على HPA وحدود النسخ واستخدام المعالج / الهدف حسب الإعدادات. لقطة شاشة تظهر نظرة عامة على مقياس سطح مكتب AKS تظهر وضع HPA لنشر واجهة المتجر.

  5. تحقق من تفعيل وضع HPA وأن حدود النسخ تتطابق مع قيم البيان.

سطر الأوامر

لاستخدام التحجيم التلقائي للحجيرة الأفقية، يجب أن تحتوي جميع الحاويات على طلبات وحدود وحدة المعالجة المركزية المحددة، ويجب أن تحتوي القرون على طلبات محددة. في النشر aks-store-quickstart ، تطلب حاوية الواجهة الأمامية وحدة معالجة مركزية بطول 1 متر بحد أقصى 1000 مليون وحدة معالجة مركزية.

يتم تعريف طلبات الموارد وحدودها لكل حاوية، كما هو موضح في المثال المكثف التالي YAML:

...
  containers:
  - name: store-front
    image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
    ports:
    - containerPort: 8080
      name: store-front
...
    resources:
      requests:
        cpu: 1m
...
      limits:
        cpu: 1000m
...

التحجيم التلقائي للقرون باستخدام ملف بيان

  1. إنشاء ملف بيان لتعريف سلوك التحجيم التلقائي وحدود الموارد، كما هو موضح في ملف aks-store-quickstart-hpa.yamlبيان المثال المكثف التالي:

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: store-front-hpa
    spec:
      maxReplicas: 10 # define max replica count
      minReplicas: 3  # define min replica count
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: store-front
      metrics:
      - type: Resource
        resource:
          name: cpu
          target:
            type: Utilization
            averageUtilization: 50
    
  2. تطبيق ملف بيان التحجيم التلقائي باستخدام kubectl apply الأمر .

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. تحقق من حالة التحجيم التلقائي باستخدام kubectl get hpa الأمر .

    kubectl get hpa
    

    بعد بضع دقائق، مع الحد الأدنى من الحمل على تطبيق Azure Store Front، ينخفض عدد النسخ المتماثلة للجراب إلى ثلاث نسخ متماثلة. يمكنك استخدام kubectl get pods الأمر مرة أخرى لرؤية القرون غير الضرورية التي تتم إزالتها.

    تابع عندما تظهر الأعمدة TARGETS و REPLICAS سلوك التكبير التلقائي المتوقع ل store-front-hpa.

Note

يمكنك تمكين الوظيفة الإضافية AKS المستندة إلى الأحداث المستندة إلى Kubernetes (KEDA) AKS إلى مجموعتك لدفع التحجيم استنادا إلى عدد الأحداث التي تحتاج إلى المعالجة. لمزيد من المعلومات، راجع تمكين التحجيم التلقائي للتطبيق المبسط باستخدام الوظيفة الإضافية للتحجيم التلقائي (KEDA) المستندة إلى الأحداث (معاينة) في Kubernetes.

قياس عُقد AKS يدوياً

Note

إذا أنشأت عنقود AKS التلقائي، هذه الخطوات لا تنطبق لأن العنقود تقوم بالتكبير التلقائي للعقد.

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

المثال التالي يزيد عدد العقد إلى خمس في عنقود Kubernetes المسمى myAKSCluster. يستغرق الأمر بضع دقائق حتى يكتمل.

  • قم بتوسيع نطاق عقد نظام المجموعة باستخدام az aks scale الأمر .

    بمجرد أن يتدرج العنقود بنجاح، يكون مخرجاك مشابها للمخرج المثال التالي:

    az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster --query "[].{name:name,count:count}" -o table
    
    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 5
    

    بمجرد تحجيم نظام المجموعة بنجاح، سيكون الإخراج مشابها لإخراج المثال التالي:

    "aadProfile": null,
    "addonProfiles": null,
    "agentPoolProfiles": [
      {
        ...
        "count": 5,
        "mode": "System",
        "name": "nodepool1",
        "osDiskSizeGb": 128,
        "osDiskType": "Managed",
        "osType": "Linux",
        "ports": null,
        "vmSize": "Standard_DS2_v2",
        "vnetSubnetId": null
        ...
      }
      ...
    ]
    

يمكنك أيضا التحجيم التلقائي للعقد في نظام المجموعة الخاص بك. لمزيد من المعلومات، راجع استخدام مقياس المجموعة التلقائي مع تجمعات العقد.

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

في هذا البرنامج التعليمي، استخدمت ميزات قياس مختلفة في مجموعة Kubernetes الخاصة بك. لقد تعرفت على كيفية:

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

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

في البرنامج التعليمي التالي، ستتعلم كيفية ترقية Kubernetes في مجموعة AKS الخاصة بك.