فهم تكوينات الموسع

مكتمل

v2 يسمح لك إصدار HPA API بضبط بعض جوانب سلوكه باستخدام مفتاح جديد في ملف YAML يسمى spec.behavior. يقبل مفتاحين آخرين: scaleDown و scaleUp، اللذين يحددان كيفية تصرف HPA عند تقليص الحجم وعند التحجيم.

يسمح بالقيم التالية لكل من هذه المفاتيح:

المفتاح النوع ‏‏الوصف
stabilizationWindowSeconds العدد الصحيح الفترة التي يبحث فيها HPA عن مقاييس لحساب الحالة المطلوبة. القيمة الافتراضية لمدة scaleDown خمس دقائق ولا توجد نافذة استقرار ل scaleUp.
selectPolicy سلسلة النوع المحدد من النهج لاستخدامه، يمكن أن تكون Minهذه القيمة أو Maxأو .Disabled
النُهج مصفوفة HPAScalingPolicy صفيف من النهج الممكن تطبيقها.

يُحدد الكائن HPAScalingPolicy ككائن بالمفاتيح التالية:

المفتاح النوع ‏‏الوصف
النوع سلسلة نوع النهج، يمكن أن يكون Percent أو Pods.
قيمة العدد الصحيح قيمة النهج.
periodSeconds العدد الصحيح مقدار الوقت المطلوب قبل تطبيق هذا النهج مرة أخرى.

تسمح لك نهج التحجيم بضبط طريقة عمل التحجيم. على سبيل المثال، يمكنك تعطيل عملية تقليص الحجم بالكامل عن طريق تعيين نهج scaleDown إلى Disabled، كما هو موضح في المثال التالي:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: contoso-website
  namespace: hpa-contoso
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: contoso-website
  minReplicas: 1
  maxReplicas: 10
  behavior:
    scaleDown:
      selectPolicy: Disabled
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 20
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 50

كما يمكنك تعيين عدد النسخ المتماثلة لتوسيع نطاقها في كل مرة عن طريق تحديد نهج scaleUp، مثل هذا:

apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: contoso-website
  namespace: hpa-contoso
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: contoso-website
  minReplicas: 1
  maxReplicas: 10
  behavior:
    scaleUp:
      selectPolicy: Max
      stabilizationWindowSeconds: 120
      policies:
        - type: Percent
          value: 30
          periodSeconds: 60
        - type: Pods
          value: 7
          periodSeconds: 90
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 20
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 50

في هذا البيان، أنت تخبر HPA بالبحث عن آخر 120 ثانية من المقاييس لحساب الحالة المطلوبة والحصول على أعلى هذه القيم. بمجرد ذلك، فإنه يحسب 30٪ من الحجيرات الموجودة، ويقرب هذا الرقم لأعلى، ويقارنه بالقيمة الثابتة لسبعة pods. selectPolicy نظرا لتعيين إلى Max، فإنه يأخذ العدد الأكبر من هذين الرقمين ويطبق هذا النهج، ثم ينتظر periodSeconds قبل تطبيق أي نهج مرة أخرى.

على سبيل المثال، لنفترض أن موقع الويب يعمل ب 18 حاوية، ثم يواجه طفرة تستمر لمدة 120 ثانية تقريبا. يتم حساب الحالة المطلوبة عن طريق حساب 30٪ من الحجيرات الحالية قيد التشغيل، وهي 5.4 (مقربة إلى 6). تتم مقارنة هذه القيمة بعدد pods في النهج الثاني، وهو 7. selectPolicy نظرا لتعيين المفتاح إلى Max، فإنه يستخدم القيمة الأكبر لهذين القيمتين. ثم، يتم تغيير حجم HPA بمقدار 7 وينتظر 90 ثانية قبل التحجيم مرة أخرى. إذا استمر الارتفاع الحاد حتى 25 حاوية، يتم إجراء الحساب مرة أخرى. 30٪ من 25 جراب هو 7.5 (تقريب إلى 8)، وهو أكبر من 7. الآن، ينشئ HPA ثماني حجيرات جديدة وينتظر لمدة 60 ثانية قبل التحجيم مرة أخرى.

‏‫اختبر معلوماتك

1.

ما هي نافذة الاستقرار؟

2.

ما قيم selectPolicies الثلاث؟

3.

متى ينبغي تحديد سلوك لمورد HPA الخاص بك؟