rusternetes
by
calfonso

Description: kubernetes, reimplemented in Rust

View calfonso/rusternetes on GitHub ↗

Summary Information

Updated 45 minutes ago
Added to GitGenius on April 1st, 2026
Created on March 9th, 2026
Open Issues/Pull Requests: 0 (+0)
Number of forks: 0
Total Stargazers: 3 (+0)
Total Subscribers: 0 (+0)

Detailed Description

Rusternetes is a comprehensive, ground-up reimplementation of Kubernetes, the popular container orchestration system, written entirely in the Rust programming language. This project aims to provide a fully functional and conformant Kubernetes distribution, built from scratch rather than relying on wrappers or partial mocks of the original Go codebase. The project boasts a substantial codebase, comprising 155,000 lines of Rust code spread across nine crates, and includes a robust suite of over 1,300 tests.

The core functionality of Kubernetes is replicated in Rusternetes, encompassing the essential control plane and node components. The control plane includes an API server, scheduler, and controller manager. The API server, built using the Axum web framework, handles all Kubernetes API requests, providing RESTful endpoints and supporting features like Server-Sent Events for efficient resource watching. It implements core Kubernetes API functionality, including CRUD operations, server-side apply, strategic merge patching, field and label selectors, RBAC authorization, and TLS/mTLS security. The scheduler, responsible for assigning pods to nodes, utilizes a plugin architecture to implement features such as node/pod affinity, taints and tolerations, resource-based scoring, and priority classes. The controller manager houses 31 distinct controllers, each responsible for managing a specific Kubernetes resource or function, such as deployments, replica sets, stateful sets, services, and persistent volumes.

The node components consist of the Kubelet and Kube-Proxy. The Kubelet, the agent running on each node, manages container lifecycles, probes, and volume mounts. It integrates with the Docker API via the `bollard` crate, enabling it to create, start, stop, and manage containers. It also supports features like liveness, readiness, and startup probes, volume mounts (emptyDir, hostPath, projected, configMap, secret, downwardAPI), container resource limits, and lifecycle hooks. The Kube-Proxy, responsible for service networking, uses iptables to route traffic to services. It supports ClusterIP, NodePort, and LoadBalancer service types, along with session affinity.

Rusternetes also includes a pluggable storage backend, currently offering both an etcd backend for production use and a memory backend for testing. The etcd backend leverages optimistic concurrency to ensure data consistency. The project is designed with a modular structure, with separate crates for the API server, scheduler, controller manager, Kubelet, Kube-Proxy, storage, and common utilities. This modularity facilitates maintainability, testing, and potential future extensions.

A key focus of the project is conformance with the official Kubernetes API. Rusternetes is actively tested against the official Kubernetes conformance test suite using Sonobuoy. The project's README highlights the progress of these conformance tests, showing the number of tests passed and the percentage of tests passing. The project is actively working to improve its conformance, with a dedicated fix tracker to address identified issues.

The project provides comprehensive documentation, including quick start guides, architectural overviews, development instructions, and guides on conformance, high availability, security, CRDs, networking, and storage. The project also offers a Docker Compose setup for easy cluster deployment and testing, along with scripts for bootstrapping the cluster and running conformance tests. The project is licensed under the Apache-2.0 license, making it open-source and freely available for use and contribution. The project is actively developed and welcomes contributions from the community.

rusternetes
by
calfonsocalfonso/rusternetes

Repository Details

Fetching additional details & charts...