分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

k3s-io/k3s

运维与部署

把完整 Kubernetes 打包成单个二进制的轻量发行版,适合边缘、IoT、CI 和小型自建集群。

34,295
2,773
Go
Apache-2.0
创建于 8 年前

K3s 把一套完全兼容上游的 Kubernetes 发行版打包成不到 100 MB 的单个二进制,内存占用也比上游 Kubernetes 小。它面向边缘、IoT、CI、开发、ARM 和嵌入式场景,也适合那些难以承担完整集群运维的环境——项目自己把“没有 K8s 集群专家”列为适用情形之一 README。

它是什么,实际使用中有什么不同

K3s 是发行版而非 fork:它保留上游 Kubernetes 的行为,只维护一小部分补丁(README 称不到 1000 行),同时把运行集群所需组件打包进来 README。执行安装会启动 server 进程,把 kubeconfig 写入 /etc/rancher/k3s/k3s.yaml,并提供 kubectl、crictl、卸载脚本和一次清理脚本;worker 节点通过指定 server 地址和节点 token 加入 README。也就是说,你面对一台新 Linux 主机,得到的是可直接使用的单节点集群,然后再加入 agent,而不必分别搭建控制面、CNI、ingress 和存储。

两个设计最关键。第一,大多数非容器化组件跑在同一个进程里,这是内存占用降低的主要原因;二进制更小则部分来自去掉 in-tree 存储驱动和 in-tree 云厂商支持,对应替代方案是 CSI 和外部 cloud-controller-manager README。第二,默认数据存储是 sqlite3,同时通过 Kine 中间层支持 etcd3、MariaDB、MySQL 和 Postgres README。这让单机搭建非常简单,但多 server 集群的存储选型就成了需要认真决定的事。

内置组件与使用方式

打包组件包括 containerd/runc、Flannel CNI、CoreDNS、Metrics Server、Traefik ingress、Klipper 服务负载均衡、kube-router 网络策略、Helm controller、local-path 存储供给器和主机工具,这些都可以禁用或替换 README。好处是首次启动就能得到一个完整可用的环境,代价是默认选择有明确倾向:如果你要用别的 ingress 或 CNI,需要主动关掉内置的。

文档给出两条安装路径:install.sh 便捷脚本(会注册 systemd 或 openrc 服务)和手动下载 release 二进制 README。手动二进制支持 x86_64、armhf、arm64 和 s390x README。完整的安装、架构和 FAQ 见文档站 文档。

前提与限制

操作系统依赖被描述为极少——一个正常的内核和 cgroup 挂载即可——但它仍然是面向 Linux 的服务部署,不是任意主机上的通用容器运行时。版本跟随上游 Kubernetes:v1.27.4+k3s1 对应 Kubernetes v1.27.4,+k3sN 后缀允许在同一上游版本上追加发布;目标是一周内发布 patch、30 天内跟进新的 minor README。合规性通过 CNCF 一致性评审流程记录 一致性说明。安全问题通过邮件私下报告,而不是提交公开 issue README。README 没有说明嵌入式 etcd 或外部数据库集群的升级、回滚会怎样,生产使用前应查阅文档确认。

HotRepo 点评

这是一个成熟且使用广泛的项目(创建于 2018 年,2026-10-31 采样时为 34,290 stars,当天 +10)仓库。仅有一天趋势榜记录,不足以判断走势,热度也不代表适合你。更值得问的是它的默认选择是否契合你的场景:对边缘和小型自建集群是很强的匹配,当你需要特定的存储或云集成时则需要重新评估。

本文由 AI 根据项目 README 生成,更新于 2026年10月31日,以项目官方文档为准。

Hacker News 讨论

k3s: Lightweight Kubernetes
▲ 2 · 0 条评论 · 2022年11月3日