You can install Seldon Deploy by leveraging the two installation types:
- Default Full Installation - Installer scripts for setting up a new cluster. It installs all Ecosystem frameworks, and configures Seldon Deploy with all the default values.
- Advanced Custom Installation - Installer scripts for customising installation in existing clusters, with instructions on how to leverage existing services to integrate with Seldon Deploy.
In order to start install Seldon Deploy and its ecosystem you will need to download the scripts and configure your environment.
Download installation scripts
TAG=0.7.0 && \ docker create --name=tmp-sd-container seldonio/seldon-deploy:$TAG && \ docker cp tmp-sd-container:/seldon-deploy-dist/seldon-deploy-install.tar.gz . && \ docker rm -v tmp-sd-container tar -xzf seldon-deploy-install.tar.gz
Setup config file / environment
A config file needs to be setup before the cluster install. Use the following script to check or create an initial file to fill in.
cd seldon-deploy-install ./check-config
If your cloud provider is not GKE then set a
CLOUD_PROVIDER env var. Options are ‘GKE’ (default if unset), ‘AWS’ or ‘AKS’. For another platform please contact seldon.
(see Configuration for more details)
Seldon Deploy installs into standard kubernetes clusters.
Ensure you have the correct current context set for your cluster, before starting the install.
https://hub.docker.com/ Access needs to be granted explicitly by Seldon in order to access resources such as docker images. A dockerhub account is needed and its credentials will be needed to setup imagePullSecrets.
https://kubernetes.io/docs/setup/ Seldon Deploy requires Kubernetes version greater than or equal to 1.12 and less than or equal to 1.16.
For GKE we suggest a cluster with 2 n1-standard-8 nodes. This is 16vCPUs and 60GB RAM.
On AWS we suggest 4 t2.xlarge. This is to allow headroom to run models and because the full install includes kubeflow, knative, istio and the elastic and grafana-prometheus stacks.
Fewer and larger worker nodes are suggested as this requires less resource for the control plane. On EKS in particular increasing resources for the control plane has to be done explicitly. Too few nodes can also lead to problems on EKS with pods per node.
To use GitOps a github.com or bitbucket.org account is needed. You also need to create a personal access token for HTTPS access. GitOps is optional, but suggested.
https://kubernetes.io/docs/tasks/tools/install-kubectl/ You must use a kubectl version that is within one minor version difference of your cluster.
https://helm.sh/docs/intro/install/ Version 3.0.0 or greater is required.