Kubernetes-Kubesim

Kubernetes-Kubesim is a lightweight simulator of a Kubernetes-style control plane built with Flask and Docker. It simulates node registration, heartbeat handling, pod scheduling, and node failure/recovery. The simulator can be controlled via both a simple CLI and a RESTful API.

Project Context

This project was created as part of the Cloud Computing course at PES University, where we explored key concepts in distributed systems, containerization, and Kubernetes-like architectures. The objective was to implement a lightweight simulator to understand node management, pod scheduling, and fault tolerance, which are core features of the Kubernetes control plane.

Features

  • Node Registration & Heartbeat Handling
    Register nodes, manage heartbeats, and simulate node failure/recovery in a Kubernetes-like environment.

  • Pod Scheduling
    Launch and manage pods with defined resource requirements (e.g., CPU allocation).

  • Persistent Storage
    Supports data persistence by binding volumes for maintaining state between runs.

  • CLI and RESTful API
    Easily interact with the simulator using either the command line or HTTP API.

Tech Stack

  • Frontend: Flask (Python)
  • Containerization: Docker
  • Database: SQLite (cluster state storage)
  • Simulator Interface: CLI & RESTful API

Repository

Explore the full project here: Kubernetes-Kubesim GitHub Repository


Feel free to fork, contribute, or report any issues. Simulate Kubernetes-like control planes with Kubernetes-Kubesim!