Kubeflow وخطوط ML

Kubeflow: منصة ML لـ Kubernetes

4 دقيقة للقراءة

Kubeflow يوفر نظاماً بيئياً قابلاً للتركيب لـ ML من البداية للنهاية على Kubernetes. مع استعداد المجتمع لتخرج CNCF، أصبح المنصة القياسية لخطوط ML الإنتاجية.

النظام البيئي لـ Kubeflow

بنية المكونات

┌─────────────────────────────────────────────────────────────────┐
│                    منصة Kubeflow                                 │
├─────────────────────────────────────────────────────────────────┤
│  واجهة المستخدم                                                  │
│  ┌─────────────────────────────────────────────────────────────┐│
│  │ لوحة مركزية │ واجهة Notebooks │ واجهة Pipelines │ واجهة Katib ││
│  └─────────────────────────────────────────────────────────────┘│
├─────────────────────────────────────────────────────────────────┤
│  مكونات ML                                                       │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────┐          │
│  │ Notebooks│ │ Pipelines│ │  Katib   │ │ Training │          │
│  │(Jupyter) │ │  (KFP)   │ │(AutoML)  │ │ Operators│          │
│  └──────────┘ └──────────┘ └──────────┘ └──────────┘          │
│  ┌──────────┐ ┌──────────┐ ┌──────────┐                        │
│  │  KServe  │ │  Feast   │ │  Model   │                        │
│  │(الخدمة) │ │(الميزات)│ │ Registry │                        │
│  └──────────┘ └──────────┘ └──────────┘                        │
├─────────────────────────────────────────────────────────────────┤
│  خدمات المنصة                                                    │
│  ┌──────────────────────────────────────────────────────────── ┐│
│  │ Istio (شبكة الخدمة) │ Dex (المصادقة) │ MinIO (التخزين)     ││
│  └─────────────────────────────────────────────────────────────┘│
└─────────────────────────────────────────────────────────────────┘

المكونات الرئيسية

المكونالغرضحالة الاستخدام
Notebooksالتطوير التفاعلياستكشاف البيانات، النماذج الأولية
Pipelinesتنسيق سير العملخطوط ML من البداية للنهاية
Katibضبط المعاملات الفائقةAutoML، NAS
Training Operatorsالتدريب الموزعPyTorch، TensorFlow، MPI
KServeخدمة النماذجنقاط نهاية الاستدلال
Feastمخزن الميزاتإدارة الميزات

تثبيت Kubeflow

التثبيت المستقل

# تثبيت kustomize
curl -s "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" | bash

# استنساخ manifests Kubeflow
git clone https://github.com/kubeflow/manifests.git
cd manifests

# تثبيت Kubeflow (التثبيت الكامل)
while ! kustomize build example | kubectl apply -f -; do
  echo "إعادة المحاولة..."
  sleep 10
done

# التحقق من التثبيت
kubectl get pods -n kubeflow

deployKF (موصى به للإنتاج)

# deployKF يوفر نشر Kubeflow قائم على GitOps
# يستخدم ArgoCD لإدارة دورة الحياة

# تثبيت ArgoCD
kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# تطبيق مولد deployKF
kubectl apply -f https://raw.githubusercontent.com/deployKF/deployKF/main/argocd-application.yaml

خيارات مزود السحابة

المزودالخدمةالميزات
AWSAmazon SageMaker on EKSnotebooks مُدارة، خطوط
GCPVertex AI Pipelinesتكامل GKE أصلي
AzureAzure ML on AKSKubeflow مُدار

لوحة Kubeflow المركزية

الوصول إلى اللوحة

# إعادة توجيه المنفذ للوصول للوحة
kubectl port-forward svc/istio-ingressgateway -n istio-system 8080:80

# الوصول على http://localhost:8080
# بيانات الاعتماد الافتراضية: user@example.com / 12341234

تعدد المستأجرين مع الملفات الشخصية

# إنشاء ملف شخصي للمستخدم (namespace + RBAC)
apiVersion: kubeflow.org/v1
kind: Profile
metadata:
  name: ml-team-alpha
spec:
  owner:
    kind: User
    name: alice@example.com
  resourceQuotaSpec:
    hard:
      cpu: "32"
      memory: "128Gi"
      nvidia.com/gpu: "8"
      persistentvolumeclaims: "10"
# تطبيق الملف الشخصي
kubectl apply -f ml-team-alpha-profile.yaml

# عرض الملفات الشخصية
kubectl get profiles

Kubeflow Notebooks

إنشاء خادم Notebook

apiVersion: kubeflow.org/v1
kind: Notebook
metadata:
  name: pytorch-notebook
  namespace: ml-team-alpha
spec:
  template:
    spec:
      containers:
      - name: pytorch
        image: kubeflownotebookswg/jupyter-pytorch-cuda-full:v1.8.0
        resources:
          requests:
            cpu: "2"
            memory: "8Gi"
            nvidia.com/gpu: "1"
          limits:
            cpu: "4"
            memory: "16Gi"
            nvidia.com/gpu: "1"
        volumeMounts:
        - name: workspace
          mountPath: /home/jovyan
      volumes:
      - name: workspace
        persistentVolumeClaim:
          claimName: pytorch-notebook-pvc

صور Notebook الجاهزة

الصورةالإطاردعم GPU
jupyter-pytorch-fullPyTorchنعم
jupyter-tensorflow-fullTensorFlowنعم
jupyter-scipySciPy/Pandasلا
codeserver-pythonVS Codeاختياري

Training Operators

PyTorch Training Operator

apiVersion: kubeflow.org/v1
kind: PyTorchJob
metadata:
  name: pytorch-distributed
  namespace: ml-team-alpha
spec:
  pytorchReplicaSpecs:
    Master:
      replicas: 1
      restartPolicy: OnFailure
      template:
        spec:
          containers:
          - name: pytorch
            image: pytorch/pytorch:2.1-cuda12.1
            command: ["python", "train.py"]
            resources:
              limits:
                nvidia.com/gpu: 1
    Worker:
      replicas: 3
      restartPolicy: OnFailure
      template:
        spec:
          containers:
          - name: pytorch
            image: pytorch/pytorch:2.1-cuda12.1
            command: ["python", "train.py"]
            resources:
              limits:
                nvidia.com/gpu: 1

Training Operators أخرى

# تدريب TensorFlow
apiVersion: kubeflow.org/v1
kind: TFJob
metadata:
  name: tf-distributed
spec:
  tfReplicaSpecs:
    Chief:
      replicas: 1
    Worker:
      replicas: 2
    PS:
      replicas: 1
---
# MPI Job (لـ Horovod)
apiVersion: kubeflow.org/v1
kind: MPIJob
metadata:
  name: horovod-training
spec:
  slotsPerWorker: 1
  mpiReplicaSpecs:
    Launcher:
      replicas: 1
    Worker:
      replicas: 4

التالي، سنتعمق في Kubeflow Pipelines لبناء سير عمل ML قابلة للتكرار. :::

اختبار

الوحدة 3: Kubeflow وخطوط ML

خذ الاختبار
نشرة أسبوعية مجانية

ابقَ على مسار النيرد

بريد واحد أسبوعياً — دورات، مقالات معمّقة، أدوات، وتجارب ذكاء اصطناعي.

بدون إزعاج. إلغاء الاشتراك في أي وقت.