Files
service-catalog/charts/kubeflow/contrib/seldon/README.md
T
2025-01-13 02:31:27 +00:00

2.2 KiB

Seldon Core

Seldon Core is a framework to deploy your machine learning models on Kubernetes at scale.

Requirements

  • Kubernetes 1.18 - 1.24

Support for Kubernetes 1.25 is currently part of SeldonIO/seldon-core#4172

Install Seldon Core Operator

  • The yaml assumes you will install in kubeflow namespace
  • You need to have installed istio first
kustomize build seldon-core-operator/base | kubectl apply -n kubeflow -f -

Updating

See UPGRADE.md

Testing

make test

Overview

We can create a test model once the "Install Seldon Operator" is configured

# Create namespace for model
kubectl create namespace seldon

We can create an echo model with the following command:

kubectl apply -f - << ENDapiVersion: machinelearning.seldon.io/v1
kind: SeldonDeployment
metadata:
  name: echo
  namespace: seldon
spec:
  predictors:
  - name: default
    replicas: 1
    graph:
      name: classifier
      type: MODEL
    componentSpecs:
    - spec:
        containers:
        - image: seldonio/echo-model:1.17.1
          name: classifier
END

We can verify that model is running:

kubectl get pods -n seldon

NAME                                         READY   STATUS    RESTARTS   AGE
echo-default-0-classifier-679cb5fb68-qd4nm   2/2     Running   0          25m

Also we can verify that the correct virtualservice was created:

kubectl get virtualservice -n seldon

NAME   GATEWAYS                        HOSTS   AGE
echo   ["kubeflow/kubeflow-gateway"]   ["*"]   42m

Finally we can send a request (you will need to fetch the Dex Auth Token / Cookie):

export CLUSTER_IP=# Your cluster IP
export SESSION=# Your dex session

curl -H "Content-Type: application/json" -H "Cookie: authservice_session=${SESSION}" \
   -d '{"data": {"ndarray":[[1.0, 2.0, 5.0]]}}' \
   http://{CLUSTER_IP}/seldon/seldon/echo/api/v1.0/predictions

{"data":{"names":["t:0","t:1","t:2"],"ndarray":[[1.0,2.0,5.0]]},"meta":{"metrics":[{"key":"mycounter","type":"COUNTER","value":1},{"key":"mygauge","type":"GAUGE","value":100},{"key":"mytimer","type":"TIMER","value":20.2}],"requestPath":{"classifier":"seldonio/echo-model:1.17.1"}}}