🚀 Coba Zilliz Cloud, Milvus yang sepenuhnya terkelola, secara gratis—rasakan performa 10x lebih cepat! Coba Sekarang>>

milvus-logo
LFAI
  • Home
  • Blog
  • Menerapkan Milvus di Kubernetes: Panduan Langkah-demi-Langkah untuk Pengguna Kubernetes

Menerapkan Milvus di Kubernetes: Panduan Langkah-demi-Langkah untuk Pengguna Kubernetes

  • Engineering
September 26, 2024
Gael Gu

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

Like the article? Spread the word

Terus Baca