k3s-io/k3s

Lightweight Kubernetes

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 19 minutes ago
Added to GitGenius on August 14th, 2023
Created on May 31st, 2018
Open Issues & Pull Requests: 72 (+0)
Number of forks: 2,710
Total Stargazers: 33,806 (+0)
Total Subscribers: 288 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 75.3 days
90th percentile: 22.1 days
Tracked items: 2,396

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 88% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Work labelled "area/cni" is answered fastest, typically in under an hour, while "kind/enhancement" waits about 4 days. Only 8% of issues opened in the past year have been closed. Three people close 57% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 49
New in 7 days: 1
Closed in 7 days: 2
Avg open age: 482 days
Stale 30+ days: 37
Stale 90+ days: 29

Recent activity

Opened in 7 days: 1
Closed in 7 days: 2
Comments in 7 days: 10
Events in 7 days: 17

Top labels

  • status/stale (715)
  • kind/bug (371)
  • kind/enhancement (239)
  • kind/backport (203)
  • kind/documentation (130)
  • kind/question (110)
  • kind/task (72)
  • kind/dev-validation (66)

Detailed Description

K3s is a lightweight Kubernetes distribution designed to reduce the resource footprint and complexity of running Kubernetes in resource-constrained environments. Written in Go, it packages a fully conformant, production-ready Kubernetes distribution as a single binary under 100 MB in size, with memory consumption roughly half that of standard Kubernetes. The project is maintained by the k3s-io organization and serves use cases including edge computing, IoT deployments, CI/CD systems, development environments, ARM-based systems, and scenarios where simplified Kubernetes deployment is essential.

The core innovation of K3s lies in its architectural approach to reducing overhead. Rather than running Kubernetes components as separate processes, K3s bundles many components into a single process, eliminating duplication and reducing memory requirements. The distribution includes a curated set of integrated technologies: Containerd and runc for container runtime, Flannel for container networking, CoreDNS for DNS, Metrics Server for resource monitoring, Traefik for ingress, Klipper-lb as an embedded service load balancer, Kube-router for network policies, Helm-controller for Helm manifest deployment, Kine as a datastore abstraction layer, and Local-path-provisioner for storage. These components can be disabled or replaced with alternatives as needed.

The project removes two components from upstream Kubernetes: in-tree storage drivers and in-tree cloud providers, both of which have out-of-tree alternatives through CSI and CCM specifications. This removal achieves smaller binary size without sacrificing conformance or core functionality. The distribution is secured by default with reasonable security settings appropriate for lightweight environments and requires minimal OS dependencies beyond a functional kernel and cgroup mounts.

The repository demonstrates significant community engagement and active maintenance. The repository shares contributors with major projects including Microsoft's VSCode and TypeScript, as well as the Rust language project, indicating cross-pollination with other significant open-source ecosystems.

K3s maintains release cadence aligned with upstream Kubernetes, targeting patch releases within one week and minor releases within 30 days. Version numbering directly reflects upstream Kubernetes versions with a K3s-specific postfix, such as v1.27.4+k3s1. The project provides straightforward installation through an install script that configures systemd or openrc services, generates kubeconfig files, and installs supporting utilities like kubectl and crictl. The distribution supports multiple architectures including x86_64, armhf, arm64, and s390x. Community engagement occurs through Slack channels, GitHub issues, and monthly developer meetings held across multiple timezones, with meeting notes and recordings publicly available.