MaaS-Base supports cluster-based worker management and provides multiple cluster types. You can provision a cluster through a Cloud Provider such as DigitalOcean, or create a self-hosted cluster and add workers using Docker run commands. Alternatively, you can register all nodes in a self-hosted Kubernetes cluster as MaaS-Base workers.
Clusters page.Add Cluster button.Docker and Kubernetes for the Self-Host provider and DigitalOcean for the Cloud Provider.Base Configuration and Add Worker steps.Advanced cluster settings in the Base Configuration allow you to pre-configure the worker options using the Worker Configuration YAML.Basic Configuration step, the Name field is required and Description is optional.Save.Add Worker step, some options and validations are needed before adding a worker via the docker run command.Select the GPU vendor. Tested vendors include Nvidia, AMD, and Ascend. Experimental vendors include Hygon, Moore Threads, Iluvatar, Cambricon, and Metax. Click Next after selecting a vendor.Check Environment. A shell command is provided to verify your environment is ready to add a worker. Copy the script and run it in your environment. Click Next after the script returns OK.Specify arguments for the worker to be added. Provide the following arguments and click Next:
Specify the worker IP, or let the worker Auto-detect the Worker IP. Make sure the worker IP is accessible from the server.Additional Volume Mount for the worker container. The mount path can be used to reuse existing model files.Run command to create and start the worker container. Copy the bash script and run it in your environment.
The worker also can be added after the cluster is created.
Clusters page.Add Worker.Select the GPU vendor to Run command.Basic Configuration step, the Name field is required and Description is optional.Save.Select the GPU vendor. Tested vendors include Nvidia, AMD, and Ascend. Experimental vendors include Hygon, Moore Threads, Iluvatar, Cambricon, and Metax. Click Next after selecting a vendor.Check environment. A shell command is provided to verify that your environment is ready to add a worker. Copy the script and run it in your environment. Click Next after the script returns OK.Run command to apply the worker manifests. Copy the bash script and run it in an environment where kubectl is installed and kubeconfig is configured.The kubernetes can be registerred after the cluster is created.
Clusters page.Register Cluster.Select the GPU vendor to Run command.Basic Configuration step, the Name field is required and Description is optional. Create or select a Cloud Credential for communicating with the DigitalOcean API. Select a Region that supports GPU Droplets. You must also configure the MaaS-Base Server URL, which will be accessible from the newly created DigitalOcean Droplets.Next.Worker Pools. For each pool, Name, Instance Type, OS Image, Replicas, Batch Size, Labels and Volumes can be specified.Save after the worker pools are configured.The worker poll can be added after the cluster is created.
Clusters page.DigitalOcean cluster which you want to add worker pool.Add Worker PoolYou can manage worker pools for DigitalOcean clusters on the Clusters page:
Clusters page.Edit button and update the Name, Replica, Batch Size, and Labels as needed.Delete.Clusters page.Edit button.Name, Description and Worker Configuration YAML as needed.Save button.Clusters page.Delete.When creating or updating a cluster, you can predefine the worker configuration using the following example YAML:
# ========= log level & tools ===========
debug: false
tools_download_base_url: https://mirror.your_company.com
# ========= directories ===========
pipx_path: "/usr/local/bin/pipx"
cache_dir: "/var/lib/gpustack/cache"
log_dir: "/var/lib/gpustack/log"
bin_dir: "/var/lib/gpustack/bin"
# ========= container & image ===========
system_default_container_registry: "docker.io"
image_name_override: "gpustack/gpustack:main"
image_repo: "gpustack/gpustack"
# ========= service & networking ===========
service_discovery_name: "worker"
namespace: "gpustack-system"
worker_port: 10150
worker_metrics_port: 10151
disable_worker_metrics: false
service_port_range: "40000-40063"
ray_port_range: "41000-41999"
proxy_mode: worker
# ========= system reserved resources ===========
system_reserved:
ram: 0
vram: 0
# ========= huggingface ===========
huggingface_token: xxxxxx
enable_hf_transfer: false
The above YAML lists all currently supported options for the Worker Configuration YAML. For the meaning of each option, refer to the full MaaS-Base config file documentation.