ترقية Milvus Standalone باستخدام Milvus Operator
يصف هذا الدليل كيفية ترقية نشر Milvus 2.6.x المستقل إلى الإصدار v3.0.0 باستخدام Milvus Operator.
تم التحقق من صحة هذا الإجراء من Milvus 2.6.20 إلى Milvus v3.0.0 باستخدام Milvus Operator 1.3.0 وWoodpecker وetcd داخل المجموعة وMinIO داخل المجموعة. إذا كنت تستخدم إصدار تصحيح آخر لـ Milvus 2.6.x، أو إصدار Operator آخر، أو قائمة انتظار رسائل مختلفة، أو تكوين تبعيات مختلف، فقم بالتحقق من صحة الترقية في بيئة غير إنتاجية أولاً.
المتطلبات الأساسية
- مجموعة Kubernetes مع نشر مستقل لـ Milvus 2.6.x يديره Milvus Operator
kubectlالوصول إلى المجموعة- بيان الموارد المخصصة (CR) الكامل لـ Milvus المستخدم في النشر الحالي
- طريقة التثبيت وقوائم البيانات المستخدمة لـ Milvus Operator الحالي
- نسخة احتياطية حديثة من بيانات Milvus الوصفية والبيانات الدائمة
قيود قائمة انتظار الرسائل: عند الترقية إلى Milvus v3.0.0، يجب الحفاظ على اختيارك الحالي لقائمة انتظار الرسائل. لا يُدعم التبديل بين أنظمة قوائم انتظار الرسائل المختلفة أثناء الترقية. سيتوفر دعم تغيير أنظمة قوائم انتظار الرسائل في الإصدارات المستقبلية.
لا يتضمن هذا الإجراء التحقق من صحة الرجوع إلى إصدار أقدم أو التراجع عن الترقية عن طريق إعادة صورة Milvus إلى الإصدار 2.6.x. بعد أن تقوم الإصدار v3.0.0 بكتابة البيانات، قد تفشل عملية التراجع التي تقتصر على الصورة في قراءة الحالة المحدثة. إذا فشلت عملية الترقية، فقم بإيقاف عمليات الكتابة واستخدم خطة استعادة تعيد نسخ البيانات الاحتياطية للبيانات الوصفية والبيانات الدائمة قبل الترقية. تحقق أولاً من صحة خطة الاستعادة في بيئة غير إنتاجية.
عملية الترقية
الخطوة 1: قم بعمل نسخة احتياطية من CR الحالي لـ Milvus
احفظ CR الحالي قبل تغيير النشر:
kubectl get milvus <instance-name> \
--namespace <namespace> \
--output yaml > milvus-before-upgrade.yaml
استخدم ملف البيان المصدر للنشر الحالي الخاص بك كملف بيان الترقية. لا تقم بتطبيق ملف النسخ الاحتياطي المصدَّر مباشرةً دون إزالة البيانات الوصفية التي يديرها الخادم وحقول الحالة أولاً.
الخطوة 2: تأكيد إصدار Milvus Operator
تحقق من الصورة المستخدمة بواسطة Milvus Operator المثبت:
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
أبقت عملية الترقية التي تم التحقق من صحتها على إصدار Milvus Operator عند 1.3.0. احتفظ بإصدار Operator الذي يدير حاليًا نشر Milvus 2.6.x الخاص بك ما لم تتطلب سياسة الدعم الخاصة بك ترقية Operator منفصلة. لا تقم بتخفيض إصدار Operator الأحدث إلى الإصدار الذي تم اختباره. إذا كنت بحاجة إلى تغيير إصدار Operator، فاستخدم نفس طريقة التثبيت Helm أو kubectl ونفس اسم الإصدار ومساحة الاسم المستخدمة في التثبيت الحالي، ثم قم بالتحقق من صحة تغيير Operator قبل تحديث Milvus CR.
الخطوة 3: تحديث صورة Milvus
في بيان Milvus CR الكامل، قم بتغيير spec.components.image فقط. احتفظ بالوضع الحالي وإعدادات المكونات وقائمة انتظار الرسائل وetcd والتخزين وإعدادات التبعيات الأخرى. يوضح المقتطف التالي الحقل المطلوب تغييره؛ لا تستبدل CR الكامل بهذا المقتطف.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: <instance-name>
namespace: <namespace>
spec:
components:
image: milvusdb/milvus:v3.0.0
قم بتطبيق ملف بيان CR الكامل:
kubectl apply --filename milvus.yaml
تحقق من الترقية
تحقق من حالة طلب التغيير (CR) وحالة البود (Pod) وصور الحاويات:
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}'
تأكد من أن CR الخاص بـ Milvus يُبلغ عن Healthy ، وأن الصورة الحالية هي milvusdb/milvus:v3.0.0 ، وأن المجموعات الحالية لا تزال قابلة للاستعلام والبحث. أكمل هذه الفحوصات قبل تمكين أي ميزة خاصة بالإصدار v3.0.0.