Menjalankan Milvus di Kubernetes dengan Helm
Halaman ini menjelaskan cara memulai sebuah instance Milvus di Kubernetes menggunakan chart Helm Milvus.
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 melakukan deployment terhadap dependensi dan komponen Milvus.
Persyaratan
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.
Sebelum menginstal Milvus, disarankan untuk menggunakan Milvus Sizing Tool guna memperkirakan persyaratan perangkat keras berdasarkan ukuran data Anda. Hal ini membantu memastikan kinerja optimal dan alokasi sumber daya yang tepat untuk instalasi Milvus Anda.
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 Milvus Helm Chart
Sebelum menginstal Milvus Helm Charts, Anda perlu menambahkan repositori Milvus Helm.
helm repo add zilliztech https://zilliztech.github.io/milvus-helm/
Repositori Milvus Helm Charts di https://github.com/milvus-io/milvus-helm telah diarsipkan. Kami sekarang menggunakan repositori baru di https://github.com/zilliztech/milvus-helm. Repositori yang diarsipkan masih tersedia untuk chart hingga versi 4.0.31, tetapi gunakan repositori baru untuk rilis selanjutnya.
Kemudian, unduh Milvus Helm Charts dari repositori tersebut sebagai berikut:
$ helm repo update
Anda selalu dapat menjalankan perintah ini untuk mengambil Milvus Helm charts terbaru.
Instalasi daring
1. Deploy kluster Milvus
Setelah Anda menginstal chart Helm, Anda dapat menjalankan Milvus di Kubernetes. Bagian ini memandu Anda dalam menyebarkan kluster Milvus.
Butuh penyebaran mandiri?
Jika Anda lebih memilih untuk menyebarkan Milvus dalam mode mandiri (satu node) untuk pengembangan atau pengujian, gunakan perintah ini:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.3 \
--set cluster.enabled=false \
--set pulsarv3.enabled=false \
--set standalone.messageQueue=woodpecker \
--set woodpecker.enabled=true \
--set streaming.enabled=true
Catatan: Mode mandiri menggunakan Woodpecker sebagai antrian pesan default dan mengaktifkan komponen Streaming Node. Pemasangan mandiri menjalankan Woodpecker yang tertanam dalam pod Milvus; layanan Woodpecker khusus (pod terpisah) hanya digunakan untuk pemasangan terdistribusi/kluster. Untuk detailnya, lihat Ikhtisar Arsitektur dan Woodpecker.
Deploy kluster Milvus:
Untuk mode layanan Woodpecker, kami merekomendasikan penggunaan Milvus 3.0.3 atau yang lebih baru dengan Woodpecker v0.1.46 atau yang lebih baru.
Perintah berikut ini menerapkan kluster Milvus dengan pengaturan yang dioptimalkan untuk v3.0.3, menggunakan Woodpecker sebagai antrian pesan yang direkomendasikan:
helm install my-release zilliztech/milvus \
--set image.all.tag=v3.0.3 \
--set woodpecker.enabled=true \
--set woodpecker.image.tag=v0.1.46 \
--set streaming.enabled=true \
--set streaming.woodpecker.embedded=false \
--set indexNode.enabled=false
Fungsi perintah ini:
- Menggunakan Woodpecker sebagai antrian pesan (direkomendasikan untuk mengurangi beban pemeliharaan)
- Menjalankan Woodpecker sebagai layanan khusus (StatefulSet terpisah), bukan tertanam di dalam node streaming
- Mengaktifkan komponen Streaming Node baru untuk meningkatkan kinerja
- Menonaktifkan Index Node versi lama (fungsionalitasnya kini ditangani oleh Data Node)
Perubahan Arsitektur di Milvus 2.6.x:
- Antrian Pesan: Woodpecker kini direkomendasikan (mengurangi pemeliharaan infrastruktur dibandingkan dengan Pulsar)
- Komponen Baru: Streaming Node diperkenalkan dan diaktifkan secara default
- Komponen yang Digabungkan: Index Node dan Data Node digabungkan menjadi satu Data Node
Untuk detail arsitektur lengkap, lihat Ikhtisar Arsitektur.
Antrian pesan alternatif: Untuk melakukan deployment dengan Pulsar, Kafka, atau RocksMQ sebagai pengganti Woodpecker, lihat Dependensi opsional.
Langkah selanjutnya: Perintah di atas menerapkan Milvus dengan konfigurasi yang direkomendasikan. Untuk penggunaan produksi:
- Gunakan Alat Penentuan Ukuran Milvus untuk mengoptimalkan pengaturan berdasarkan ukuran data Anda
- Tinjau Daftar Periksa Konfigurasi Sistem Milvus untuk opsi konfigurasi lanjutan
Catatan penting:
- Penamaan rilis: Gunakan hanya huruf, angka, dan tanda hubung (titik tidak diperbolehkan)
Untuk informasi lebih lanjut, lihat Milvus Helm Chart dan dokumentasi Helm.
2. Periksa status kluster Milvus
Pastikan penyebaran Anda berhasil dengan memeriksa status pod:
kubectl get pods
Tunggu hingga semua pod menampilkan status “Running”. Dengan konfigurasi v3.0.3, Anda seharusnya melihat pod yang mirip dengan:
NAME READY STATUS RESTARTS AGE
my-release-etcd-0 1/1 Running 0 3m23s
my-release-etcd-1 1/1 Running 0 3m23s
my-release-etcd-2 1/1 Running 0 3m23s
my-release-milvus-datanode-68cb87dcbd-4khpm 1/1 Running 0 3m23s
my-release-milvus-mixcoord-7fb9488465-dmbbj 1/1 Running 0 3m23s
my-release-milvus-proxy-6bd7f5587-ds2xv 1/1 Running 0 3m24s
my-release-milvus-querynode-5cd8fff495-k6gtg 1/1 Running 0 3m24s
my-release-milvus-streamingnode-7b8cfc769c-mqmsm 1/1 Running 0 3m24s
my-release-milvus-woodpecker-0 1/1 Running 0 3m24s
my-release-milvus-woodpecker-1 1/1 Running 0 3m24s
my-release-milvus-woodpecker-2 1/1 Running 0 3m24s
my-release-milvus-woodpecker-3 1/1 Running 0 3m24s
my-release-minio-0 1/1 Running 0 3m23s
my-release-minio-1 1/1 Running 0 3m23s
my-release-minio-2 1/1 Running 0 3m23s
my-release-minio-3 1/1 Running 0 3m23s
Komponen utama yang perlu diverifikasi:
- Komponen Milvus:
mixcoord,datanode,querynode,proxy,streamingnode - Ketergantungan:
etcd(metadata),minio(penyimpanan objek),woodpecker(antrian pesan)
Dengan streaming.woodpecker.embedded=false, Woodpecker berjalan sebagai StatefulSet khusus (my-release-milvus-woodpecker, 4 replika secara default — kuorum 3 node ditambah satu cadangan untuk toleransi kesalahan; jangan atur woodpecker.replicaCount di bawah 3) yang didukung oleh layanan headless, menggunakan MinIO sebagai backend penyimpanannya — sehingga klaster memiliki kumpulan pod woodpecker terpisah, berbeda dari node streaming.
Anda juga dapat mengakses Milvus WebUI di http://127.0.0.1:9091/webui/ setelah pengalihan port disiapkan (lihat langkah berikutnya). Untuk detailnya, lihat Milvus WebUI.
3. Terhubung ke Milvus
Untuk terhubung ke kluster Milvus Anda dari luar Kubernetes, Anda perlu mengatur pengalihan port.
Konfigurasikan port forwarding:
kubectl port-forward service/my-release-milvus 27017:19530
Perintah ini meneruskan port lokal Anda 27017 ke port Milvus 19530. Anda akan melihat:
Forwarding from 127.0.0.1:27017 -> 19530
Rincian koneksi:
- Koneksi lokal:
localhost:27017 - Port default Milvus:
19530
Opsi untuk penerusan port:
- Penetapan port lokal otomatis: Gunakan
:19530alih-alih27017:19530agar kubectl memilih port yang tersedia - Mendengarkan di semua antarmuka: Tambahkan
--address 0.0.0.0untuk mengizinkan koneksi dari mesin lain:kubectl port-forward --address 0.0.0.0 service/my-release-milvus 27017:19530 - Penerapan mandiri: Jika menggunakan mode mandiri, nama layanan tetap sama
Biarkan terminal ini tetap terbuka saat menggunakan Milvus. Anda kini dapat terhubung ke Milvus menggunakan SDK Milvus apa pun di localhost:27017.
(Opsional) Perbarui konfigurasi Milvus
Anda dapat memperbarui konfigurasi kluster Milvus Anda dengan mengedit berkas values.yaml dan menerapkannya kembali.
Buat berkas
values.yamldengan konfigurasi yang diinginkan.Berikut ini mengasumsikan bahwa Anda ingin mengaktifkan
proxy.http.extraConfigFiles: user.yaml: |+ proxy: http: enabled: trueUntuk item konfigurasi yang berlaku, lihat Konfigurasi Sistem.
Terapkan berkas `
values.yaml`.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
Periksa konfigurasi yang telah diperbarui.
helm get values my-releaseHasilnya seharusnya menampilkan konfigurasi yang telah diperbarui.
Akses 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 daftar konfigurasi Milvus secara terperinci. Untuk detail tentang 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.
Instalasi offline
Jika Anda berada di lingkungan dengan pembatasan jaringan, ikuti prosedur di bagian ini untuk memulai kluster Milvus.
1. Dapatkan manifest Milvus
Jalankan perintah berikut untuk mendapatkan manifest Milvus.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
Perintah di atas merender templat bagan untuk klaster Milvus dan menyimpan hasilnya ke berkas manifest bernama milvus_manifest.yaml. Dengan menggunakan manifest ini, Anda dapat menginstal klaster Milvus beserta komponen dan ketergantungannya dalam pod terpisah.
- Untuk menginstal instance Milvus dalam mode mandiri di mana semua komponen Milvus terdapat dalam satu pod, Anda harus menjalankan perintah `
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false --set standalone.messageQueue=woodpecker --set woodpecker.enabled=true --set streaming.enabled=true zilliztech/milvus > milvus_manifest.yaml` sebagai gantinya untuk menghasilkan templat chart untuk instance Milvus dalam mode mandiri. - Untuk mengubah konfigurasi Milvus, unduh
value.yamltemplat tersebut, masukkan pengaturan yang Anda inginkan ke dalamnya, lalu gunakanhelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yamluntuk merender manifest sesuai dengan pengaturan tersebut.
2. Unduh skrip pengunduhan gambar
Skrip pengunduhan gambar dikembangkan dalam Python. Anda harus mengunduh skrip tersebut beserta dependensinya dalam berkas requirement.txt.
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/requirements.txt
$ wget https://raw.githubusercontent.com/milvus-io/milvus/master/deployments/offline/save_image.py
3. Mengunduh dan menyimpan gambar
Jalankan perintah berikut untuk mengunduh dan menyimpan gambar yang diperlukan.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
Gambar-gambar tersebut akan diunduh ke dalam subfolder bernama images di direktori saat ini.
4. Memuat gambar
Anda sekarang dapat memuat gambar ke host di lingkungan dengan pembatasan jaringan sebagai berikut:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. Deploy Milvus
$ kubectl apply -f milvus_manifest.yaml
Sampai saat ini, Anda dapat mengikuti langkah 2 dan 3 dari panduan instalasi online untuk memeriksa status kluster dan meneruskan port lokal ke Milvus.
Memperbarui kluster Milvus yang sedang berjalan
Jalankan perintah berikut untuk memperbarui kluster Milvus yang sedang berjalan ke versi terbaru:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Hapus instalasi Milvus
Jalankan perintah berikut untuk menghapus instalasi Milvus.
$ helm uninstall my-release
Ketergantungan opsional
Deploy ini menggunakan Woodpecker sebagai antrian pesan, etcd untuk metadata, dan MinIO untuk penyimpanan objek. Untuk menggunakan antrian pesan yang berbeda atau menghubungkan penyimpanan objek/metadata eksternal, lihat:
- Antrian pesan: Woodpecker (default) · Pulsar · Kafka · RocksMQ
- Penyimpanan objek: MinIO (default) · AWS S3 · Azure Blob · GCP Cloud Storage · Aliyun OSS · Tencent COS · Huawei OBS · S3-compatible
- Metadata: etcd
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 di Docker, Anda dapat:
Lihat Hello Milvus untuk mengetahui apa saja yang dapat dilakukan Milvus.
Pelajari operasi dasar Milvus:
Terapkan kluster Milvus Anda di cloud:
Jelajahi Milvus WebUI, antarmuka web intuitif untuk pemantauan dan pengelolaan Milvus.
Jelajahi Milvus Backup, alat sumber terbuka untuk pencadangan data Milvus.
Jelajahi Birdwatcher, alat sumber terbuka untuk debugging Milvus dan pembaruan konfigurasi dinamis.
Jelajahi Attu, alat GUI sumber terbuka untuk pengelolaan Milvus yang intuitif.