k3s
by
k3s-io

Description: Lightweight Kubernetes

View on GitHub ↗

Summary Information

Updated 12 minutes ago
Added to GitGenius on August 14th, 2023
Created on May 31st, 2018
Open Issues & Pull Requests: 125 (+0)
Number of forks: 2,678
Total Stargazers: 33,444 (+0)
Total Subscribers: 286 (+0)

Issue Activity (beta)

Open issues: 80
New in 7 days: 2
Closed in 7 days: 2
Avg open age: 308 days
Stale 30+ days: 42
Stale 90+ days: 34

Recent activity

Opened in 7 days: 1
Closed in 7 days: 1
Comments in 7 days: 10
Events in 7 days: 16

Top labels

  • status/stale (715)
  • kind/bug (368)
  • kind/enhancement (237)
  • kind/backport (199)
  • kind/documentation (130)
  • kind/question (110)
  • kind/task (72)
  • kind/dev-validation (63)

Repository Insights (GitGenius)

Median issue/PR response: 0.0 hours
Mean response time: 90.7 days
90th percentile: 20.0 days
Tracked items: 2,472

Most active contributors

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.

K3s explicitly maintains itself as a distribution rather than a fork, meaning it stays closely aligned with upstream Kubernetes while maintaining only a small set of patches under 1000 lines. 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. GitGenius tracking data shows 2471 tracked issues and pull requests with a median response latency of 0.0 hours, indicating rapid community responsiveness. The most active contributor, brandond, has logged 3265 events, followed by fmoral2 with 1168 events and aganesh-suse with 939 events. The most frequently used issue labels are kind/backport with 190 occurrences, status/stale with 85, and kind/enhancement with 65, reflecting an active backporting and enhancement process. 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.

k3s
by
k3s-iok3s-io/k3s

Repository Details

Fetching additional details & charts...