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 kubectl untuk 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:

  1. Atur Replicas ke -1:

    Di sumber daya khusus (CR) Milvus, atur bidang replicas ke -1 untuk 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 perintah kubectl patch berikut 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 komponen proxy sekarang 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: -1
    
  2. Tentukan 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: 60
    

    Ganti my-release di metadata.name dan spec.scaleTargetRef.name dengan nama cluster Milvus Anda yang sebenarnya (mis., <your-release-name>-milvus-proxy-hpa dan <your-release-name>-milvus-proxy).

  3. Terapkan Konfigurasi HPA:

    Terapkan sumber daya HPA menggunakan perintah berikut:

    kubectl apply -f hpa.yaml
    

    Untuk memverifikasi bahwa HPA telah berhasil dibuat, jalankan:

    kubectl get hpa
    

    Anda 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 NAME dan REFERENCE akan mencerminkan nama cluster Anda (mis., <your-release-name>-milvus-proxy-hpa dan Deployment/<your-release-name>-milvus-proxy).

  • scaleTargetRef: Menentukan penerapan yang akan diskalakan (mis., my-release-milvus-proxy).
  • minReplicas dan maxReplicas: 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.

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?