Setting up

Prerequisites (Docker)

Warning

DSS is not responsible for setting up your Docker daemon

The prerequisites for running workloads in Docker are:

  • You need to have an existing Docker daemon. The docker command on the DSS machine must be fully functional and usable by the user running DSS. That includes the permission to build images, and thus access to a Docker socket.

For Docker execution, you may or may not need to push images to an image registry. Pushing images to an image registry is required if you plan to run workloads on multiple Docker daemons, or if you plan to build images on a Docker daemon and to run workloads on another Docker daemon.

If you plan to push images to an image registry:

  • The local docker command must have permission to push images to your image registry
  • All other docker daemons need to have permission to pull images from your image registry

If you do not have an image registry and want to run workloads on a remote Docker daemon, or if you only have a local Docker client but the daemon is remote, you will need to build the base image (see below) with the corresponding environment variables:

export DOCKER_HOST=host_of_my_remote_daemon
# If you are using TLS to securely connect to the remote daemon:
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/path/to/docker/cert/directory/

For more information about Docker and TLS, refer to the Docker documentation.

Prerequisites (Kubernetes)

Warning

DSS is not responsible for starting and managing your Kubernetes cluster, which must already exist.

The prerequisites for running workloads in Kubernetes are:

  • You need to have an existing Kubernetes cluster. The kubectl command on the DSS machine node must be fully functional and usable by the user running DSS.
  • The local docker command must be usable by the user running DSS. That includes the permission to build images, and thus access to a Docker socket
  • You need to have an image registry, accessible by your Kubernetes cluster
  • The local docker command must have permission to push images to your image registry

Other prerequisites

  • Your DSS machine must have direct outgoing Internet access in order to install packages
  • Your containers must have direct outgoing Internet access in order to install packages

Build the base image

Before you can deploy to Docker or Kubernetes, at least one “base image” must be constructed.

Warning

After each upgrade of DSS, you must rebuild all base images

From the DSS data directory, run

./bin/dssadmin build-container-exec-base-image

Run things in Docker or Kubernetes

You then need to create Container execution configurations. In Administration > Settings > Container exec, click “Add another config” to create a new configuration. You can choose between Docker or Kubernetes and specify an image repository if needed (in which case you’ll need to push the base image using the eponymous button).

Container execution configuration can be chosen:

  • In the project settings. In that case, it will apply by default to all project activities that can run on containers
  • In a recipe’s advanced settings
  • In the “Execution environment” tab of in-memory machine learning Design screen