Ordo is a container orchestrator written in Go that provides a practical implementation of container orchestration concepts. It allows you to manage and schedule Docker containers across multiple nodes.
- Task Management: Create, stop, and monitor container tasks
- Node Management: Add and manage worker nodes
- Task Scheduling: Basic task scheduling across available nodes
- Status Monitoring: View task and node status
- Docker Integration: Direct integration with Docker for container management
- Go 1.16 or later
- Docker
- BoltDB (v1.3.1)
- chi (v5.0.3)
cmd/: Command-line interface implementationmanager/: Manager node implementationworker/: Worker node implementationtask/: Task management and schedulingstore/: Data persistence layerutils/: Utility functionsnode/: Node managementscheduler/: Task scheduling logicstats/: System statistics collection
- Clone the repository
- Install dependencies:
go mod download - Build the project:
go build - Run the manager:
./ordo manager - Add worker nodes:
./ordo node add <node-address> - Create tasks:
./ordo run <task-config>
{
"name": "example-task",
"image": "nginx:latest",
"ports": ["80:80"],
"env": ["ENV=production"]
}MIT License