Menjalankan Milvus di Kubernetes dengan Helm
Halaman ini mengilustrasikan cara memulai instans Milvus di Kubernetes menggunakan bagan Helm Milvus.
Gambaran umum
Helm menggunakan format pengemasan yang disebut bagan. Bagan adalah kumpulan berkas yang mendeskripsikan sekumpulan sumber daya Kubernetes terkait. Milvus menyediakan sekumpulan bagan untuk membantu Anda menerapkan dependensi dan komponen Milvus.
Prasyarat
Instal StorageClass. Anda dapat memeriksa StorageClass yang terinstal 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 untuk memperkirakan kebutuhan perangkat keras berdasarkan ukuran data Anda. Hal ini membantu memastikan kinerja dan alokasi sumber daya yang optimal untuk instalasi Milvus Anda.
Jika Anda mengalami masalah dalam menarik gambar, hubungi kami di community@zilliz.com dengan rincian tentang masalahnya, dan kami akan memberikan dukungan yang diperlukan.
Menginstal Milvus Helm Chart
Sebelum menginstal Milvus Helm Charts, Anda harus 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. Repo yang diarsipkan masih tersedia untuk grafik hingga 4.0.31, tetapi gunakan repo yang baru untuk rilis selanjutnya.
Kemudian ambil grafik Milvus dari repositori sebagai berikut:
$ helm repo update
Anda selalu dapat menjalankan perintah ini untuk mengambil peta Milvus Helm terbaru.
Instalasi online
1. Menerapkan sebuah cluster Milvus
Setelah Anda menginstal bagan Helm, Anda dapat memulai Milvus di Kubernetes. Bagian ini memandu Anda dalam men-deploy cluster Milvus.
Perlu penerapan mandiri?
Jika Anda lebih suka menggunakan Milvus dalam mode mandiri (simpul tunggal) untuk pengembangan atau pengujian, gunakan perintah ini:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--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 antrean pesan default dan mengaktifkan komponen Streaming Node. Untuk detailnya, lihat Gambaran Umum Arsitektur dan Gunakan Woodpecker.
Menyebarkan cluster Milvus:
Perintah berikut ini menyebarkan cluster Milvus dengan pengaturan yang dioptimalkan untuk v2.6.15, menggunakan Woodpecker sebagai antrean pesan yang direkomendasikan:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--set pulsarv3.enabled=false \
--set woodpecker.enabled=true \
--set streaming.enabled=true \
--set indexNode.enabled=false
Apa yang dilakukan perintah ini:
- Menggunakan Woodpecker sebagai antrean pesan (disarankan untuk mengurangi pemeliharaan)
- Mengaktifkan komponen Streaming Node baru untuk meningkatkan kinerja
- Menonaktifkan Index Node yang lama (fungsionalitasnya sekarang ditangani oleh Data Node)
- Menonaktifkan Pulsar untuk menggunakan Woodpecker sebagai gantinya
Perubahan Arsitektur di Milvus 2.6.x:
- Antrian Pesan: Woodpecker sekarang direkomendasikan (mengurangi pemeliharaan infrastruktur dibandingkan dengan Pulsar)
- Komponen Baru: Streaming Node diperkenalkan dan diaktifkan secara default
- Penggabungan Komponen: Index Node dan Data Node digabungkan menjadi satu Data Node
Untuk detail arsitektur lengkap, lihat Tinjauan Arsitektur.
Opsi Antrian Pesan Alternatif:
Jika Anda lebih suka menggunakan Pulsar (pilihan tradisional) daripada Woodpecker:
helm install my-release zilliztech/milvus \
--set image.all.tag=v2.6.15 \
--set streaming.enabled=true \
--set indexNode.enabled=false
Langkah selanjutnya:Perintah di atas menerapkan Milvus dengan konfigurasi yang direkomendasikan. Untuk penggunaan produksi:
- Gunakan Alat 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 (tidak boleh ada titik)
- Kubernetes v1.25+: Jika Anda mengalami masalah PodDisruptionBudget, gunakan solusi ini:
helm install my-release zilliztech/milvus \ --set pulsar.bookkeeper.pdb.usePolicy=false \ --set pulsar.broker.pdb.usePolicy=false \ --set pulsar.proxy.pdb.usePolicy=false \ --set pulsar.zookeeper.pdb.usePolicy=false
Untuk informasi lebih lanjut, lihat Bagan Helm Milvus dan dokumentasi Helm.
2. Memeriksa status cluster Milvus
Verifikasi bahwa penerapan Anda berhasil dengan memeriksa status pod:
kubectl get pods
Tunggu hingga semua pod menunjukkan status "Running". Dengan konfigurasi v2.6.15, Anda akan 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-streaming-node-xxxxxxxxx 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
my-release-pulsar-autorecovery-86f5dbdf77-lchpc 1/1 Running 0 3m24s
my-release-pulsar-bookkeeper-0 1/1 Running 0 3m23s
my-release-pulsar-bookkeeper-1 1/1 Running 0 98s
my-release-pulsar-broker-556ff89d4c-2m29m 1/1 Running 0 3m23s
my-release-pulsar-proxy-6fbd75db75-nhg4v 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-0 1/1 Running 0 3m23s
my-release-pulsar-zookeeper-metadata-98zbr 0/1 Completed 0 3m24s
Komponen utama yang harus diverifikasi:
- Komponen Milvus:
mixcoord,datanode,querynode,proxy,streaming-node - Ketergantungan:
etcd(metadata),minio(penyimpanan objek),pulsar(antrean pesan)
Anda juga dapat mengakses Milvus WebUI di http://127.0.0.1:9091/webui/ setelah penerusan porta disiapkan (lihat langkah berikutnya). Untuk detailnya, lihat Milvus WebUI.
3. Menyambung ke Milvus
Untuk menyambung ke kluster Milvus Anda dari luar Kubernetes, Anda perlu menyiapkan penerusan porta.
Siapkan penerusan porta:
kubectl port-forward service/my-release-milvus 27017:19530
Perintah ini akan meneruskan porta lokal Anda 27017 ke porta Milvus 19530. Anda akan melihat:
Forwarding from 127.0.0.1:27017 -> 19530
Detail koneksi:
- Sambungan lokal:
localhost:27017 - Port default Milvus:
19530
Pilihan untuk penerusan port:
- Tetapkan port lokal secara otomatis: Gunakan
:19530dan bukan27017:19530untuk membiarkan kubectl memilih port yang tersedia - Mendengarkan pada 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 - Penyebaran mandiri: Jika menggunakan mode mandiri, nama layanan tetap sama
Biarkan terminal ini tetap terbuka saat menggunakan Milvus. Anda sekarang dapat terhubung ke Milvus menggunakan SDK Milvus apa pun di localhost:27017.
(Opsional) Memperbarui konfigurasi Milvus
Anda dapat memperbarui konfigurasi cluster Milvus Anda dengan mengedit berkas values.yaml dan menerapkannya lagi.
Buat file
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 file
values.yaml.
helm upgrade my-release zilliztech/milvus --namespace my-namespace -f values.yaml
Periksa konfigurasi yang telah diperbarui.
helm get values my-releaseOutput seharusnya menunjukkan konfigurasi yang telah diperbarui.
Mengakses Milvus WebUI
Milvus dilengkapi dengan alat GUI bawaan yang disebut Milvus WebUI yang dapat Anda akses melalui peramban. Milvus Web UI meningkatkan kemampuan pengamatan sistem dengan antarmuka yang sederhana dan intuitif. Anda dapat menggunakan Milvus Web UI untuk mengamati statistik dan metrik komponen dan ketergantungan Milvus, memeriksa detail basis data dan koleksi, dan membuat daftar konfigurasi Milvus yang terperinci. Untuk detail tentang Milvus Web UI, lihat Milvus WebUI
Untuk mengaktifkan akses ke Milvus Web UI, anda perlu melakukan port-forward proxy pod 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 yang dibatasi jaringan, ikuti prosedur di bagian ini untuk memulai cluster Milvus.
1. Dapatkan manifes Milvus
Jalankan perintah berikut untuk mendapatkan manifes Milvus.
$ helm template my-release zilliztech/milvus > milvus_manifest.yaml
Perintah di atas membuat templat bagan untuk klaster Milvus dan menyimpan hasilnya ke berkas manifes bernama milvus_manifest.yaml. Dengan menggunakan manifes ini, Anda dapat menginstal klaster Milvus dengan komponen dan dependensinya dalam pod yang terpisah.
- Untuk menginstal instans Milvus dalam mode mandiri di mana semua komponen Milvus berada dalam satu pod, Anda harus menjalankan
helm template my-release --set cluster.enabled=false --set etcd.replicaCount=1 --set minio.mode=standalone --set pulsarv3.enabled=false zilliztech/milvus > milvus_manifest.yamlsebagai gantinya untuk merender templat bagan untuk instans Milvus dalam mode mandiri. - Untuk mengubah konfigurasi Milvus, unduh template
value.yamltemplate, letakkan pengaturan yang Anda inginkan di dalamnya, dan gunakanhelm template -f values.yaml my-release zilliztech/milvus > milvus_manifest.yamluntuk merender manifes yang sesuai.
2. Unduh skrip penarik gambar
Skrip penarik gambar dikembangkan dalam bahasa Python. Anda harus mengunduh skrip bersama dengan dependensinya di file 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. Menarik dan menyimpan gambar
Jalankan perintah berikut untuk menarik dan menyimpan gambar yang diperlukan.
$ pip3 install -r requirements.txt
$ python3 save_image.py --manifest milvus_manifest.yaml
Gambar-gambar tersebut akan ditarik ke dalam sub-folder bernama images di direktori saat ini.
4. Memuat gambar
Anda sekarang dapat memuat gambar ke host di lingkungan yang dibatasi jaringan sebagai berikut:
$ for image in $(find . -type f -name "*.tar.gz") ; do gunzip -c $image | docker load; done
5. Menyebarkan Milvus
$ kubectl apply -f milvus_manifest.yaml
Hingga saat ini, Anda dapat mengikuti langkah 2 dan 3 dari penginstalan online untuk memeriksa status klaster dan meneruskan porta lokal ke Milvus.
Memutakhirkan cluster Milvus yang sedang berjalan
Jalankan perintah berikut untuk meng-upgrade cluster Milvus yang sedang berjalan ke versi terbaru:
$ helm repo update
$ helm upgrade my-release zilliztech/milvus --reset-then-reuse-values
Copot pemasangan Milvus
Jalankan perintah berikut untuk menghapus instalan Milvus.
$ helm uninstall my-release
Apa selanjutnya
Setelah menginstal Milvus di Docker, Anda dapat:
Memeriksa Hello Milvus untuk melihat apa yang dapat dilakukan Milvus.
Mempelajari operasi dasar Milvus:
Mengaturskala cluster Milvus Anda.
Menerapkan cluster Milvus Anda di awan:
Jelajahi Milvus WebUI, antarmuka web yang intuitif untuk pengamatan dan manajemen 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 manajemen Milvus yang intuitif.