Minikube vs. kind vs. k3s vs k3d vs MicroK8s

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

1. minikube

minikube 是一个 Kubernetes SIG 项目已经启动三年多了。它采用生成虚拟机的方法该虚拟机本质上是一个单节点 K8s 集群。由于支持大量管理程序它可以在所有主要操作系统上使用。这也允许您并行创建多个实例。

从用户的角度来看minikube 是一个非常适合初学者的工具。您使用 启动集群minikube start等待几分钟您kubectl就可以开始了。要指定 Kubernetes 版本您可以使用该--kubernetes-version标志。可在此处找到受支持版本的列表。默认情况下Minikube 创建一个单节点集群但您可以在启动 Minikube 时使用 --nodes 标志设置更多节点。

Minikube 的主要优点是它非常轻便并且非常易于安装和使用。

Minikube 的主要缺点是它仅为测试而设计。它不是运行生产级集群的实用解决方案。

如果您是 Kubernetes 的新手minikube 提供的对其仪表板的一流支持可能会对您有所帮助。通过一个简单minikube dashboard的应用程序将打开让您很好地了解集群中发生的一切。这是通过minikube 的插件系统实现的它可以帮助您将诸如HelmNvidia GPUDocker Registry之类的东西与您的集群集成。

2. k3s

K3s 是由Rancher Labs开发的 Kubernetes 的缩小版本。通过删除可有可无的功能遗留、alpha、非默认、树内插件和使用轻量级组件例如 sqlite3 而不是 etcd3他们实现了显着的缩减。这会生成一个大小约为 60 MB 的二进制文件。它还可以在任何操作系统Linux、Windows 和 macOS上运行。

如果你想将节点添加到你的集群中你必须单独在它们上设置 K3s 并将它们加入到你的集群中。在这方面K3s 使用起来比 Minikube 和 MicroK8s 稍微繁琐一些两者都提供了更简单的添加节点的过程。

另一方面K3s 被设计成一个成熟的、生产就绪的 Kubernetes 发行版同时也是轻量级的。

一项突出的功能称为自动部署。它允许您通过将 Kubernetes 清单和 Helm 图表放在特定目录中来部署它们。K3s 监视变化并在没有任何进一步交互的情况下负责应用它们。这对于 CI 管道和 IoT 设备都是 K3s 的目标用例特别有用。只需创建/更新您的配置K3s 就会确保您的部署保持最新。

3. k3d

k3d 是一个 开源 实用程序旨在轻松地在 docker 容器中运行高度可用的轻量级 k3s 集群。

使用 k3d您可以轻松创建单节点和多节点 k3s 集群以在 Kubernetes 上进行无缝本地开发和测试。通过在 Kubernetes 中运行k3d 还可以帮助您轻松扩展和缩减工作负载。
k3d 是 k3s 的包装器顾名思义就是 docker 上的 k3s。
它还提供了额外的功能例如代码的热重载、构建部署和使用多服务器集群测试 Kubernetes 应用程序。
k3d 部署基于 Docker 的 k3s Kubernetes 集群而 k3s 部署基于虚拟机的 Kubernetes 集群。
K3d 提供了一个更具可扩展性的 k3s 版本这可能使其优于标准 k3s。
k3d 似乎是 k3s 的更灵活和改进的版本尽管它们的功能和用法相似。
另一个不同之处是k3s 的设计易于在生产环境中部署这使其成为在本地环境中为生产级工作负载运行 Kubernetes 的最受欢迎的选择之一而 k3d 更适合在更小的环境中使用例如 Raspberry Pi、IoT、和边缘设备。

4. Kind

Kind 是另一个 Kubernetes SIG 项目但与 minikube 相比有很大不同。顾名思义它将集群移动到 Docker 容器中。与生成 VM 相比这导致启动速度明显加快。

创建集群与 minikube 的方法非常相似。执行kind create cluster然后你就可以开始了。通过使用不同的名称 ( --name) kind您可以并行创建多个实例。

我个人喜欢的一个功能是能够将我的本地图像直接加载到集群中。这为我节省了一些额外的步骤即每次我想尝试我的更改时设置注册表和推送我的图像。简单kind load docker-image my-app:latest来说图像就可以在我的集群中使用。很不错

如果您正在寻找一种以编程方式创建 Kubernetes 集群的方法请亲切地您一直在等待这个不是吗 😛发布其在后台使用的 Go 包

5. MicroK8s

Microk8sCanonical发布的一款小型、轻量级、完全符合标准的Kubernetes发行版。这款简约的发行版专注于简洁和性能。由于占用资源少Microk8s可以轻松部署在物联网和边缘设备端。MicroK8s是目前最小、最快与Kubernetes全面兼容的集群系统主要用于工作站和小型团队但是目前镜像并没有与snap打包在一起还在gcr.io上国内下载上还是有问题。MicroK8s适合离线开发、原型开发和测试尤其是运行VM作为小、便宜、可靠的k8s用于CI/CD。支持arm架构也适合开发 IoT 应用通过 MicroK8s 部署应用到小型Linux设备上。

Canonical已将Microk8s 包装成 snap这是该公司的Linux软件包管理器。snap捆绑了应用程序及无需修改即可在许多不同的Linux发行版上运行的依赖项。snap是独立的应用程序可在沙盒中运行通过中介访问主机系统。snap 已成为通常在基于 Debian 的发行版中使用的标准.deb软件包之外的替代方案。包装成snap的应用程序可以轻松安装和卸载。除了最新版本的Ubuntu外snap 还可以部署在各种平台上包括Linux Mint、Raspberry Pi OS和Arch Linux。

由于Microk8s基于snap因此可以通过单个命令轻松部署。比如在Ubuntu 18.04上sudo snap install microk8s --classic可安装功能完备的单节点Kubernetes集群。对于任何运行snapd(snap软件包管理器的守护程序)的平台而言安装过程都一样

项目特点

  • MicroK8轻巧 团队成员希望最小的Kubernetes用于笔记本电脑和工作站的开发。 MicroK8s提供了轻量级的独立Kubernetes在Ubuntu上运行时它与Azure AKSAmazon EKS和Google GKE兼容。
  • MicroK8很简单 MicroK8s通过单软件包安装来最大程度地减少管理和操作该软件包没有活动部件开箱即用并且包括所有依赖项。
  • MicroK8是安全的 对于所有安全问题更新始终可用并且可以立即应用或安排更新以适合企业的维护周期。 此外MicroK8具有最新的隔离功能可在工作站上安全运行。 通过将KubernetesDocker.ioiptables和CNI的所有二进制文件打包在单个snap软件包中可以实现这种隔离。
  • MicroK8是最新的 MicroK8s跟踪上游Kubernetes并在上游Kubernetes发行的同一天发布beta发行候选版本和最终版本。 您可以跟踪最新的Kubernetes或坚持使用从1.10开始的任何Kubernetes版本。 当出现新的主要Kubernetes版本时您可以自动升级或使用单个命令进行升级。
  • MicroK8是全面的 MicroK8s包括精选的清单用于常见的Kubernetes功能和服务。 MicroK8带有Docker注册表使用户可以在笔记本电脑上制作推送和部署容器。

运行环境
操作系统 Ubuntu 18.04 LTS 或16.04 LTS 环境 (或其他支持 snapd 的操作系统- see the snapd documentation)。至少 20G 磁盘空间 建议4G 内存。

MicroK8s 的一个不错的特性是只要集群节点总数达到或超过三个它就会自动将您的集群配置为高可用性意味着它有多个主节点。

总体而言MicroK8s 使用起来比 K3s 或 Minikube 稍微复杂一些特别是因为它具有模块化架构并且默认情况下仅运行最少的服务集。要打开 DNS 支持或基于 Web 的仪表板等功能您必须明确启动它们。

minikubek3skind
runtimeVMnativecontainer
supported architecturesAMD64AMD64, ARMv7, ARM64AMD64
supported container runtimesDocker,CRI-O,containerd,gvisorDocker, containerdDocker
startup time initial/following5:19 / 3:150:15 / 0:152:48 / 1:06
memory requirements2GB512 MB8GB (Windows, MacOS)
requires root?noyes (rootless is experimental)no
multi-cluster supportyesno (can be achieved using containers)yes
multi-node supportnoyesyes
project pageminikubek3skind

参考

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: k8s

“Minikube vs. kind vs. k3s vs k3d vs MicroK8s” 的相关文章