6个在本地机器上运行 Kubernetes 的工具


Kubernetes 是一项庞大而复杂的技术,它显然需要一些时间和奉献精神来解决。没有供应商锁定意味着无论您在哪个托管云平台上使用它,它都运行相同。这意味着在本地使用它与在云上使用它没有什么不同。
有多种工具可以在本地机器上运行 Kubernetes,但基本上可以归结为两种方法:

  1. 从单个二进制包运行它
  2. 在 Docker (DinD) 中使用 Docker 将其作为容器运行

Kubernetes 市场:在我们继续讨论所有工具之前,如果您将其安装arkade在您的机器上将是有益的。它将帮助您使用单个命令获取这些工具。
curl -sLS https://get.arkade.dev | sudo sh
 
此处列出的所有工具或多或少都提供相同的功能,包括但不限于:

  1. 多节点集群
  2. 持久卷
  3. 联网
  4. 证书
  5. 裸机支持
  6. 仪表板
  7. Kubernetes 版本
  8. 附加组件
  9. 跨平台
  10. 跟踪上游 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 实例有所帮助。