البرنامج التعليمي - توسيع نطاق التطبيقات في خدمة 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.
توسيع النطاق يدوياً
عرض 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
قم بتغيير عدد pods يدويا في النشر الأمامي للمتجر باستخدام
kubectl scale
الأمر .kubectl scale --replicas=5 deployment.apps/store-front
تحقق من إنشاء وحدات الجراب الإضافية باستخدام
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
...
التحجيم التلقائي للقرون باستخدام ملف بيان
إنشاء ملف بيان لتعريف سلوك التحجيم التلقائي وحدود الموارد، كما هو موضح في ملف
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
تطبيق ملف بيان التحجيم التلقائي باستخدام
kubectl apply
الأمر .kubectl apply -f aks-store-quickstart-hpa.yaml
تحقق من حالة التحجيم التلقائي باستخدام
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 الخاصة بك.
Azure Kubernetes Service