نشر مجموعة Milvus العنقودية على GKE
Milvus هي قاعدة بيانات متجهة سحابية أصلية ويمكن نشرها على بيئات سحابية مختلفة. يرشدك هذا الدليل إلى كل التفاصيل حول إعداد Milvus على منصة Google Cloud Platform (GCP).
نشر مجموعة Milvus العنقودية على GCP
قبل البدء
لنشر Milvus على GCP، تأكد من أن
وجود مشروع موجود بالفعل في حساب GCP الخاص بك.
لإنشاء مشروع، راجع إنشاء المشاريع وإدارتها. اسم المشروع المستخدم في هذا الدليل هو milvus-testing-nonprod.
لقد قمتَ بتثبيت gcloud CLI و kubectl و Helm محليًا أو قررت استخدام Cloud Shell المستند إلى المتصفح بدلاً من ذلك.
لقد قمت بتهيئة gcloud CLI باستخدام بيانات اعتماد حساب GCP الخاص بك.
قم بإعداد الشبكة
لضمان أمان Milvus، تحتاج إلى إنشاء شبكة افتراضية معزولة منطقيًا في مشروع GCP الخاص بك. يقوم الأمر التالي بإنشاء VPC.
gcloud compute networks create milvus-network \
--project=milvus-testing-nonprod \
--subnet-mode=auto \
--mtu=1460 \
--bgp-routing-mode=regional
لتسهيل عملك، تحتاج أيضًا إلى إعداد العديد من قواعد جدار الحماية للسماح بحركة المرور الخارجية عبر ICMP و RDP و SSH بالإضافة إلى حركة المرور داخل VPC.
gcloud compute firewall-rules create milvus-network-allow-icmp \
--project=milvus-testing-nonprod \
--network=projects/milvus-testing-nonprod/global/networks/milvus-network \
--description="Allows ICMP connections from any source to any instance on the network." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=icmp
gcloud compute firewall-rules create milvus-network-allow-internal \
--project=milvus-testing-nonprod \
--network=projects/milvus-testing-nonprod/global/networks/milvus-network \
--description="Allows connections from any source in the network IP range to any instance on the network using all protocols." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=10.128.0.0/9 \
--action=ALLOW --rules=all
gcloud compute firewall-rules create milvus-network-allow-rdp \
--project=milvus-testing-nonprod \
--network=projects/milvus-testing-nonprod/global/networks/milvus-network \
--description="Allows RDP connections from any source to any instance on the network using port 3389." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=tcp:3389
gcloud compute firewall-rules create milvus-network-allow-ssh \
--project=milvus-testing-nonprod \
--network=projects/milvus-testing-nonprod/global/networks/milvus-network \
--description="Allows TCP connections from any source to any instance on the network using port 22." \
--direction=INGRESS \
--priority=65534 \
--source-ranges=0.0.0.0/0 \
--action=ALLOW \
--rules=tcp:22
أخيرًا، تحتاج إلى السماح بحركة المرور الواردة إلى مثيل Milvus الذي سننشئه لاحقًا على المنفذ 19530.
gcloud compute firewall-rules create allow-milvus-in \
--project=milvus-testing-nonprod \
--description="Allow ingress traffic for Milvus on port 19530" \
--direction=INGRESS \
--priority=1000 \
--network=projects/milvus-testing-nonprod/global/networks/milvus-network \
--action=ALLOW \
--rules=tcp:19530 \
--source-ranges=0.0.0.0/0
توفير مجموعة Kubernetes
في هذا الدليل، سنستخدم خدمة محرك Google Kubernetes Engine (GKE) لتوفير مجموعة Kubernetes مع عقدتين في المنطقة us-west1-a. كل عقدة عبارة عن جهاز ظاهري e2-standard-4 Compute Engine يقوم بتشغيل صورة COS_CONTAINERD.
يُنصح باستخدام أنواع الأجهزة التي توفر ذاكرة لا تقل عن 16 جيجابايت لضمان استقرار الخدمة.
gcloud container clusters create "milvus-cluster-1" \
--project "milvus-testing-nonprod" \
--zone "us-west1-a" \
--workload-pool "milvus-testing-nonprod.svc.id.goog" \
--no-enable-basic-auth \
--cluster-version "1.28.10-gke.1075001" \
--release-channel "regular" \
--machine-type "c2-standard-4" \
--image-type "COS_CONTAINERD" \
--disk-type "pd-standard" \
--disk-size "100" \
--max-pods-per-node "110" \
--num-nodes "3" \
--enable-ip-alias \
--network "projects/milvus-testing-nonprod/global/networks/milvus-network" \
--subnetwork "projects/milvus-testing-nonprod/regions/us-west1/subnetworks/milvus-network"
سيستغرق الأمر بضع دقائق حتى يتم تشغيل مجموعة Kubernetes العنقودية. بمجرد أن تصبح المجموعة جاهزة، استخدم الأمر التالي لجلب بيانات الاعتماد الخاصة بها حتى تتمكن من تشغيل الأوامر kubectl
في جهازك الطرفي للتواصل مع المجموعة عن بُعد.
gcloud container clusters get-credentials milvus-cluster-1 --zone "us-west1-a"
استخدم Google Cloud Storage (GCS) كمخزن كائنات خارجي
- إنشاء دلو.
gcloud storage buckets create gs://milvus-testing-nonprod --project=milvus-testing-nonprod --default-storage-class=STANDARD --location=us-west1 --uniform-bucket-level-access
- قم بإنشاء مفتاح وصول المستخدم والمفتاح السري، يجب عليك الانتقال إلى صفحة تخزين مشروعك. في الشريط الجانبي الأيسر من لوحة التحكم، انقر على Google Cloud Storage ثم الإعدادات. حدد علامة التبويب قابلية التشغيل البيني. إذا لم تكن قد قمت بتمكينه بالفعل، فانقر على الوصول القابل للتشغيل البيني. ثم انقر على زر إنشاء مفتاح لإنشاء.
مفاتيح وصول GCP لحساب المستخدم الخاص بك
- أضف القيم.yaml
cluster:
enabled: true
service:
type: LoadBalancer
minio:
enabled: false
externalS3:
enabled: true
host: storage.googleapis.com
port: 443
rootPath: milvus/my-release
bucketName: milvus-testing-nonprod
cloudProvider: gcp
useSSL: true
accessKey: "<access-key>"
secretKey: "<secret-key>"
نشر ميلفوس
الآن مجموعة Kubernetes جاهزة. لننشر ميلفوس الآن.
helm repo add milvus https://zilliztech.github.io/milvus-helm/
helm repo update
helm install -f values.yaml my-release milvus/milvus
في الأوامر السابقة، نضيف الريبو الخاص بمخططات Milvus Helm محليًا ونقوم بتحديث الريبو لجلب أحدث المخططات. ثم نقوم بتثبيت مثيل Milvus ونسميه الإصدار الخاص بي.
لاحظ قيمة التهيئة service.type
، والتي تشير إلى أننا نرغب في تعريض مثيل Milvus من خلال موازن تحميل من الطبقة الرابعة.
إذا كنت ترغب في تعريض مثيل Milvus الخاص بك من خلال موازن تحميل من الطبقة السابعة، اقرأ هذا.
تحقق من النشر
بمجرد تشغيل جميع البودات، قم بتشغيل الأمر التالي للحصول على عنوان IP الخارجي.
kubectl get services|grep my-release-milvus|grep LoadBalancer|awk '{print $4}'
مرحباً ميلفوس
يُرجى الرجوع إلى Hello Milvus، قم بتغيير قيمة المضيف إلى عنوان IP الخارجي، ثم قم بتشغيل الكود.
ما التالي
إذا كنت تريد معرفة كيفية نشر ميلفوس على السحب الأخرى: