تكوين التحجيم التلقائي للحاوية الأفقية (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:
في مورد 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تعريف مورد 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).قم بتطبيق تكوين 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.