Mengonfigurasi Horizontal Pod Autoscaling (HPA) untuk Milvus
Gambaran Umum
Horizontal Pod Autoscaling (HPA) adalah fitur Kubernetes yang secara otomatis menyesuaikan jumlah Pod dalam penerapan berdasarkan pemanfaatan sumber daya, seperti CPU atau memori. Di Milvus, HPA dapat diterapkan pada komponen tanpa nama seperti proxy, queryNode, dataNode, dan indexNode untuk menskalakan klaster secara dinamis sebagai respons terhadap perubahan beban kerja.
Panduan ini menjelaskan cara mengonfigurasi HPA untuk komponen Milvus menggunakan Milvus Operator.
Prasyarat
- Cluster Milvus yang sedang berjalan dan digunakan dengan Milvus Operator.
- Akses ke
kubectluntuk mengelola sumber daya Kubernetes. - Pemahaman tentang arsitektur Milvus dan Kubernetes HPA.
Mengonfigurasi HPA dengan Operator Milvus
Untuk mengaktifkan HPA dalam cluster Milvus yang dikelola oleh Operator Milvus, ikuti langkah-langkah berikut:
Atur Replicas ke -1:
Di sumber daya khusus (CR) Milvus, atur bidang
replicaske-1untuk komponen yang ingin Anda skala dengan HPA. Hal ini akan mendelegasikan kontrol penskalaan ke HPA, bukan ke operator. Anda dapat mengedit CR secara langsung atau menggunakan perintahkubectl patchberikut ini untuk beralih ke kontrol HPA dengan cepat:kubectl patch milvus <your-release-name> --type='json' -p='[{"op": "replace", "path": "/spec/components/proxy/replicas", "value": -1}]'Ganti
<your-release-name>dengan nama cluster Milvus Anda.Untuk memverifikasi bahwa perubahan telah diterapkan, jalankan:
kubectl get milvus <your-release-name> -o jsonpath='{.spec.components.proxy.replicas}'Hasil yang diharapkan adalah
-1, yang mengonfirmasi bahwa komponenproxysekarang berada di bawah kendali HPA.Atau, Anda dapat mendefinisikannya di CR YAML:
apiVersion: milvus.io/v1beta1 kind: Milvus metadata: name: <your-release-name> spec: mode: cluster components: proxy: replicas: -1Tentukan Sumber Daya HPA:
Buat sumber daya HPA untuk menargetkan penerapan komponen yang diinginkan. Di bawah ini adalah contoh untuk komponen
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: 60Ganti
my-releasedimetadata.namedanspec.scaleTargetRef.namedengan nama cluster Milvus Anda yang sebenarnya (mis.,<your-release-name>-milvus-proxy-hpadan<your-release-name>-milvus-proxy).Terapkan Konfigurasi HPA:
Terapkan sumber daya HPA menggunakan perintah berikut:
kubectl apply -f hpa.yamlUntuk memverifikasi bahwa HPA telah berhasil dibuat, jalankan:
kubectl get hpaAnda akan melihat keluaran yang mirip dengan:
NAME REFERENCE TARGETS MINPODS MAXPODS REPLICAS AGE my-release-milvus-proxy-hpa Deployment/my-release-milvus-proxy <some>/60% 2 10 2 <time>Kolom
NAMEdanREFERENCEakan mencerminkan nama cluster Anda (mis.,<your-release-name>-milvus-proxy-hpadanDeployment/<your-release-name>-milvus-proxy).
scaleTargetRef: Menentukan penerapan yang akan diskalakan (mis.,my-release-milvus-proxy).minReplicasdanmaxReplicas: Mengatur rentang penskalaan (2 hingga 10 Pod dalam contoh ini).metrics: Mengonfigurasi penskalaan berdasarkan pemanfaatan CPU dan memori, dengan target penggunaan rata-rata 60%.
Kesimpulan
HPA memungkinkan Milvus beradaptasi secara efisien dengan berbagai beban kerja. Dengan menggunakan perintah kubectl patch, Anda dapat dengan cepat mengalihkan komponen ke kontrol HPA tanpa mengedit CR secara manual. Untuk lebih jelasnya, lihat dokumentasi HPA Kubernetes.