Nebulous
A cross-cloud container orchestrator
Think of it as a Kubernetes that can span clouds with a focus on accelerated compute and AI workloads. Performant and lightweight via Rust.
Installation
|
Usage
Login to an API server
Create a container on runpod with 4 A100 GPUs
kind: Container
metadata:
name: pytorch-test
namespace: nebu-test
image: pytorch/pytorch:latest
command: nvidia-smi
platform: runpod
env_vars:
- key: HELLO
value: world
volumes:
- source: s3://foo/bar
destination: /quz/baz
bidirectional: true
continuous: true
accelerators:
- "4:A100"
Create a container on EC2 with 1 L40s GPU
List all containers
Get one container
Delete a container
List available accelerators
List available platforms
Get the IP address of a container
SSH into a container
Namespaces
Namespaces provide a means to segregate groups of resources across clouds. Resources within a given namespace are network isolated using Tailnet, and can be accessed by simply using thier name as the hostname e.g. http://foo:8080.
Services
Services provide a means to expose containers on a stable IP address.
Volumes
Volumes provide a means to persist data accross clouds. Nebulous uses Rclone to sync data between clouds backed by an object storage provider.
Organizations
Nebulous is multi-tenant from the ground up. Here is an example of creating a container under the Agentsea organization.
Meters
Nebulous natively supports metered billing through OpenMeter using the meters field.
meters:
- cost: 0.1
unit: second
currency: USD
metric: runtime
Contributing
Please open an issue or submit a PR.