Kubernetes 发行版 - 对 kubeadm、k3s、MicroK8s、Minikube、Talos Linux 和 RKE2 的简要概述

Kubernetes 变体的简要概述

目录

比较 自托管 Kubernetes 发行版,用于在裸机或家庭服务器上部署,重点关注安装简便性、性能、系统要求和功能集。

在下面的比较中,我们主要关注每个 Kubernetes 发行版的安装简便性、系统要求和功能集。详细比较请参见:3 节点家庭实验室的 Kubernetes 发行版比较

办公室讨论

🧪 比较表 / TL;DR

功能 kubeadm k3s MicroK8s Minikube Talos Linux RKE2
安装简便性 ❌ 困难 ✅ 非常容易 ✅ 非常容易 ✅ 容易 ⚠️ 中等 ⚠️ 中等
资源使用 ⚠️ 中等 ✅ 低 ⚠️ 中等 ✅ 低 ⚠️ 中等 ⚠️ 中等
多节点支持 ✅ 手动 ✅ 内置 ✅ 内置 ❌ 有限 ✅ 声明式 ✅ 内置
家庭服务器友好性 ⚠️ 是 ✅ 优秀 ✅ 优秀 ⚠️ 有限 ⚠️ 是 ✅ 是
内置网络 ❌(需要 CNI) ✅(flannel/klipper-lb) ✅ flannel ✅ containerd bridge ✅ 是 ✅ 是
容器运行时 任选 containerd containerd containerd containerd containerd
操作系统依赖 任意 Linux 任意 Linux Ubuntu 最佳 任意 OS Talos 专用 任意 Linux

以下是详细分析:

🧩 用于自托管的主要 Kubernetes 变体

1. Kubernetes(原生)– kubeadm

  • 描述:使用 kubeadm 作为 引导工具 的官方上游 Kubernetes。

  • 最适合:通过艰苦方式学习 Kubernetes,生产级的 DIY 集群。

  • 系统要求

    • CPU:每个节点 ≥2 核。
    • RAM:≥2GB(推荐 ≥4GB)。
    • 磁盘:20GB+。
    • 操作系统:Linux(Ubuntu、CentOS、Debian 等)。
  • 安装难度:⚠️ 高级

    • 需要设置容器运行时(containerd、CRI-O)、网络(CNI 插件)等。
    • 灵活但非常手动。
  • 裸机适用性:良好,但需要较高努力。


2. k3s(由 Rancher 提供)

  • 描述k3s 是一个轻量级的 Kubernetes 发行版,专为物联网、边缘计算和家庭实验室优化。

  • 最适合:家庭实验室、树莓派、资源有限的机器。

  • 系统要求

    • CPU:最低 1 核。
    • RAM:最低 512MB(推荐 1GB+)。
    • 磁盘:最低 1GB(理想 10GB+)。
  • 安装难度:✅ 非常容易

    • 单个二进制文件,通过一个脚本安装。
    • 包含 containerd、简化网络等。
  • 裸机适用性:优秀。

  • 特殊功能

    • 默认使用 SQLite 作为数据存储(也可使用 etcd 或外部数据库)。
    • 内置服务负载均衡器(klipper-lb)。
    • 通过 /var/lib/rancher/k3s/server/manifests 自动部署清单。

3. MicroK8s(由 Canonical 提供)

  • 描述MicroK8s 是一个单包 Kubernetes 发行版,设计用于简单性和模块化。

  • 最适合:开发人员、测试集群、小型生产环境。

  • 系统要求

    • CPU:1+ 核。
    • RAM:最低 2GB(理想 4GB+)。
    • 磁盘:20GB+。
    • 操作系统:Linux(最佳在 Ubuntu 上)。
  • 安装难度:✅ 非常容易

    • snap install microk8s --classic
    • 包含内置附加组件(仪表板、Istio、Knative 等)。
  • 裸机适用性:优秀,尤其是在 Ubuntu 上。

  • 注意事项

    • 使用自己的网络(flanneld)。
    • 支持通过 microk8s add-node 自动 HA 集群。

4. Minikube

  • 描述Minikube 是一个使用虚拟机或容器在本地运行 Kubernetes 的工具。

  • 最适合:仅用于本地开发。

  • 系统要求

    • CPU:2+ 核。
    • RAM:2GB+。
    • 磁盘:20GB+。
  • 安装难度:✅ 非常容易

    • 通过 minikube start 安装。
  • 裸机适用性:有限(需要虚拟化)。

  • 不适合多节点或真实部署


5. Talos Linux

  • 描述Talos Linux 是一个专为运行 Kubernetes 而设计的安全、不可变操作系统。

  • 最适合:寻求安全、GitOps 风格设置的高级用户。

  • 系统要求

    • CPU:2+ 核。
    • RAM:2GB+。
    • 磁盘:8GB+。
  • 安装难度:⚠️ 中等至困难

    • 需要生成配置、启动 Talos OS,并通过 talosctl 安装 Kubernetes。
  • 裸机适用性:对专业人士良好;不适合初学者。

  • 注意事项

    • 通过 Talos API 声明式管理操作系统。
    • 没有 SSH,也没有包管理器。

6. Flatcar Container Linux + kubeadm

  • 描述Flatcar Container Linux 是一个专为容器设计的不可变操作系统,类似于 CoreOS。

  • 最适合:安全性和最小操作系统足迹。

  • 系统要求:与 kubeadm 类似。

  • 安装难度:⚠️ 高级

    • 通过 kubeadm 在 Flatcar 上安装 Kubernetes。
  • 裸机适用性:对高级设置良好。


7. RKE / RKE2(Rancher Kubernetes Engine)

  • 描述Rancher 自己的 Kubernetes 安装器。

  • 最适合:Rancher 管理的集群、混合环境。

  • 系统要求

    • 与 kubeadm 类似。
  • 安装难度:⚠️ 中等

    • RKE 基于 Docker。
    • RKE2 是更新的、强化版本(使用 containerd、SELinux 等)。
  • 裸机适用性:对熟悉 Rancher 的用户良好。


🔧 建议

初学者 / 家庭实验室 / 树莓派集群

  • 使用k3sMicroK8s
  • 原因:非常简单,资源使用低,设置快速。

中级用户 / 想学习 Kubernetes 内部机制

  • 使用kubeadmRKE2
  • 原因:更接近上游;更手动,但高度教育性和可定制性。

安全重点 / 不可变基础设施

  • 使用Talos Linux
  • 原因:安全、GitOps 原生、操作系统级别控制,但学习曲线陡峭。

⚙️ 安装示例 – k3s

curl -sfL https://get.k3s.io | sh -

完成。Kubeconfig 文件位于 /etc/rancher/k3s/k3s.yaml

有用的链接

本文中提到的 Kubernetes 发行版