Kubernetes 是一项庞大而复杂的技术,它显然需要一些时间和奉献精神来解决。没有供应商锁定意味着无论您在哪个托管云平台上使用它,它都运行相同。这意味着在本地使用它与在云上使用它没有什么不同。有多种工具可以在本地机器上运行 Kubernetes,但基本上可以归结为两种方法: 在我们继续讨论所有工具之前,如果您在机器上安装了 arkade,这将是有益的。它将帮助您使用单个命令获取这些工具。此处列出的所有工具或多或少都提供相同的功能,包括但不限于:k3s 是 Rancher Labs 的轻量级 Kubernetes 发行版。它专门针对在 IoT 和 Edge 设备上运行,这意味着它非常适合您的 Raspberry Pi 或虚拟机。它带有一个仅 <40 MB 的二进制文件,占用的 RAM 低至 500 MB。 k0s k0s 是块上的最新条目。顾名思义,您可能认为它是 k3s 的精简版,但它是来自一家名为 Mirantis 的完全不同公司的完全不同的发行版。与名称相反,它有一个更大的二进制文件,150 MB+。
它可以作为二进制文件或 DinD 模式运行。 k0s 非常重视安全性,开箱即用,它符合 FIPS 合规性。虽然,一个新的发行版,k0s 已经达到了生产就绪状态,所以开发使用不会有问题。 MicroK8s 是 Ubuntu 背后的公司 Canonical 的 Kubernetes 发行版。你已经看到了这一点;它只能使用 snap 安装。它带有大量附加组件,如 Fluentd、Grafana 和 Prometheus。如果您使用的是使用 snap 的 Ubuntu 或其衍生产品,那么使用 MicroK8s 会感到宾至如归。在 Docker 内部运行 Docker(有人开始?)是引导 Kubernetes 的一种流行方式。 Docker 的隔离特性使得在单台机器上运行多节点集群变得轻而易举,并且还确保运行的实例不会影响机器本身。正如标题所暗示的,你需要在你的机器上安装 Docker 才能走这条路。 minikube 尽管运行在 Docker 和类似的容器技术之上,但 minikube 的运行方式非常灵活,并支持多种虚拟化驱动程序,使其能够适应不同的计算环境。其中包括 KVM2、Virtualbox、Podman、Hyperkit、Hyper-V 等等。 Docker 中的 KinD Kubernetes (KinD) 类似于 minikube,但它不会生成 VM 来运行集群,并且只能与 Docker 一起使用。在大多数情况下,KinD 的花里胡哨最少,并提供直观的开发人员体验,可以立即开始使用 Kubernetes。
k3d k3d 基本上是在 Docker 内部运行 k3s。与在本地机器上使用 k3s 相比,它提供了一个即时的好处,即多节点集群。在 Docker 内部运行,我们可以轻松生成 k3s 节点的多个实例。无论您选择单个二进制包还是 DinD 方法,Kubernetes 都非常易于访问。对于新学习者来说,入门门槛低,反馈循环是即时的。我希望本文对决定使用哪种工具来运行本地 Kubernetes 实例有所帮助。