Skip to content

Latest commit

Β 

History

History
79 lines (63 loc) Β· 3.05 KB

File metadata and controls

79 lines (63 loc) Β· 3.05 KB

Distributed Command Executor

A Kubernetes-native system for executing commands at scale across distributed worker nodes.

Features

  • Parallel Execution - Run commands across multiple workers simultaneously
  • Kubernetes Native - First-class CRD support with kubectl integration
  • Auto-Scaling - Dynamically scales workers based on queue depth
  • Fast - gRPC-based communication for minimal latency
  • Secure - Command allowlists/blocklists, RBAC integration

Quick Start

# Submit a job via CLI
./bin/distctl run echo "Hello, World!"

# Or via Kubernetes CRD
kubectl apply -f - <<EOF
apiVersion: distexec.io/v1
kind: DistributedJob
metadata:
  name: hello
spec:
  command: "echo"
  args: ["Hello from K8s!"]
  parallelism: 5
EOF

# Check status
kubectl get distributedjobs
./bin/distctl list

Installation

# Build
make build

# Deploy to Kubernetes
kubectl apply -f deploy/k8s/

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   distctl   β”‚         β”‚            MASTER               β”‚
β”‚    (CLI)    │──gRPC──▢│  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β”‚  β”‚Schedulerβ”‚  β”‚ Load Balancerβ”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β”‚       β”‚               β”‚         β”‚
                        β”‚  β”Œβ”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”  β”‚
                        β”‚  β”‚      Node Registry        β”‚  β”‚
                        β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β”‚ gRPC
                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                 β–Ό                      β–Ό                      β–Ό
          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
          β”‚ Worker 1 β”‚           β”‚ Worker 2 β”‚           β”‚ Worker N β”‚
          β”‚(executor)β”‚           β”‚(executor)β”‚           β”‚(executor)β”‚
          β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Documentation

Topic Link
Architecture specs/00-OVERVIEW.md
Components specs/01-COMPONENTS.md
API Reference specs/02-RPC-PROTOCOL.md
Scaling specs/03-DYNAMIC-SCALING.md

License

MIT