تكوين التحجيم التلقائي للحاوية الأفقية (HPA) ل Milvus

نظرة عامة

التحجيم الأفقي للقرنة الأفقية التلقائي (HPA) هي ميزة Kubernetes التي تقوم تلقائيًا بضبط عدد القرون في عملية النشر بناءً على استخدام الموارد، مثل وحدة المعالجة المركزية أو الذاكرة. في Milvus، يمكن تطبيق HPA على مكونات عديمة الحالة مثل proxy و queryNode و dataNode و indexNode لتوسيع نطاق المجموعة ديناميكيًا استجابةً لتغيرات عبء العمل.

يشرح هذا الدليل كيفية تكوين HPA لمكونات Milvus باستخدام مشغل Milvus.

المتطلبات الأساسية

  • مجموعة Milvus قيد التشغيل تم نشرها باستخدام مشغل Milvus.
  • الوصول إلى kubectl لإدارة موارد Kubernetes.
  • الإلمام ببنية Milvus و Kubernetes HPA.

تكوين HPA باستخدام مشغل Milvus

لتمكين HPA في مجموعة Milvus التي يديرها مشغل Milvus، اتبع الخطوات التالية:

  1. اضبط النسخ المتماثلة على -1:

    في مورد Milvus المخصص (CR)، قم بتعيين الحقل replicas إلى -1 للمكون الذي تريد توسيع نطاقه باستخدام HPA. هذا يفوض التحكم في القياس إلى HPA بدلاً من المشغل. يمكنك تحرير المورد المخصص مباشرةً أو استخدام الأمر التالي kubectl patch للتبديل بسرعة إلى التحكم في HPA:

    kubectl patch milvus <your-release-name> --type='json' -p='[{"op": "replace", "path": "/spec/components/proxy/replicas", "value": -1}]'
    

    استبدل <your-release-name> باسم مجموعة ميلفوس العنقودية الخاصة بك.

    للتحقق من تطبيق التغيير، قم بالتشغيل:

    kubectl get milvus <your-release-name> -o jsonpath='{.spec.components.proxy.replicas}'
    

    يجب أن يكون الناتج المتوقع هو -1 ، مما يؤكد أن المكون proxy أصبح الآن تحت سيطرة HPA.

    بدلاً من ذلك، يمكنك تعريفه في CR YAML:

    apiVersion: milvus.io/v1beta1
    kind: Milvus
    metadata:
      name: <your-release-name>
    spec:
      mode: cluster
      components:
        proxy:
          replicas: -1
    
  2. تعريف مورد HPA:

    قم بإنشاء مورد HPA لاستهداف نشر المكون المطلوب. فيما يلي مثال للمكون proxy:

    apiVersion: autoscaling/v2
    kind: HorizontalPodAutoscaler
    metadata:
      name: my-release-milvus-proxy-hpa
    spec:
      scaleTargetRef:
        apiVersion: apps/v1
        kind: Deployment
        name: my-release-milvus-proxy
      minReplicas: 2
      maxReplicas: 10
      metrics:
        - type: Resource
          resource:
            name: cpu
            target:
              type: Utilization
              averageUtilization: 60
        - type: Resource
          resource:
            name: memory
            target:
              type: Utilization
              averageUtilization: 60
      behavior:
        scaleUp:
          policies:
            - type: Pods
              value: 1
              periodSeconds: 30
        scaleDown:
          stabilizationWindowSeconds: 300
          policies:
            - type: Pods
              value: 1
              periodSeconds: 60
    

    استبدل my-release في metadata.name و spec.scaleTargetRef.name باسم مجموعة ميلفوس الفعلي الخاص بك (على سبيل المثال، <your-release-name>-milvus-proxy-hpa و <your-release-name>-milvus-proxy).

  3. قم بتطبيق تكوين HPA:

    انشر مورد HPA باستخدام الأمر التالي:

    kubectl apply -f hpa.yaml
    

    للتحقق من إنشاء HPA بنجاح، قم بتشغيله:

    kubectl get hpa
    

    يجب أن ترى مخرجات مشابهة لـ:

    NAME                          REFERENCE                            TARGETS         MINPODS   MAXPODS   REPLICAS   AGE
    my-release-milvus-proxy-hpa   Deployment/my-release-milvus-proxy   <some>/60%      2         10        2          <time>
    

    سيعكس الحقلان NAME و REFERENCE اسم المجموعة (على سبيل المثال، <your-release-name>-milvus-proxy-hpa و Deployment/<your-release-name>-milvus-proxy).

  • scaleTargetRef: يحدد النشر لتوسيع النطاق (على سبيل المثال، my-release-milvus-proxy).
  • minReplicas و maxReplicas: يحدد نطاق القياس (من 2 إلى 10 كبسولات في هذا المثال).
  • metrics: يقوم بتهيئة القياس بناءً على استخدام وحدة المعالجة المركزية والذاكرة، مستهدفًا متوسط استخدام بنسبة 60%.

الخلاصة

يسمح HPA لـ Milvus بالتكيف بكفاءة مع أعباء العمل المختلفة. باستخدام الأمر kubectl patch ، يمكنك تبديل أحد المكونات بسرعة إلى التحكم في HPA دون تحرير CR الكامل يدويًا. لمزيد من التفاصيل، راجع وثائق Kubernetes HPA.

جرب Managed Milvus مجاناً

Zilliz Cloud خالي من المتاعب، ويعمل بواسطة Milvus ويعمل بسرعة 10 أضعاف.

ابدأ
التعليقات

هل كانت هذه الصفحة مفيدة؟