brady19990517 / K8s-Consensus

A Kubernetes distributed scheduler based on Ratio Consensus Algorithm.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

K8s-Distributed-Scheduler

This project implements a distributed scheudler that runs a distributed consensus scheduling algorithm.

Installation and Usage

After installing a Kubernetes Cluster.

Run

python src/server/server.py

on the master node. The created server process will create the schedulers on the worker nodes and run the scheduling process automatically.

Folder Structure

.
├── src                           # The code for the distributed scheduler
│   ├── client          
│   │   ├── client.py             # Scheduling Logic includes the distributed implementation of consensus
        ├── MyOwnPeer2PeerNode.py # The TCP/IP server inside scheduler
        └── ...
│   ├── server
│   │   ├── server.py             # Controls scheduling process
    │   ├── MyOwnPeer2PeerNode.py # The TCP/IP server inside server
    │   └── ...          
│   ├── deployments               # Contains all K8s Deployment files
│   └── docker-compose.yaml       # Build scheudler container image         
│
├── images                        # The images used in report
├── plotting                      # Python scripts to generate images from logs
├── logs                    
├── cluster_script                # Bash scripts for different purposes (e.g. create a K8s cluster)

About

A Kubernetes distributed scheduler based on Ratio Consensus Algorithm.


Languages

Language:Python 98.8%Language:Shell 0.9%Language:Dockerfile 0.3%