Deployment Overview

Rūsternetes supports four deployment modes: a full compose cluster with etcd, lighter compose clusters with SQLite or Redis (via Rhino), and a single all-in-one binary that embeds every component in one process. Choose the mode that matches your needs.

Deployment Modes at a Glance

Feature Full Cluster (etcd) SQLite Cluster (Rhino) Redis Cluster (Rhino) All-in-One Binary
Orchestration podman compose or docker compose podman compose or docker compose podman compose or docker compose Single process
Storage backend etcd (distributed KV) SQLite via Rhino gRPC Redis via Rhino gRPC Embedded SQLite or Redis
Node count Multi-node (2+ kubelets) Multi-node (2+ kubelets) Multi-node (2+ kubelets) Single node
HA support Yes (3-node etcd, leader election) No Yes (Redis Sentinel / Cluster) No
TLS Yes (auto-generated certs) Yes (auto-generated certs) Yes (auto-generated certs) Optional (--tls flag)
Container runtime Yes (Podman or Docker) Yes (Podman or Docker) Yes (Podman or Docker) Only for pods (not the binary)
External dependencies etcd, Podman or Docker Rhino, Podman or Docker Redis, Rhino, Podman or Docker Podman or Docker (for pod containers)
State persistence etcd data volume Single SQLite file Redis (AOF/RDB) Single SQLite file or Redis
Conformance tested Yes (90% pass rate) Yes Yes Yes
Production ready Yes Suitable for non-HA Suitable for non-HA (HA with Sentinel) Edge / dev / CI
Resource footprint ~1 GB RAM ~600 MB RAM ~600 MB RAM ~200 MB RAM

Architecture: Full Cluster (etcd)

The standard deployment runs each Kubernetes component as a separate container, communicating over an internal bridge network. etcd provides distributed, consistent state storage with support for watches and transactions.

        
full cluster architecture
# Compose: Full Cluster with etcd +-----------------------------------------------------+ | rusternetes-net (bridge) | | | | +-----------+ +-----------+ +---------------+ | | | etcd | |api-server | | controller- | | | | :2379 | | :6443 | | manager | | | +-----------+ +-----------+ +---------------+ | | | | | +---------+---------+ | | | | | | +-----------+---+ +----------+----+ | | | scheduler | | kube-proxy | | | +---------------+ | (host net) | | | +--------------+ | | +---------------+ +---------------+ | | | kubelet | | kubelet | | | | (node-1) | | (node-2) | | | +---------------+ +---------------+ | +-----------------------------------------------------+

Architecture: SQLite Cluster (Rhino)

Replaces etcd with Rhino, an etcd-compatible gRPC server backed by SQLite. The API server and all other components connect to Rhino exactly as they would to etcd. The entire cluster state lives in a single SQLite file.

        
sqlite cluster architecture
# Compose: SQLite Cluster with Rhino +-----------------------------------------------------+ | rusternetes-net (bridge) | | | | +-----------+ +-----------+ +---------------+ | | | rhino | |api-server | | controller- | | | | :2379 | | :6443 | | manager | | | | (sqlite) | +-----------+ +---------------+ | | +-----------+ | | | +---------+---------+ | | | | | | +-----------+---+ +----------+----+ | | | scheduler | | kube-proxy | | | +---------------+ | (host net) | | | +--------------+ | | +---------------+ +---------------+ | | | kubelet | | kubelet | | | | (node-1) | | (node-2) | | | +---------------+ +---------------+ | +-----------------------------------------------------+

Architecture: Redis Cluster (Rhino)

Replaces etcd with Rhino backed by Redis. Components connect to Rhino the same way as in the SQLite cluster, but state is stored in a Redis server. Redis can optionally provide HA via Sentinel or Cluster mode.

        
redis cluster architecture
# Compose: Redis Cluster with Rhino +-----------------------------------------------------+ | rusternetes-net (bridge) | | | | +-----------+ +-----------+ +---------------+ | | | redis | | rhino | | controller- | | | | :6379 | | :2379 | | manager | | | +-----------+ | (redis) | +---------------+ | | +-----------+ | | | | | +---------+---------+ | | | | | | | +-----------+ +-----+-----+ +----------+----+ | | |api-server | | scheduler | | kube-proxy | | | | :6443 | +-----------+ | (host net) | | | +-----------+ +--------------+ | | +---------------+ +---------------+ | | | kubelet | | kubelet | | | | (node-1) | | (node-2) | | | +---------------+ +---------------+ | +-----------------------------------------------------+

Architecture: All-in-One Binary

Every component runs as a concurrent tokio task inside a single Rust process. Storage is an embedded SQLite or Redis database (no gRPC hop for SQLite; direct Redis connection for Redis). The binary still requires a container runtime (Podman or Docker) for running pod containers, but the Kubernetes control plane itself is entirely self-contained.

        
all-in-one architecture
# Single Process: All-in-One Binary +---------------------------------------------------+ | rusternetes (single binary) | | | | +-------------+ +-----------+ +--------------+ | | | api-server | | scheduler | | controller- | | | | (axum) | | (task) | | manager | | | +------+------+ +-----------+ | (31 ctrl) | | | | +--------------+ | | +------+------+ +-----------+ | | | kubelet | | kube-proxy| | | | (task) | | (task) | | | +-------------+ +-----------+ | | | | | +------+------+ | | | SQLite or | # embedded SQLite or Redis | | | Redis | | | | (rhino) | | | +-------------+ | +---------------------------------------------------+ | +------+------+ | Container | # Podman/Docker API for pod containers +-------------+

Decision Guide

Use this flowchart to pick the right deployment mode for your use case.

Choose the Full Cluster (etcd) when:

Choose the SQLite Cluster (Rhino) when:

Choose the Redis Cluster (Rhino) when:

Choose the All-in-One Binary when:

TIP

All three modes expose the same Kubernetes API. You can use kubectl, client-go, or any Kubernetes client library with any deployment mode. Your workload YAML files work identically across all modes.

Quick Comparison

Concern Recommendation
Fastest to start All-in-One Binarycargo run or download the binary
Most production-like Compose + etcd — separate containers, TLS, multi-node
Easiest to operate Compose + SQLite — no etcd, state is one file
Lightweight with HA option Compose + Redis — no etcd, optional Redis Sentinel HA
Highest availability HA mode — 3-node etcd, leader election
Lowest resource usage All-in-One Binary — ~200 MB RAM for the full stack
Best for CI/CD All-in-One Binary — no compose setup, instant startup