ArcLibrary

k3s 与轻量 K8s 发行版

K8s 不是只能在大集群跑 —— k3s / k0s / Talos 让它装得下树莓派。

k3sK8s边缘
核心 · Key Idea

一句话:原版 K8s 重得像航空母舰;k3s 把控制平面打包成单二进制,100MB + 一行命令 就装好。家庭实验室 / 边缘 / IoT / 单机生产 它都能扛。

一行装 k3s#

# Master
curl -sfL https://get.k3s.io | sh -
 
# 自动写好 kubeconfig
sudo cat /etc/rancher/k3s/k3s.yaml
 
# 加 Worker(拿 master 的 token)
curl -sfL https://get.k3s.io | K3S_URL=https://master:6443 \
  K3S_TOKEN=xxx sh -

之后 kubectl get nodes 就能用 —— etcd / control plane / kubelet 全在一个二进制里

打个比方#

打个比方 · Analogy

原版 K8s 像完整的 IT 部门:架构师、DBA、SRE、网络工程师 —— 大公司适合。
k3s 像全栈工程师:一个人把活都干了,小团队 / 个人 / 边缘反而更利索。

主流轻量发行版#

k3s(Rancher / SUSE)
单二进制 + sqlite/etcd 可选 + Traefik / Servicelb 默认。最流行。
k0s
更"零依赖"理念,主控用 etcd 或 kine。
MicroK8s(Canonical)
snap 安装,Ubuntu 自家。
minikube / kind
本地开发用;不适合生产。
Talos Linux
把 K8s 当成"裸金属上的唯一应用",整机即不可变 OS。
RKE2 / OKE / GKE Autopilot
企业 / 云厂商托管。

怎么工作#

实操要点#

  • k3s 默认带很多电池:Traefik / metrics-server / local-path / ServiceLB —— 单机即用。不想要可以 --disable=traefik
  • 轻量但是真 K8s:API 兼容,Helm / kubectl / CRD / Operator 全都能用。
  • 数据库:节点数小于 30 用嵌入式 etcd 就行;更多节点选外部 etcd / mysql / postgres。
  • HA--cluster-init + 多 server 节点(≥3)做 control plane HA。
  • 边缘场景:Cattle Drive / Rancher Fleet 把数百集群按 GitOps 管。
  • 家庭实验室:3 台树莓派 + k3s + Tailscale = 100% 真实生产体验。
  • 更新curl get.k3s.io | sh -s - --version v1.30.x 或 system-upgrade-controller。

易混点#

k3s
单二进制,省内存。
生产 / 边缘 / 个人都行。
原版 K8s (kubeadm)
完整组件,灵活但复杂。
大集群 / 企业。

延伸阅读#