Menjalankan Milvus dengan Dukungan GPU Menggunakan Helm Chart
Halaman ini menjelaskan cara memulai instance Milvus dengan dukungan GPU menggunakan Helm Chart.
Gambaran Umum
Helm menggunakan format pengemasan yang disebut chart. Chart adalah kumpulan berkas yang mendeskripsikan sekumpulan sumber daya Kubernetes yang saling terkait. Milvus menyediakan serangkaian chart untuk membantu Anda menerapkan dependensi dan komponen Milvus. Milvus Helm Chart adalah solusi yang mem-bootstrap penerapan Milvus pada klaster Kubernetes (K8s) menggunakan pengelola paket Helm.
Prasyarat
Instal StorageClass. Anda dapat memeriksa StorageClass yang telah diinstal sebagai berikut.
$ kubectl get sc NAME PROVISIONER RECLAIMPOLICY VOLUMEBIINDINGMODE ALLOWVOLUMEEXPANSION AGE standard (default) k8s.io/minikube-hostpath Delete Immediate falsePeriksa persyaratan perangkat keras dan perangkat lunak sebelum instalasi.
Jika Anda mengalami masalah saat menarik gambar, hubungi kami di community@zilliz.com dengan detail mengenai masalah tersebut, dan kami akan memberikan dukungan yang diperlukan.
Instal Helm Chart untuk Milvus
Helm adalah pengelola paket K8s yang dapat membantu Anda menerapkan Milvus dengan cepat.
- Tambahkan repositori Helm Milvus.
$ helm repo add milvus https://zilliztech.github.io/milvus-helm/
Repositori Helm Chart Milvus di https://milvus-io.github.io/milvus-helm/ telah diarsipkan, dan Anda dapat memperoleh pembaruan lebih lanjut dari https://zilliztech.github.io/milvus-helm/ sebagai berikut:
helm repo add zilliztech https://zilliztech.github.io/milvus-helm
helm repo update
# upgrade existing helm release
helm upgrade my-release zilliztech/milvus
Repositori yang diarsipkan masih tersedia untuk chart hingga versi 4.0.31. Untuk rilis yang lebih baru, gunakan repositori baru sebagai gantinya.
- Perbarui chart secara lokal.
$ helm repo update
Jalankan Milvus
Setelah Anda menginstal chart Helm, Anda dapat menjalankan Milvus di Kubernetes. Pada bagian ini, kami akan memandu Anda melalui langkah-langkah untuk menjalankan Milvus dengan dukungan GPU.
Anda harus menjalankan Milvus dengan Helm dengan menentukan nama rilis, chart, dan parameter yang ingin Anda ubah. Dalam panduan ini, kami menggunakan my-release sebagai nama rilis. Untuk menggunakan nama rilis yang berbeda, ganti my-release pada perintah berikut dengan nama yang Anda gunakan.
Milvus memungkinkan Anda untuk menetapkan satu atau lebih perangkat GPU ke Milvus.
1. Menetapkan satu perangkat GPU
Milvus dengan dukungan GPU memungkinkan Anda untuk menetapkan satu atau lebih perangkat GPU.
Cluster Milvus
cat <<EOF > custom-values.yaml dataNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" queryNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" EOF$ helm install my-release milvus/milvus -f custom-values.yamlMilvus mandiri
cat <<EOF > custom-values.yaml standalone: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" EOF$ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false -f custom-values.yaml
2. Menetapkan beberapa perangkat GPU
Selain satu perangkat GPU, Anda juga dapat menetapkan beberapa perangkat GPU ke Milvus.
Cluster Milvus
cat <<EOF > custom-values.yaml dataNode: resources: requests: nvidia.com/gpu: "2" limits: nvidia.com/gpu: "2" queryNode: resources: requests: nvidia.com/gpu: "2" limits: nvidia.com/gpu: "2" EOFDalam konfigurasi di atas, terdapat empat CPU yang tersedia, dan setiap dataNode serta queryNode menggunakan dua GPU. Untuk menetapkan GPU yang berbeda ke dataNode dan queryNode, Anda dapat memodifikasi konfigurasi sesuai kebutuhan dengan mengatur `
extraEnv` dalam berkas konfigurasi sebagai berikut:cat <<EOF > custom-values.yaml dataNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" extraEnv: - name: CUDA_VISIBLE_DEVICES value: "0" queryNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" extraEnv: - name: CUDA_VISIBLE_DEVICES value: "1" EOF$ helm install my-release milvus/milvus -f custom-values.yaml- Nama rilis hanya boleh berisi huruf, angka, dan tanda hubung. Titik tidak diperbolehkan dalam nama rilis.
- Baris perintah default menginstal versi kluster Milvus saat menginstal Milvus dengan Helm. Pengaturan tambahan diperlukan saat menginstal Milvus secara mandiri.
- Menurut panduan migrasi API yang sudah tidak didukung lagi dari Kubernetes, versi API policy/v1beta1 dari PodDisruptionBudget tidak lagi didukung mulai dari v1.25. Anda disarankan untuk memigrasikan manifest dan klien API agar menggunakan versi API policy/v1 sebagai gantinya.
Sebagai solusi sementara bagi pengguna yang masih menggunakan versi API policy/v1beta1 dari PodDisruptionBudget pada Kubernetes v1.25 dan versi selanjutnya, Anda dapat menjalankan perintah berikut untuk menginstal Milvus:
helm install my-release milvus/milvus --set pulsar.bookkeeper.pdb.usePolicy=false,pulsar.broker.pdb.usePolicy=false,pulsar.proxy.pdb.usePolicy=false,pulsar.zookeeper.pdb.usePolicy=false - Lihat Milvus Helm Chart dan Helm untuk informasi lebih lanjut.
Milvus standalone
cat <<EOF > custom-values.yaml dataNode: resources: requests: nvidia.com/gpu: "2" limits: nvidia.com/gpu: "2" queryNode: resources: requests: nvidia.com/gpu: "2" limits: nvidia.com/gpu: "2" EOFDalam konfigurasi di atas, terdapat empat CPU yang tersedia, dan setiap dataNode serta queryNode menggunakan dua GPU. Untuk menetapkan GPU yang berbeda ke dataNode dan queryNode, Anda dapat memodifikasi konfigurasi sesuai kebutuhan dengan mengatur `extraEnv` dalam berkas konfigurasi sebagai berikut:
cat <<EOF > custom-values.yaml dataNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" extraEnv: - name: CUDA_VISIBLE_DEVICES value: "0" queryNode: resources: requests: nvidia.com/gpu: "1" limits: nvidia.com/gpu: "1" extraEnv: - name: CUDA_VISIBLE_DEVICES value: "1" EOF$ helm install my-release milvus/milvus --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false -f custom-values.yaml
2. Periksa status Milvus
Jalankan perintah berikut untuk memeriksa status Milvus:
$ kubectl get pods
Setelah Milvus dimulai, kolom " READY " akan menampilkan " 1/1 " untuk semua pod.
Cluster Milvus
NAME READY STATUS RESTARTS AGE my-release-etcd-0 1/1 Running 0 3m24s my-release-etcd-1 1/1 Running 0 3m24s my-release-etcd-2 1/1 Running 0 3m24s my-release-milvus-datanode-698dbf7d77-rjkkq 1/1 Running 0 3m24s my-release-milvus-mixcoord-856d666559-rpj8z 1/1 Running 0 3m24s my-release-milvus-proxy-7f7cf47689-pzltw 1/1 Running 0 3m24s my-release-milvus-querynode-7fb6d5b5f8-92phj 1/1 Running 0 3m24s my-release-milvus-streamingnode-5867bfbcbf-cg9xx 1/1 Running 0 3m24s my-release-minio-0 1/1 Running 0 3m24s my-release-minio-1 1/1 Running 0 3m24s my-release-minio-2 1/1 Running 0 3m24s my-release-minio-3 1/1 Running 0 3m24s my-release-pulsarv3-bookie-0 1/1 Running 0 3m24s my-release-pulsarv3-bookie-1 1/1 Running 0 3m24s my-release-pulsarv3-bookie-2 1/1 Running 0 3m24s my-release-pulsarv3-bookie-init-p8hcq 0/1 Completed 0 3m24s my-release-pulsarv3-broker-0 1/1 Running 0 3m24s my-release-pulsarv3-broker-1 1/1 Running 0 3m24s my-release-pulsarv3-proxy-0 1/1 Running 0 3m24s my-release-pulsarv3-proxy-1 1/1 Running 0 3m24s my-release-pulsarv3-pulsar-init-8kjsj 0/1 Completed 0 3m24s my-release-pulsarv3-recovery-0 1/1 Running 0 3m24s my-release-pulsarv3-zookeeper-0 1/1 Running 0 3m24s my-release-pulsarv3-zookeeper-1 1/1 Running 0 3m24s my-release-pulsarv3-zookeeper-2 1/1 Running 0 3m24sMilvus mandiri
NAME READY STATUS RESTARTS AGE my-release-etcd-0 1/1 Running 0 30s my-release-milvus-standalone-54c4f88cb9-f84pf 1/1 Running 0 30s my-release-minio-5564fbbddc-mz7f5 1/1 Running 0 30s
3. Alihkan port lokal ke Milvus
Periksa port lokal mana yang sedang didengarkan oleh server Milvus. Ganti nama pod dengan nama pod Anda sendiri.
$ kubectl get pod my-release-milvus-proxy-6bd7f5587-ds2xv --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530
Kemudian, jalankan perintah berikut untuk meneruskan port lokal ke port yang digunakan Milvus.
$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530
Secara opsional, Anda dapat menggunakan :19530 alih-alih 27017:19530 pada perintah di atas agar kubectl mengalokasikan port lokal untuk Anda sehingga Anda tidak perlu mengelola konflik port.
Secara default, pengalihan port kubectl hanya mendengarkan di localhost. Gunakan bendera address jika Anda ingin Milvus mendengarkan di alamat IP yang dipilih atau semua alamat IP. Perintah berikut membuat pengalihan port mendengarkan di semua alamat IP pada mesin host.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530
Forwarding from 0.0.0.0:27017 -> 19530
Sekarang, Anda dapat terhubung ke Milvus menggunakan port yang diteruskan.
Mengakses Milvus WebUI
Milvus dilengkapi dengan alat GUI bawaan bernama Milvus WebUI yang dapat Anda akses melalui browser. Milvus WebUI meningkatkan kemampuan pemantauan sistem dengan antarmuka yang sederhana dan intuitif. Anda dapat menggunakan Milvus WebUI untuk memantau statistik dan metrik komponen serta dependensi Milvus, memeriksa detail database dan koleksi, serta menampilkan konfigurasi Milvus secara terperinci. Untuk detail mengenai Milvus WebUI, lihat Milvus WebUI
Untuk mengaktifkan akses ke Milvus WebUI, Anda perlu melakukan port forwarding pod proxy ke port lokal.
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27018:9091
Forwarding from 0.0.0.0:27018 -> 9091
Sekarang, Anda dapat mengakses Milvus Web UI di http://localhost:27018.
Hapus Instalasi Milvus
Jalankan perintah berikut untuk menghapus instalasi Milvus.
$ helm uninstall my-release
Storage V3 dinonaktifkan secara default. Aktifkan fitur ini sebelum menggunakan fitur-fitur yang bergantung padanya. Untuk persyaratan dan pertimbangan kompatibilitas, lihat Storage V3.
Langkah selanjutnya
Setelah menginstal Milvus, Anda dapat:
Lihat Panduan Cepat untuk mengetahui apa saja yang dapat dilakukan Milvus.
Pelajari operasi dasar Milvus:
Terapkan kluster Milvus Anda di cloud:
Jelajahi Milvus WebUI, antarmuka web yang intuitif untuk pemantauan dan pengelolaan Milvus.
Jelajahi Milvus Backup, alat sumber terbuka untuk pencadangan data Milvus.
Jelajahi Birdwatcher, alat sumber terbuka untuk men-debug Milvus dan pembaruan konfigurasi dinamis.
Jelajahi Attu, alat GUI sumber terbuka untuk pengelolaan Milvus yang intuitif.