🚀 جرب Zilliz Cloud، الـ Milvus المدارة بالكامل، مجاناً — تجربة أداء أسرع بـ 10 أضعاف! جرب الآن>>

milvus-logo
LFAI
  • Home
  • Blog
  • نشر Milvus على Kubernetes: دليل تفصيلي لمستخدمي Kubernetes خطوة بخطوة

نشر Milvus على Kubernetes: دليل تفصيلي لمستخدمي Kubernetes خطوة بخطوة

  • Engineering
September 26, 2024
Gael Gu

Milvus عبارة عن قاعدة بيانات متجهة مفتوحة المصدر مصممة لتخزين كميات هائلة من البيانات غير المنظمة وفهرستها والبحث فيها من خلال تمثيلات متجهة، مما يجعلها مثالية للتطبيقات التي تعتمد على الذكاء الاصطناعي، مثل البحث عن التشابه، والبحث الدلالي، والجيل المعزز للاسترجاع(RAG)، ومحركات التوصيات، ومهام التعلم الآلي الأخرى.

ولكن ما يجعل Milvus أكثر قوة هو تكامله السلس مع Kubernetes. إذا كنت من هواة Kubernetes، فأنت تعلم أن المنصة مثالية لتنسيق الأنظمة الموزعة القابلة للتطوير. تستفيد Milvus استفادة كاملة من قدرات Kubernetes، مما يتيح لك نشر مجموعات Milvus الموزعة وتوسيع نطاقها وإدارتها بسهولة. سيوفر هذا الدليل إرشادات واضحة وخطوة بخطوة لإعداد Milvus على Kubernetes باستخدام مشغل Milvus.

المتطلبات الأساسية

قبل أن نبدأ، تأكد من توفر المتطلبات الأساسية التالية:

  • مجموعة Kubernetes قيد التشغيل. إذا كنت تختبر محليًا، فإن minikube هو خيار رائع.

  • kubectl مثبتة ومهيأة للتفاعل مع مجموعة Kubernetes الخاصة بك.

  • الإلمام بمفاهيم Kubernetes الأساسية مثل البودات والخدمات وعمليات النشر.

الخطوة 1: تثبيت Minikube (للاختبار المحلي)

إذا كنت بحاجة إلى إعداد بيئة Kubernetes محلية، فإن minikube هي الأداة المناسبة لك. تعليمات التثبيت الرسمية موجودة على صفحة بدء تشغيل minikube.

1. تثبيت الميني كيوب

قم بزيارة صفحة إصدارات minikube وقم بتنزيل الإصدار المناسب لنظام التشغيل الخاص بك. بالنسبة لنظام التشغيل macOS/Linux، يمكنك استخدام الأمر التالي:

$ curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
$ sudo install minikube-linux-amd64 /usr/local/bin/minikube && rm minikube-linux-amd64

2. ابدأ تشغيل مينيكيوب

$ minikube start

3. تفاعل مع المجموعة

يمكنك الآن التفاعل مع مجموعاتك باستخدام kubectl داخل minikube. إذا لم تكن قد قمت بتثبيت kubectl، فسيقوم الميني كيوب بتنزيل الإصدار المناسب بشكل افتراضي.

$ minikube kubectl cluster-info

بدلاً من ذلك، يمكنك إنشاء رابط رمزي إلى ثنائي الميني كيوب المسمى kubectl لتسهيل الاستخدام.

$ sudo ln -s $(which minikube) /usr/local/bin/kubectl
$ kubectl cluster-info

الخطوة 2: تكوين فئة التخزين

في Kubernetes، تحدد StorageClass أنواع التخزين المتاحة لأحمال العمل الخاصة بك، مما يوفر المرونة في إدارة تكوينات التخزين المختلفة. قبل المتابعة، يجب عليك التأكد من توفر StorageClass الافتراضي في مجموعتك. إليك كيفية التحقق من ذلك وتكوين واحدة إذا لزم الأمر.

1. تحقق من فئات التخزين المثبتة

لمعرفة فئات التخزين المتاحة في مجموعة Kubernetes الخاصة بك، قم بتشغيل الأمر التالي:

$ kubectl get sc

سيعرض هذا الأمر قائمة بفئات التخزين المثبتة في مجموعتك. إذا تم تكوين فئة تخزين افتراضية بالفعل، فسيتم تمييزها بـ (default).

2. تكوين فئة تخزين افتراضية (إذا لزم الأمر)

إذا لم يتم تعيين أي فئة تخزين افتراضية، يمكنك إنشاء واحدة من خلال تعريفها في ملف YAML. استخدم المثال التالي لإنشاء فئة تخزين افتراضية:

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
 name: default-storageclass
provisioner: k8s.io/minikube-hostpath

يعرّف تكوين YAML هذا ملف YAML StorageClass يسمى default-storageclass يستخدم أداة التزويد minikube-hostpath ، التي يشيع استخدامها في بيئات التطوير المحلية.

3. تطبيق StorageClass

بمجرد إنشاء الملف default-storageclass.yaml ، قم بتطبيقه على مجموعتك باستخدام الأمر التالي:

$ kubectl apply -f default-storageclass.yaml

سيؤدي هذا إلى إعداد StorageClass الافتراضي لمجموعتك، مما يضمن إدارة احتياجات التخزين الخاصة بك بشكل صحيح في المستقبل.

الخطوة 3: تثبيت Milvus باستخدام مشغل Milvus

يعمل مشغل Milvus على تبسيط عملية نشر Milvus على Kubernetes، وإدارة النشر والتوسع والتحديثات. قبل تثبيت مشغل Milvus، ستحتاج إلى تثبيت مدير الشهادات، الذي يوفر شهادات لخادم خطاف الويب الذي يستخدمه مشغل Milvus.

1. تثبيت مدير الشهادات

يتطلب مشغل Milvus مدير الشهادات لإدارة الشهادات من أجل الاتصال الآمن. تأكد من تثبيت الإصدار 1.1.3 من cert-manager أو إصدار أحدث. لتثبيته، قم بتشغيل الأمر التالي:

$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/download/v1.5.3/cert-manager.yaml

بعد التثبيت، تحقق من تشغيل كبسولات cert-manager من خلال تنفيذ:

$ kubectl get pods -n cert-manager

2. تثبيت مشغل ميلفوس

بمجرد تشغيل مدير الشهادات وتشغيله، يمكنك تثبيت مشغل ميلفوس. قم بتشغيل الأمر التالي لنشره باستخدام kubectl:

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

يمكنك التحقق مما إذا كانت جراب مشغل ميلفوس قيد التشغيل باستخدام الأمر التالي:

$ kubectl get pods -n milvus-operator

3. نشر مجموعة ميلفوس العنقودية

بمجرد تشغيل جراب مشغل Milvus، يمكنك نشر مجموعة Milvus مع المشغل. يقوم الأمر التالي بنشر مجموعة Milvus مع مكوناتها وتوابعها في كبسولات منفصلة باستخدام التكوينات الافتراضية:

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

لتخصيص إعدادات Milvus، ستحتاج إلى استبدال ملف YAML بملف YAML الخاص بالتكوين الخاص بك. بالإضافة إلى تحرير الملف أو إنشائه يدويًا، يمكنك استخدام أداة تحجيم Milvus لضبط التكوينات ثم تنزيل ملف YAML المقابل.

لتخصيص إعدادات Milvus، يجب عليك استبدال ملف YAML الافتراضي بتكوينك الخاص. يمكنك إما تحرير هذا الملف يدويًا أو إنشاء هذا الملف، وتخصيصه وفقًا لمتطلباتك الخاصة.

وبدلاً من ذلك، يمكنك استخدام أداة تحجيم Milvus Sizing Tool للحصول على نهج أكثر انسيابية. تسمح لك هذه الأداة بضبط الإعدادات المختلفة، مثل تخصيص الموارد وخيارات التخزين، ثم تنزيل ملف YAML المقابل مع التكوينات التي تريدها. يضمن ذلك تحسين نشر ميلفوس الخاص بك لحالة الاستخدام الخاصة بك.

الشكل: أداة تحجيم ميلفوس

قد يستغرق الأمر بعض الوقت لإنهاء عملية النشر. يمكنك التحقق من حالة مجموعة ميلفوس الخاصة بك عبر الأمر:

$ kubectl get milvus my-release

بمجرد أن يصبح عنقود ميلفوس الخاص بك جاهزًا، يجب أن تكون جميع البودات في عنقود ميلفوس قيد التشغيل أو مكتملة:

$ kubectl get pods

الخطوة 4: الوصول إلى مجموعة ميلفوس العنقودية الخاصة بك

بمجرد نشر مجموعة Milvus العنقودية الخاصة بك، تحتاج إلى الوصول إليها عن طريق إعادة توجيه منفذ محلي إلى منفذ خدمة Milvus. اتبع هذه الخطوات لاسترداد منفذ الخدمة وإعداد إعادة توجيه المنفذ.

1. احصل على منفذ الخدمة

أولاً، حدد منفذ الخدمة باستخدام الأمر التالي. استبدل <YOUR_MILVUS_PROXY_POD> باسم جراب وكيل Milvus الخاص بك، والذي يبدأ عادةً بـ my-release-milvus-proxy-:

$ kubectl get pod <YOUR_MILVUS_PROXY_POD> --template ='{{(index (index .spec.containers 0).ports 0).containerPort}}{{"\n"}}'

سيعيد هذا الأمر رقم المنفذ الذي تستخدمه خدمة ميلفوس الخاصة بك.

2. إعادة توجيه المنفذ

للوصول إلى مجموعة ميلفوس محليًا، قم بإعادة توجيه منفذ محلي إلى منفذ الخدمة باستخدام الأمر التالي. استبدل <YOUR_LOCAL_PORT> بالمنفذ المحلي الذي تريد استخدامه و <YOUR_SERVICE_PORT> بمنفذ الخدمة الذي تم استرجاعه في الخطوة السابقة:

$ kubectl port-forward --address 0.0.0.0 service/my-release-milvus <YOUR_LOCAL_PORT>:<YOUR_SERVICE_PORT>

يسمح هذا الأمر بإعادة توجيه المنفذ للاستماع على جميع عناوين IP للجهاز المضيف. إذا كنت تحتاج فقط إلى الخدمة للاستماع على localhost ، يمكنك حذف الخيار --address 0.0.0.0.

بمجرد إعداد إعادة توجيه المنفذ، يمكنك الوصول إلى مجموعة ميلفوس الخاصة بك عبر المنفذ المحلي المحدد لمزيد من العمليات أو عمليات التكامل.

الخطوة 5: الاتصال ب Milvus باستخدام Python SDK

مع تشغيل مجموعة Milvus الخاصة بك، يمكنك الآن التفاعل معها باستخدام أي من أدوات تطوير البرمجيات الخاصة ب Milvus. في هذا المثال، سنستخدم في هذا المثال PyMilvus، وهي مجموعة أدوات تطوير البرمجيات الخاصة ب Milvus Python SDK، للاتصال بالمجموعة وإجراء العمليات الأساسية.

1. تثبيت PyMilvus

للتفاعل مع Milvus عبر Python، تحتاج إلى تثبيت الحزمة pymilvus:

$ pip install pymilvus

2. الاتصال بميلفوس

فيما يلي نموذج برنامج نصي من بايثون يتصل بمجموعة ميلفوس ويوضح كيفية تنفيذ العمليات الأساسية مثل إنشاء مجموعة.

from pymilvus import MilvusClient
# Connect to the Milvus server
client = MilvusClient(uri="http://localhost:<YOUR_LOCAL_PORT>")
# Create a collection
collection_name = "example_collection"
if client.has_collection(collection_name):
   client.drop_collection(collection_name)
client.create_collection(
   collection_name=collection_name,
   dimension=768,  # The vectors we will use in this demo has 768 dimensions
)

الشرح:

  • الاتصال ب Milvus: يتصل البرنامج النصي بخادم Milvus الذي يعمل على localhost باستخدام المنفذ المحلي الذي قمت بإعداده في الخطوة 4.

  • إنشاء مجموعة: يتحقق البرنامج النصي مما إذا كانت المجموعة المسماة example_collection موجودة بالفعل، ويسقطها إذا كان الأمر كذلك، ثم ينشئ مجموعة جديدة ذات أبعاد 768.

ينشئ هذا النص البرمجي اتصالاً بمجموعة ميلفوس وينشئ مجموعة، ويعمل كنقطة بداية لعمليات أكثر تعقيدًا مثل إدراج المتجهات وإجراء عمليات بحث عن التشابه.

الخاتمة

يؤدي نشر Milvus في إعداد موزع على Kubernetes إلى فتح إمكانات قوية لإدارة البيانات المتجهة واسعة النطاق، مما يتيح قابلية التوسع السلس والتطبيقات عالية الأداء القائمة على الذكاء الاصطناعي. باتباع هذا الدليل، تكون قد تعلمت كيفية إعداد Milvus باستخدام مشغل Milvus، مما يجعل العملية مبسطة وفعالة.

بينما تستمر في استكشاف Milvus، فكّر في توسيع نطاق مجموعتك لتلبية الطلبات المتزايدة أو نشرها على المنصات السحابية مثل Amazon EKS أو Google Cloud أو Microsoft Azure. ولتحسين الإدارة والمراقبة، توفر أدوات مثل Milvus Backup وBirdwatcher وAttu دعمًا قيّمًا للحفاظ على سلامة وأداء عمليات النشر الخاصة بك.

أنت الآن جاهز للاستفادة من الإمكانات الكاملة لـ Milvus على Kubernetes - نشر سعيد! 🚀

المزيد من الموارد

Like the article? Spread the word

استمر في القراءة