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

milvus-logo
LFAI
Beranda
  • Memulai
  • Home
  • Docs
  • Memulai

  • Instal Milvus

  • Jalankan Milvus Didistribusikan

  • Operator Milvus

Menjalankan Milvus di Kubernetes dengan Milvus Operator

Halaman ini mengilustrasikan cara memulai instans Milvus di Kubernetes menggunakan Milvus Operator.

Gambaran umum

Milvus Operator adalah solusi yang membantu Anda men-deploy dan mengelola tumpukan layanan Milvus secara lengkap untuk menargetkan cluster Kubernetes (K8). Stack ini mencakup semua komponen Milvus dan dependensi yang relevan seperti etcd, Pulsar, dan MinIO.

Prasyarat

  • Buat cluster K8s.

  • 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             false 
    
  • Periksa 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 Operator

Milvus Operator mendefinisikan sumber daya khusus klaster Milvus di atas Sumber Daya Khusus Kubernetes. Ketika sumber daya khusus didefinisikan, Anda dapat menggunakan API K8s dengan cara deklaratif dan mengelola tumpukan penerapan Milvus untuk memastikan skalabilitas dan ketersediaannya yang tinggi.

Anda dapat menginstal Milvus Operator dengan salah satu cara berikut:

Menginstal dengan Helm

Jalankan perintah berikut untuk menginstal Milvus Operator dengan Helm.

$ helm install milvus-operator \
  -n milvus-operator --create-namespace \
  --wait --wait-for-jobs \
  https://github.com/zilliztech/milvus-operator/releases/download/v1.2.0/milvus-operator-1.2.0.tgz

Anda akan melihat output yang mirip dengan yang berikut ini setelah proses instalasi berakhir.

NAME: milvus-operator
LAST DEPLOYED: Thu Jul  7 13:18:40 2022
NAMESPACE: milvus-operator
STATUS: deployed
REVISION: 1
TEST SUITE: None
NOTES:
Milvus Operator Is Starting, use `kubectl get -n milvus-operator deploy/milvus-operator` to check if its successfully installed
If Operator not started successfully, check the checker's log with `kubectl -n milvus-operator logs job/milvus-operator-checker`
Full Installation doc can be found in https://github.com/zilliztech/milvus-operator/blob/main/docs/installation/installation.md
Quick start with `kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_minimum.yaml`
More samples can be found in https://github.com/zilliztech/milvus-operator/tree/main/config/samples
CRD Documentation can be found in https://github.com/zilliztech/milvus-operator/tree/main/docs/CRD

Instal dengan kubectl

Jalankan perintah berikut untuk menginstal Milvus Operator dengan kubectl.

$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/deploy/manifests/deployment.yaml

Anda akan melihat output seperti berikut setelah proses instalasi berakhir.

namespace/milvus-operator created
customresourcedefinition.apiextensions.k8s.io/milvusclusters.milvus.io created
serviceaccount/milvus-operator-controller-manager created
role.rbac.authorization.k8s.io/milvus-operator-leader-election-role created
clusterrole.rbac.authorization.k8s.io/milvus-operator-manager-role created
clusterrole.rbac.authorization.k8s.io/milvus-operator-metrics-reader created
clusterrole.rbac.authorization.k8s.io/milvus-operator-proxy-role created
rolebinding.rbac.authorization.k8s.io/milvus-operator-leader-election-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/milvus-operator-manager-rolebinding created
clusterrolebinding.rbac.authorization.k8s.io/milvus-operator-proxy-rolebinding created
configmap/milvus-operator-manager-config created
service/milvus-operator-controller-manager-metrics-service created
service/milvus-operator-webhook-service created
deployment.apps/milvus-operator-controller-manager created

Anda dapat memeriksa apakah pod Milvus Operator telah berjalan sebagai berikut:

$ kubectl get pods -n milvus-operator

NAME                               READY   STATUS    RESTARTS   AGE
milvus-operator-5fd77b87dc-msrk4   1/1     Running   0          46s

Menyebarkan Milvus

1. Menyebarkan cluster Milvus

Setelah pod Milvus Operator berjalan, Anda dapat men-deploy cluster Milvus sebagai berikut.

$ kubectl apply -f https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_cluster_default.yaml

Perintah di atas men-deploy cluster Milvus dengan komponen dan dependensinya dalam pod terpisah menggunakan konfigurasi default. Untuk menyesuaikan pengaturan ini, kami sarankan Anda menggunakan Milvus Sizing Tool untuk menyesuaikan konfigurasi berdasarkan ukuran data Anda yang sebenarnya, lalu mengunduh file YAML yang sesuai. Untuk mempelajari lebih lanjut tentang parameter konfigurasi, lihat Daftar Periksa Konfigurasi Sistem Milvus.

  • Nama rilis hanya boleh terdiri dari huruf, angka, dan tanda hubung. Titik tidak diperbolehkan dalam nama rilis.
  • Anda juga dapat menggunakan instans Milvus dalam mode mandiri, di mana semua komponennya berada dalam satu pod. Untuk melakukannya, ubah URL berkas konfigurasi pada perintah di atas menjadi https://raw.githubusercontent.com/zilliztech/milvus-operator/main/config/samples/milvus_default.yaml

2. Memeriksa status cluster Milvus

Jalankan perintah berikut untuk memeriksa status cluster Milvus

$ kubectl get milvus my-release -o yaml

Setelah cluster Milvus Anda siap, keluaran dari perintah di atas akan serupa dengan yang berikut ini. Jika bidang status.status tetap Unhealthy, cluster Milvus Anda masih dalam proses pembuatan.

apiVersion: milvus.io/v1alpha1
kind: Milvus
metadata:
...
status:
  conditions:
  - lastTransitionTime: "2021-11-02T05:59:41Z"
    reason: StorageReady
    status: "True"
    type: StorageReady
  - lastTransitionTime: "2021-11-02T06:06:23Z"
    message: Pulsar is ready
    reason: PulsarReady
    status: "True"
    type: PulsarReady
  - lastTransitionTime: "2021-11-02T05:59:41Z"
    message: Etcd endpoints is healthy
    reason: EtcdReady
    status: "True"
    type: EtcdReady
  - lastTransitionTime: "2021-11-02T06:12:36Z"
    message: All Milvus components are healthy
    reason: MilvusClusterHealthy
    status: "True"
    type: MilvusReady
  endpoint: my-release-milvus.default:19530
  status: Healthy

Milvus Operator membuat dependensi Milvus, seperti etcd, Pulsar, dan MinIO, dan kemudian komponen Milvus, seperti proxy, koordinator, dan node.

Setelah cluster Milvus Anda siap, status semua pod dalam cluster Milvus akan serupa dengan yang berikut ini.

$ kubectl get pods

NAME                                            READY   STATUS      RESTARTS   AGE
my-release-etcd-0                               1/1     Running     0          14m
my-release-etcd-1                               1/1     Running     0          14m
my-release-etcd-2                               1/1     Running     0          14m
my-release-milvus-datanode-5c686bd65-wxtmf      1/1     Running     0          6m
my-release-milvus-indexnode-5b9787b54-xclbx     1/1     Running     0          6m
my-release-milvus-proxy-84f67cdb7f-pg6wf        1/1     Running     0          6m
my-release-milvus-querynode-5bcb59f6-nhqqw      1/1     Running     0          6m
my-release-milvus-mixcoord-fdcccfc84-9964g      1/1     Running     0          6m
my-release-minio-0                              1/1     Running     0          14m
my-release-minio-1                              1/1     Running     0          14m
my-release-minio-2                              1/1     Running     0          14m
my-release-minio-3                              1/1     Running     0          14m
my-release-pulsar-bookie-0                      1/1     Running     0          14m
my-release-pulsar-bookie-1                      1/1     Running     0          14m
my-release-pulsar-bookie-init-h6tfz             0/1     Completed   0          14m
my-release-pulsar-broker-0                      1/1     Running     0          14m
my-release-pulsar-broker-1                      1/1     Running     0          14m
my-release-pulsar-proxy-0                       1/1     Running     0          14m
my-release-pulsar-proxy-1                       1/1     Running     0          14m
my-release-pulsar-pulsar-init-d2t56             0/1     Completed   0          14m
my-release-pulsar-recovery-0                    1/1     Running     0          14m
my-release-pulsar-toolset-0                     1/1     Running     0          14m
my-release-pulsar-zookeeper-0                   1/1     Running     0          14m
my-release-pulsar-zookeeper-1                   1/1     Running     0          13m
my-release-pulsar-zookeeper-2                   1/1     Running     0          13m

3. Meneruskan port lokal ke Milvus

Jalankan perintah berikut untuk mendapatkan port di mana cluster Milvus Anda melayani.

$ kubectl get pod my-release-milvus-proxy-84f67cdb7f-pg6wf --template
='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'
19530

Keluarannya menunjukkan bahwa instans Milvus melayani pada port default 19530.

Jika Anda telah menggunakan Milvus dalam mode mandiri, ubah nama pod dari my-release-milvus-proxy-xxxxxxxxxx-xxxxx menjadi my-release-milvus-xxxxxxxxxx-xxxxx.

Kemudian, jalankan perintah berikut untuk meneruskan porta lokal ke porta tempat Milvus melayani.

$ kubectl port-forward service/my-release-milvus 27017:19530
Forwarding from 127.0.0.1:27017 -> 19530

Secara opsional, Anda dapat menggunakan :19530 dan bukan 27017:19530 pada perintah di atas untuk membiarkan kubectl mengalokasikan porta lokal untuk Anda sehingga Anda tidak perlu mengelola konflik porta.

Secara default, penerusan porta kubectl hanya mendengarkan localhost. Gunakan flag address jika Anda ingin Milvus mendengarkan pada alamat IP yang dipilih atau semua alamat IP. Perintah berikut ini membuat port-forward mendengarkan 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 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 meneruskan porta proxy pod ke porta 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.

Copot pemasangan Milvus

Jalankan perintah berikut untuk menghapus instalan cluster Milvus.

$ kubectl delete milvus my-release
  • Ketika Anda menghapus cluster Milvus menggunakan konfigurasi default, dependensi seperti etcd, Pulsar, dan MinIO tidak terhapus. Oleh karena itu, pada saat Anda menginstal instans cluster Milvus yang sama, dependensi ini akan digunakan lagi.
  • Untuk menghapus dependensi dan private virtual cloud (PVC) bersama dengan cluster Milvus, lihat file konfigurasi.

Menghapus Instalasi Operator Milvus

Ada juga dua cara untuk menghapus instalan Milvus Operator.

Copot pemasangan dengan Helm

$ helm -n milvus-operator uninstall milvus-operator

Copot pemasangan dengan kubectl

$ kubectl delete -f https://raw.githubusercontent.com/zilliztech/milvus-operator/v1.2.0/deploy/manifests/deployment.yaml

Apa selanjutnya

Setelah menginstal Milvus di Docker, Anda dapat:

Coba Milvus yang Dikelola secara Gratis

Zilliz Cloud bebas masalah, didukung oleh Milvus dan 10x lebih cepat.

Mulai
Umpan balik

Apakah halaman ini bermanfaat?