Menerapkan Milvus di Kubernetes: Panduan Langkah-demi-Langkah untuk Pengguna Kubernetes
Milvus adalah basis data vektor sumber terbuka yang dirancang untuk menyimpan, mengindeks, dan mencari data tak terstruktur dalam jumlah besar melalui representasi vektor, sehingga sempurna untuk aplikasi berbasis AI, seperti pencarian kemiripan, pencarian semantik, retrieval augmented generation(RAG), mesin rekomendasi, dan tugas-tugas pembelajaran mesin lainnya.
Namun, yang membuat Milvus lebih hebat lagi adalah integrasinya yang mulus dengan Kubernetes. Jika Anda seorang penggemar Kubernetes, Anda pasti tahu bahwa platform ini sangat cocok untuk mengatur sistem terdistribusi yang dapat diskalakan. Milvus memanfaatkan sepenuhnya kemampuan Kubernetes, memungkinkan Anda untuk dengan mudah menerapkan, menskalakan, dan mengelola cluster Milvus yang terdistribusi. Panduan ini akan memberikan panduan langkah demi langkah yang jelas untuk menyiapkan Milvus di Kubernetes menggunakan Milvus Operator.
Prasyarat
Sebelum memulai, pastikan Anda memiliki prasyarat berikut ini:
Sebuah kluster Kubernetes yang aktif dan berjalan. Jika Anda menguji secara lokal,
minikube
adalah pilihan yang tepat.kubectl
sudah terinstal dan terkonfigurasi untuk berinteraksi dengan klaster Kubernetes Anda.Memahami konsep dasar Kubernetes seperti pod, layanan, dan penerapan.
Langkah 1: Menginstalasi Minikube (Untuk Pengujian Lokal)
Jika Anda perlu menyiapkan lingkungan Kubernetes lokal, minikube
adalah alat yang tepat untuk Anda. Instruksi instalasi resmi ada di halaman memulai minikube.
1. Instal Minikube
Kunjungi laman rilis minikube dan unduh versi yang sesuai untuk sistem operasi Anda. Untuk macOS/Linux, Anda dapat menggunakan perintah berikut:
$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64
2. Mulai Minikube
$ minikube start
3. Berinteraksi dengan Cluster
Sekarang, Anda dapat berinteraksi dengan cluster Anda dengan kubectl di dalam minikube. Jika Anda belum menginstal kubectl, minikube akan mengunduh versi yang sesuai secara default.
$ minikube kubectl cluster-info
Sebagai alternatif, Anda dapat membuat tautan simbolis ke biner minikube bernama kubectl
untuk penggunaan yang lebih mudah.
$ sudo ln -s $(which minikube) /usr/local/bin/kubectl
$ kubectl cluster-info
Langkah 2: Mengonfigurasi StorageClass
Di Kubernetes, StorageClass mendefinisikan jenis penyimpanan yang tersedia untuk beban kerja Anda, memberikan fleksibilitas dalam mengelola konfigurasi penyimpanan yang berbeda. Sebelum melanjutkan, Anda harus memastikan StorageClass default tersedia di cluster Anda. Berikut ini cara memeriksa dan mengonfigurasinya jika perlu.
1. Memeriksa StorageClass yang Terinstal
Untuk melihat StorageClasses yang tersedia di cluster Kubernetes Anda, jalankan perintah berikut:
$ kubectl get sc
Ini akan menampilkan daftar kelas penyimpanan yang terinstal di cluster Anda. Jika StorageClass default telah dikonfigurasi, maka akan ditandai dengan (default)
.
2. Mengonfigurasi StorageClass Default (jika perlu)
Jika tidak ada StorageClass default yang ditetapkan, Anda dapat membuatnya dengan mendefinisikannya dalam file YAML. Gunakan contoh berikut untuk membuat StorageClass default:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: default-storageclass
provisioner: k8s.io/minikube-hostpath
Konfigurasi YAML ini mendefinisikan StorageClass
yang disebut default-storageclass
yang menggunakan provisioner minikube-hostpath
, yang biasa digunakan dalam lingkungan pengembangan lokal.
3. Menerapkan StorageClass
Setelah berkas default-storageclass.yaml
dibuat, terapkan ke cluster Anda dengan menggunakan perintah berikut:
$ kubectl apply -f default-storageclass.yaml
Ini akan menyiapkan StorageClass default untuk cluster Anda, memastikan bahwa kebutuhan penyimpanan Anda dikelola dengan baik di masa mendatang.
Langkah 3: Menginstalasi Milvus Menggunakan Operator Milvus
Milvus Operator menyederhanakan penerapan Milvus di Kubernetes, mengelola penyebaran, penskalaan, dan pembaruan. Sebelum menginstal Milvus Operator, Anda harus menginstal cert-manager, yang menyediakan sertifikat untuk server webhook yang digunakan oleh Milvus Operator.
1. Instal cert-manager
Milvus Operator membutuhkan cert-manager untuk mengelola sertifikat untuk komunikasi yang aman. Pastikan Anda menginstal cert-manager versi 1.1.3 atau yang lebih baru. Untuk menginstalnya, jalankan perintah berikut:
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml
Setelah instalasi, verifikasi bahwa pod cert-manager telah berjalan dengan menjalankannya:
$ kubectl get pods -n cert-manager
2. Menginstal Operator Milvus
Setelah cert-manager aktif dan berjalan, Anda dapat menginstal Milvus Operator. Jalankan perintah berikut untuk menerapkannya menggunakan kubectl
:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/deploy/manifests/deployment.yaml
Anda dapat memeriksa apakah pod Milvus Operator sudah berjalan dengan menggunakan perintah berikut:
$ kubectl get pods -n milvus-operator
3. Menyebarkan Milvus Cluster
Setelah pod Milvus Operator berjalan, Anda dapat men-deploy cluster Milvus dengan operator. Perintah berikut ini akan men-deploy cluster Milvus dengan komponen dan ketergantungannya dalam pod terpisah menggunakan konfigurasi default:
$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml
Untuk menyesuaikan pengaturan Milvus, Anda perlu mengganti berkas YAML dengan berkas YAML konfigurasi Anda sendiri. Selain mengedit atau membuat file secara manual, Anda dapat menggunakan Milvus Sizing Tool untuk menyesuaikan konfigurasi dan kemudian mengunduh file YAML yang sesuai.
Untuk menyesuaikan pengaturan Milvus, Anda harus mengganti file YAML default dengan konfigurasi Anda sendiri. Anda dapat mengedit atau membuat file ini secara manual, menyesuaikannya dengan kebutuhan spesifik Anda.
Atau, Anda dapat menggunakan Milvus Sizing Tool untuk pendekatan yang lebih ramping. Alat ini memungkinkan Anda untuk menyesuaikan berbagai pengaturan, seperti alokasi sumber daya dan opsi penyimpanan, dan kemudian mengunduh file YAML yang sesuai dengan konfigurasi yang Anda inginkan. Hal ini memastikan bahwa penerapan Milvus Anda dioptimalkan untuk kasus penggunaan spesifik Anda.
Gambar: Alat ukuran Milvus
Mungkin diperlukan beberapa waktu untuk menyelesaikan penerapan. Anda dapat memeriksa status cluster Milvus Anda melalui perintah:
$ kubectl get milvus my-release
Setelah cluster Milvus Anda siap, semua pod dalam cluster Milvus seharusnya sudah berjalan atau selesai:
$ kubectl get pods
Langkah 4: Mengakses Cluster Milvus Anda
Setelah cluster Milvus Anda diterapkan, Anda perlu mengaksesnya dengan meneruskan port lokal ke port layanan Milvus. Ikuti langkah-langkah berikut untuk mendapatkan port layanan dan mengatur penerusan port.
1. Dapatkan Port Layanan
Pertama, identifikasi port layanan dengan menggunakan perintah berikut. Ganti <YOUR_MILVUS_PROXY_POD>
dengan nama pod proxy Milvus Anda, yang biasanya dimulai dengan my-release-milvus-proxy-
:
$ kubectl get pod <YOUR_MILVUS_PROXY_POD> --template ='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
Perintah ini akan mengembalikan nomor port yang digunakan oleh layanan Milvus Anda.
2. Meneruskan Port
Untuk mengakses cluster Milvus Anda secara lokal, teruskan port lokal ke port layanan menggunakan perintah berikut. Ganti <YOUR_LOCAL_PORT>
dengan port lokal yang ingin Anda gunakan dan <YOUR_SERVICE_PORT>
dengan port layanan yang diambil pada langkah sebelumnya:
$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus <YOUR_LOCAL_PORT>:<YOUR_SERVICE_PORT>
Perintah ini memungkinkan penerusan port untuk mendengarkan semua alamat IP mesin host. Jika Anda hanya membutuhkan layanan untuk mendengarkan di localhost
, Anda dapat menghilangkan opsi --address 0.0.0.0
.
Setelah penerusan porta disiapkan, Anda dapat mengakses klaster Milvus Anda melalui porta lokal yang ditentukan untuk operasi atau integrasi lebih lanjut.
Langkah 5: Menghubungkan ke Milvus Menggunakan Python SDK
Setelah cluster Milvus Anda aktif dan berjalan, Anda sekarang dapat berinteraksi dengannya menggunakan SDK Milvus apa pun. Dalam contoh ini, kita akan menggunakan PyMilvus, SDK Python Milvus, untuk menyambung ke cluster dan melakukan operasi dasar.
1. Instal PyMilvus
Untuk berinteraksi dengan Milvus melalui Python, Anda perlu menginstal paket pymilvus
:
$ pip install pymilvus
2. Terhubung ke Milvus
Berikut ini adalah contoh skrip Python yang menghubungkan ke cluster Milvus Anda dan menunjukkan bagaimana melakukan operasi dasar seperti membuat koleksi.
from pymilvus import MilvusClient
# Connect to the Milvus server
client = MilvusClient(uri="http://localhost:<YOUR_LOCAL_PORT>")
# Create a collection
collection_name = "example_collection"
if client.has_collection(collection_name):
client.drop_collection(collection_name)
client.create_collection(
collection_name=collection_name,
dimension=768, # The vectors we will use in this demo has 768 dimensions
)
Penjelasan:
Sambungkan ke Milvus: Skrip ini menyambungkan ke server Milvus yang berjalan di
localhost
menggunakan porta lokal yang Anda siapkan di Langkah 4.Membuat Koleksi: Skrip ini memeriksa apakah koleksi bernama
example_collection
sudah ada, menghapusnya jika sudah ada, dan kemudian membuat koleksi baru dengan vektor-vektor berdimensi 768.
Skrip ini membuat koneksi ke klaster Milvus dan membuat koleksi, yang berfungsi sebagai titik awal untuk operasi yang lebih kompleks seperti menyisipkan vektor dan melakukan pencarian kemiripan.
Kesimpulan
Menerapkan Milvus dalam pengaturan terdistribusi di Kubernetes membuka kemampuan yang kuat untuk mengelola data vektor berskala besar, memungkinkan skalabilitas tanpa batas dan aplikasi berbasis AI berkinerja tinggi. Dengan mengikuti panduan ini, Anda telah mempelajari cara menyiapkan Milvus menggunakan Milvus Operator, sehingga prosesnya menjadi lebih ramping dan efisien.
Saat Anda terus menjelajahi Milvus, pertimbangkan untuk menskalakan cluster Anda untuk memenuhi permintaan yang terus meningkat atau menerapkannya di platform cloud seperti Amazon EKS, Google Cloud, atau Microsoft Azure. Untuk manajemen dan pemantauan yang lebih baik, alat bantu seperti Milvus Backup, Birdwatcher, dan Attu menawarkan dukungan yang berharga untuk menjaga kesehatan dan kinerja penerapan Anda.
Anda sekarang siap untuk memanfaatkan potensi penuh Milvus di Kubernetes-selamat menerapkan! 🚀
Sumber Daya Lebih Lanjut
- Prasyarat
- Langkah 1: Menginstalasi Minikube (Untuk Pengujian Lokal)
- Langkah 2: Mengonfigurasi StorageClass
- Langkah 3: Menginstalasi Milvus Menggunakan Operator Milvus
- Langkah 4: Mengakses Cluster Milvus Anda
- Langkah 5: Menghubungkan ke Milvus Menggunakan Python SDK
- Kesimpulan
- Sumber Daya Lebih Lanjut
On This Page
Try Managed Milvus for Free
Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.
Get StartedLike the article? Spread the word