Deployment
Embedded, single-node, and Kubernetes deployment options.
Embedded Mode
Run Krishiv entirely in-process. No external services required. Best for development, testing, and embedding in an application.
let session = Session::embedded().await?;
session = ks.Session.embedded()
Single-Node Daemon
Runs a coordinator + one executor on a single host. Requires the single-node feature. Provides restart-durable state via RocksDB and local disk shuffle.
cargo build -p krishiv --features single-node --release
# Start the daemon
./target/release/krishiv server start --coordinator-addr 0.0.0.0:50051 --durability single-node-durable --checkpoint-dir /var/krishiv/checkpoints
# Connect from a client
export KRISHIV_COORDINATOR=http://localhost:50051
Kubernetes Deployment
Requires the k8s feature. A Kubernetes operator manages KrishivCluster CRDs and spawns coordinator and executor pods.
cargo build -p krishiv --features k8s --release
# Apply CRD and operator
kubectl apply -f deploy/krishiv-crd.yaml
kubectl apply -f deploy/krishiv-operator.yaml
# Create a cluster
kubectl apply -f - <<EOF
apiVersion: krishiv.io/v1
kind: KrishivCluster
metadata:
name: my-cluster
spec:
coordinators: 1
executors: 4
durabilityProfile: distributed-durable
checkpointStorage:
uri: s3://my-bucket/checkpoints/
shuffleStorage:
uri: s3://my-bucket/shuffle/
EOF
Key Environment Variables
| Variable | Description |
|---|---|
KRISHIV_COORDINATOR | Flight endpoint for remote client sessions. |
KRISHIV_DURABILITY_PROFILE | dev-local | single-node-durable | distributed-durable |
KRISHIV_CHECKPOINT_DIR | Checkpoint directory path (local or object-store URI). |
KRISHIV_SHUFFLE_DIR | Local shuffle spill directory. |
KRISHIV_MAX_PARALLELISM | Target task parallelism (default: CPU count). |
KRISHIV_LOG | Log filter string (e.g. info,krishiv_scheduler=debug). |
KRISHIV_METRICS_PORT | Prometheus metrics scrape port. |
Health and Metrics
GET /healthz— coordinator liveness check.GET /readyz— coordinator readiness check.GET /metrics— Prometheus metrics endpoint (ifKRISHIV_METRICS_PORTis set).