ترقية مجموعة ميلفوس العنقودية باستخدام مشغل ميلفوس
يصف هذا الدليل كيفية ترقية مجموعة Milvus العنقودية الخاصة بك مع مشغل Milvus.
ترقية مشغل ميلفوس الخاص بك
قم بتشغيل الأمر التالي لترقية إصدار مشغل Milvus الخاص بك إلى الإصدار v1.2.0.
helm repo add zilliztech-milvus-operator https://zilliztech.github.io/milvus-operator/
helm repo update zilliztech-milvus-operator
helm -n milvus-operator upgrade milvus-operator zilliztech-milvus-operator/milvus-operator
بمجرد أن تقوم بترقية مشغل ميلفوس الخاص بك إلى أحدث إصدار، يكون لديك الخيارات التالية:
- لترقية Milvus من الإصدار 2.2.3 أو الإصدارات الأحدث إلى الإصدار 2.5.4، يمكنك إجراء ترقية متجددة.
- لترقية Milvus من إصدار ثانوي قبل الإصدار 2.2.3 إلى 2.5.4، يُنصح بترقية Milvus عن طريق تغيير إصدار الصورة الخاص به.
- لترقية Milvus من الإصدار 2.1.x إلى الإصدار 2.5.4، تحتاج إلى ترحيل البيانات الوصفية قبل الترقية الفعلية.
إجراء ترقية متجددة
منذ الإصدار Milvus 2.2.3، يمكنك تكوين منسقي Milvus للعمل في وضع الاستعداد النشط وتمكين ميزة الترقية المتجددة لهم، بحيث يمكن لـ Milvus الاستجابة للطلبات الواردة أثناء ترقيات المنسق. في الإصدارات السابقة، يجب إزالة المنسقين ثم إنشاؤهم أثناء الترقية، مما قد يؤدي إلى تعطل معين للخدمة.
استنادًا إلى إمكانيات التحديث المتجدد التي توفرها Kubernetes، يفرض مشغل Milvus تحديثًا مرتبًا لعمليات النشر وفقًا لتبعياتها. بالإضافة إلى ذلك، تطبق Milvus آلية لضمان بقاء مكوناتها متوافقة مع تلك التي تعتمد عليها أثناء الترقية، مما يقلل بشكل كبير من وقت تعطل الخدمة المحتمل.
يتم تعطيل ميزة الترقية المتجددة بشكل افتراضي. تحتاج إلى تمكينها بشكل صريح من خلال ملف تهيئة.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
spec:
components:
enableRollingUpdate: true
imageUpdateMode: rollingUpgrade # Default value, can be omitted
image: milvusdb/milvus:v2.5.4
في ملف التكوين أعلاه، اضبط spec.components.enableRollingUpdate
على true
واضبط spec.components.image
على إصدار Milvus المطلوب.
بشكل افتراضي، يقوم Milvus بإجراء ترقية متجددة للمنسقين بطريقة مرتبة، حيث يقوم باستبدال صور حجرة المنسق واحدة تلو الأخرى. لتقليل وقت الترقية، ضع في اعتبارك تعيين spec.components.imageUpdateMode
إلى all
بحيث يستبدل ميلفوس جميع صور الكبسولات في نفس الوقت.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
spec:
components:
enableRollingUpdate: true
imageUpdateMode: all
image: milvusdb/milvus:v2.5.4
يمكنك تعيين spec.components.imageUpdateMode
إلى rollingDowngrade
لجعل Milvus يستبدل صور جراب المنسق بإصدار أقل.
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
spec:
components:
enableRollingUpdate: true
imageUpdateMode: rollingDowngrade
image: milvusdb/milvus:<some-old-version>
ثم احفظ التكوين الخاص بك كملف YAML (على سبيل المثال، milvusupgrade.yaml
) وقم بتصحيح ملف التكوين هذا إلى مثيل Milvus الخاص بك على النحو التالي:
kubectl patch -f milvusupgrade.yaml --patch-file milvusupgrade.yaml --type merge
قم بترقية Milvus عن طريق تغيير صورته
في الحالات العادية، يمكنك ببساطة تحديث Milvus الخاص بك إلى الأحدث عن طريق تغيير صورته. ومع ذلك، لاحظ أنه سيكون هناك وقت تعطل معين عند ترقية ميلفوس بهذه الطريقة.
قم بتكوين ملف تهيئة على النحو التالي واحفظه باسم milvusupgrade.yaml:
apiVersion: milvus.io/v1beta1
kind: Milvus
metadata:
name: my-release
spec:
# Omit other fields ...
components:
image: milvusdb/milvus:v2.5.4
ثم قم بتشغيل ما يلي لتنفيذ الترقية:
kubectl patch -f milvusupgrade.yaml --patch-file milvusupgrade.yaml --type merge
ترحيل البيانات الوصفية
منذ الإصدار Milvus 2.2.0، أصبحت البيانات الوصفية غير متوافقة مع تلك الموجودة في الإصدارات السابقة. تفترض مقتطفات الأمثلة التالية ترقية من Milvus 2.1.4 إلى Milvus 2.5.4.
1. إنشاء ملف .yaml
لترحيل البيانات الوصفية
قم بإنشاء ملف ترحيل البيانات الوصفية. وفيما يلي مثال على ذلك. تحتاج إلى تحديد name
و sourceVersion
و targetVersion
في ملف التكوين. يقوم المثال التالي بتعيين name
إلى my-release-upgrade
، sourceVersion
إلى v2.1.4
، و targetVersion
إلى v2.5.4
. هذا يعني أنه ستتم ترقية مجموعة Milvus من الإصدار 2.1.4 إلى الإصدار 2.5.4.
apiVersion: milvus.io/v1beta1
kind: MilvusUpgrade
metadata:
name: my-release-upgrade
spec:
milvus:
namespace: default
name: my-release
sourceVersion: "v2.1.4"
targetVersion: "v2.5.4"
# below are some omit default values:
# targetImage: "milvusdb/milvus:v2.5.4"
# toolImage: "milvusdb/meta-migration:v2.2.0"
# operation: upgrade
# rollbackIfFailed: true
# backupPVC: ""
# maxRetry: 3
2. تطبيق التكوين الجديد
قم بتشغيل الأمر التالي لإنشاء التكوين الجديد.
$ kubectl create -f https://github.com/zilliztech/milvus-operator/blob/main/config/samples/beta/milvusupgrade.yaml
3. تحقق من حالة ترحيل البيانات الوصفية
قم بتشغيل الأمر التالي للتحقق من حالة ترحيل بيانات التعريف.
kubectl describe milvus release-name
تعني الحالة ready
في الإخراج أن حالة في الإخراج أن عملية ترحيل البيانات الوصفية ناجحة.
أو يمكنك أيضًا تشغيل kubectl get pod
للتحقق من جميع الكبسولات. إذا كانت جميع القرون ready
، فإن ترحيل البيانات الوصفية ناجح.
4. حذف my-release-upgrade
عند نجاح الترقية، احذف my-release-upgrade
في ملف YAML.