البرنامج التعليمي - توسيع نطاق التطبيقات في خدمة 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.

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

  1. عرض 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
    
  2. قم بتغيير عدد pods يدويا في النشر الأمامي للمتجر باستخدام kubectl scale الأمر .

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

    kubectl get pods
    

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

                                      READY     STATUS    RESTARTS   AGE
    store-front-2606967446-2q2qzc     1/1       Running   0          15m
    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-store-quickstart التوزيع، تطلب الحاوية الأمامية 1m CPU بحد أقصى 1000m CPU.

يتم تعريف طلبات الموارد وحدودها لكل حاوية، كما هو موضح في المثال المكثف التالي 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 مرة أخرى لرؤية الأجربة غير الضرورية التي يتم إزالتها.

إشعار

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

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

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

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

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

    az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
    

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

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

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

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

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

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

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