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
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:
Memeriksa Halo Milvus untuk melihat apa yang dapat dilakukan Milvus.
Mempelajari operasi dasar Milvus:
Mengaturskala cluster Milvus Anda.
Menerapkan cluster Milvu 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.