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