dstack
is a lightweight alternative to Kubernetes, designed specifically for managing the development, training, and
deployment of AI models at any scale.
dstack
is easy to use with any cloud provider (AWS, GCP, Azure, OCI, Lambda, TensorDock, Vast.ai, RunPod, etc.) or
any on-prem clusters.
If you already use Kubernetes, dstack
can be used with it.
dstack
supports NVIDIA GPU
and Google Cloud TPU
out of the box.
- [2024/07] dstack 0.18.8: GCP volumes (Release)
- [2024/07] dstack 0.18.7: Fleets, RunPod volumes, dstack apply, and more (Release)
- [2024/05] dstack 0.18.4: Google Cloud TPU, and more (Release)
- [2024/05] dstack 0.18.3: OCI, and more (Release)
- [2024/05] dstack 0.18.2: On-prem clusters, private subnets, and more (Release)
Before using dstack
through CLI or API, set up a dstack
server.
If you want the dstack
server to run containers or manage clusters in your cloud accounts (or use Kubernetes),
create the ~/.dstack/server/config.yml file and configure backends.
Once the ~/.dstack/server/config.yml
file is configured, proceed to start the server:
$ pip install "dstack[all]" -U
$ dstack server
Applying ~/.dstack/server/config.yml...
The admin token is "bbae0f28-d3dd-4820-bf61-8f4bb40815da"
The server is running at http://127.0.0.1:3000/
Note It's also possible to run the server via Docker.
The dstack
server can run anywhere: on your laptop, a dedicated server, or in the cloud. Once it's up, you
can use either the CLI or the API.
To point the CLI to the dstack
server, configure it
with the server address, user token, and project name:
$ pip install dstack
$ dstack config --url http://127.0.0.1:3000 \
--project main \
--token bbae0f28-d3dd-4820-bf61-8f4bb40815da
Configuration is updated at ~/.dstack/config.yml
If you want the
dstack
server to run containers on your on-prem servers, use fleets.
Before using
dstack
, install the server and configure backends.
dstack
supports the following configurations:
- Dev environments — for interactive development using a desktop IDE
- Tasks — for scheduling jobs (incl. distributed jobs) or running web apps
- Services — for deployment of models and web apps (with auto-scaling and authorization)
- Fleets — for managing cloud and on-prem clusters
- Volumes — for managing persisted volumes
- Gateways — for configuring the ingress traffic and public endpoints
Configuration can be defined as YAML files within your repo.
Apply the configuration either via the dstack apply
CLI command or through a programmatic API.
dstack
automatically manages provisioning, job queuing, auto-scaling, networking, volumes, run failures,
out-of-capacity errors, port-forwarding, and more — across clouds and on-prem clusters.
For additional information and examples, see the following links:
You're very welcome to contribute to dstack
.
Learn more about how to contribute to the project at CONTRIBUTING.md.