Memperbarui Milvus Standalone dengan Milvus Operator
Panduan ini menjelaskan cara meng-upgrade deployment Milvus 2.6.x standalone ke v3.0.2 menggunakan Milvus Operator.
Prosedur ini telah diverifikasi dari Milvus 2.6.20 hingga Milvus v3.0.2 dengan Milvus Operator 1.3.0, Woodpecker, etcd dalam kluster, dan MinIO dalam kluster. Jika Anda menggunakan rilis patch Milvus 2.6.x lain, versi Operator, antrian pesan, atau konfigurasi dependensi yang berbeda, uji coba pembaruan ini terlebih dahulu di lingkungan non-produksi.
Prasyarat
- Sebuah kluster Kubernetes dengan deployment Milvus 2.6.x standalone yang dikelola oleh Milvus Operator
kubectlakses ke kluster- Manifest sumber daya khusus (CR) Milvus lengkap yang digunakan untuk penyebaran yang ada
- Metode instalasi dan manifest yang digunakan untuk Milvus Operator yang sudah ada
- Cadangan terbaru dari metadata Milvus dan data persisten
Batasan antrian pesan: Saat melakukan upgrade ke Milvus v3.0.2, Anda harus mempertahankan pilihan antrian pesan saat ini. Beralih antara sistem antrian pesan yang berbeda selama proses upgrade tidak didukung. Dukungan untuk mengganti sistem antrian pesan akan tersedia pada versi mendatang.
Prosedur ini tidak memvalidasi penurunan versi atau rollback dengan mengubah gambar Milvus kembali ke 2.6.x. Setelah v3.0.2 menulis data, rollback yang hanya melibatkan gambar dapat gagal membaca status yang telah diperbarui. Jika peningkatan gagal, hentikan penulisan dan gunakan rencana pemulihan yang mengembalikan cadangan metadata dan data persisten sebelum peningkatan. Validasi rencana pemulihan di lingkungan non-produksi terlebih dahulu.
Proses peningkatan versi
Langkah 1: Cadangkan CR Milvus saat ini
Simpan CR saat ini sebelum mengubah penyebaran:
kubectl get milvus <instance-name> \
--namespace <namespace> \
--output yaml > milvus-before-upgrade.yaml
Gunakan manifest sumber untuk penyebaran yang ada sebagai manifest peningkatan versi. Jangan menerapkan file cadangan yang diekspor secara langsung tanpa terlebih dahulu menghapus metadata yang dikelola server dan bidang status.
Langkah 2: Konfirmasi versi Milvus Operator
Periksa gambar yang digunakan oleh Milvus Operator yang terinstal:
kubectl get deployments --all-namespaces \
-o jsonpath='{range .items[*]}{.metadata.namespace}{"\t"}{.metadata.name}{"\t"}{range .spec.template.spec.containers[*]}{.image}{" "}{end}{"\n"}{end}' \
| grep milvus-operator
Peningkatan yang telah divalidasi mempertahankan Milvus Operator pada versi 1.3.0. Pertahankan versi Operator yang saat ini mengelola penyebaran Milvus 2.6.x Anda, kecuali jika kebijakan dukungan Anda mengharuskan peningkatan Operator terpisah. Jangan menurunkan versi Operator yang lebih baru ke versi yang telah diuji. Jika Anda perlu mengubah versi Operator, gunakan metode instalasi Helm atau kubectl yang sama serta nama rilis dan ruang nama yang sama dengan instalasi yang ada, lalu validasi perubahan Operator sebelum memperbarui Milvus CR.
Langkah 3: Perbarui gambar Milvus
Dalam manifest CR Milvus yang lengkap, ubah hanya spec.components.image. Pertahankan pengaturan mode, komponen, antrian pesan, etcd, penyimpanan, dan pengaturan ketergantungan lainnya yang sudah ada. Kutipan berikut menunjukkan bidang yang perlu diubah; jangan mengganti CR lengkap Anda dengan kutipan ini.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: <instance-name>
namespace: <namespace>
spec:
components:
image: milvusdb/milvus:v3.0.2
Terapkan manifest CR lengkap:
kubectl apply --filename milvus.yaml
Verifikasi peningkatan
Periksa status CR, status Pod, dan gambar kontainer:
kubectl get milvus <instance-name> \
--namespace <namespace> \
--output jsonpath='{.status.status}{"\t"}{.status.currentImage}{"\n"}'
kubectl get pods --namespace <namespace>
kubectl get pods --namespace <namespace> \
-o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{range .spec.containers[*]}{.image}{" "}{end}{"\n"}{end}'
Pastikan bahwa CR Milvus melaporkan ` Healthy`, gambar saat ini adalah ` milvusdb/milvus:v3.0.2`, dan koleksi yang ada tetap dapat di-query dan dicari. Selesaikan pemeriksaan ini sebelum Anda mengaktifkan fitur apa pun yang spesifik untuk v3.0.2.