跳转到主要内容

【容器架构】Minikube vs.kind vs.k3s-我应该用哪一个?

5星评论
Average: 5 (1 vote)
Last modified
星期五, 十二月 31, 2021 - 14:35

现在有一些工具声称(部分地)替代了一个成熟的Kubernetes集群。例如,使用它们,每个开发人员都可以运行他们自己的本地集群实例,以便在CI/CD期间使用它、部署他们的应用程序或对K8s中运行的应用程序执行测试。在这篇文章中,我们将看看其中的三个,比较它们的优缺点,并为每一个确定用例。

minikube

minikube是一个Kubernetes-SIGs项目,已经启动三年多了。它采用的方法是生成一个实质上是单节点K8s集群的VM。由于对一系列管理程序的支持,它可以在所有主要操作系统上使用。这还允许您并行创建多个实例。

从用户的角度来看,minikube是一个非常适合初学者的工具。使用minikube start启动集群,稍等几分钟,kubectl就可以开始了。要指定Kubernetes版本,可以使用--Kubernetes version标志。支持的版本列表可以在这里找到。

如果您是库伯内特斯的新手,minikube提供的对其仪表板的一流支持可能会帮助您。使用一个简单的minikube仪表板,应用程序将打开,让您对集群中发生的所有事情有一个很好的概述。这是通过minikube的插件系统实现的,该系统可以帮助您将诸如Helm、Nvidia gpu和图像注册表之类的东西集成到集群中。

Kind

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

创建集群与minikube的方法非常相似。执行类创建集群,玩等待游戏,然后你就可以走了。通过使用不同的名称(-name)kind,可以并行创建多个实例。

我个人喜欢的一个特性是能够将本地图像直接加载到集群中。这为我节省了一些额外的步骤来设置注册表和每次尝试更改时推送我的图像。有了一个简单的类型加载docker图像我的应用程序:最新的图像可用于我的集群。很不错的!

如果您正在寻找一种以编程方式创建Kubernetes集群的方法,请友好地(您已经等了很久了,不是吗:P)发布它的Go包,这些包在hood下使用。如果您想了解更多,请查看GoDocs并查看KUDO如何使用kind进行集成测试。

k3s

K3s是由牧场主实验室开发的Kubernetes的缩小版。通过删除可有可无的特性(传统的、alpha的、非默认的树内插件)和使用轻量级组件(例如sqlite3而不是etcd3),它们实现了显著的精简。这将产生一个大小约为60MB的二进制文件。

应用程序分为K3s服务器和代理。前者担任经理,后者负责处理实际工作量。我不鼓励您在工作站上运行它们,因为这会导致本地文件系统中出现一些混乱。相反,将k3放在一个容器中(例如,使用rancher/k3),这也允许您轻松地运行几个独立的实例。

其中一个突出的特性称为自动部署。它允许您通过将Kubernetes清单和Helm图表放入特定目录来部署它们。K3s关注变化,并注意应用它们,而不需要任何进一步的交互。这对于CI管道和物联网设备(都是K3s的目标用例)特别有用。只需创建/更新您的配置,K3s确保您的部署保持最新。

 

摘要

我是一个很长时间的minikube用户,因为那里根本没有其他选择(至少我从来没有听说过),老实说……它在成为本地Kubernetes开发环境方面做得相当好。创建集群,等几分钟就可以了。不过,对于我的用例(主要是使用运行在K8s上的工具),我可以完全用kind替换它,因为安装时间更快。如果你在一个资源紧张的环境中工作,或者需要更快的启动时间,K3S绝对是一个你应该考虑的工具。

这三种工具都是在使用不同的方法和关注不同的用例的同时完成工作的。我希望你能更好地理解它们是如何工作的,哪一个是解决你即将面临的问题的最佳人选。

下面您可以找到一个表,列出了每个工具的一些关键事实。

  minikube kind k3s
runtime VM container native
supported architectures AMD64 AMD64 AMD64, ARMv7, ARM64
supported container runtimes Docker,CRI-O,containerd,gvisor Docker Docker, containerd
startup time initial/following 5:19 / 3:15 2:48 / 1:06 0:15 / 0:15
memory requirements 2GB 8GB (Windows, MacOS) 512 MB
requires root? no no yes (rootless is experimental)
multi-cluster support yes yes no (can be achieved using containers)
multi-node support no yes yes
project page minikube kind k3s

原文:https://brennerm.github.io/posts/minikube-vs-kind-vs-k3s.html

本文:http://jiagoushi.pro/node/978

讨论:请加入知识星球或者微信圈子【首席架构师圈】

 

Article

标签(Tags)

企业架构(35) 数据分析(35) Power BI(32) 微服务(31) 微服务架构(30) Data Analysis(30) 商务智能(30) BI(30) 认证考试(30) 微软认证(30) DA-100(28) 应用安全(27) 考试题(26) 物联网(25) 敏捷(25) Enterprise Architecture(24) 试题(20) 首席架构师(19) 首席架构师推荐(19) 云计算(19) 网络安全(18) 技术架构(17) 机器学习(17) 试卷(17) SAFe(16) 大数据(15) Kafka(15) 规模化敏捷(14) enterprise security architecture(14) 企业安全架构(14) 前端架构(14) microservice(13) 业务架构(13) 数据架构(13) IOT(13) 安全运营(13) 容器云(12) 敏捷建模(12) 服务网格(12) 数据分析师(12) 事件驱动架构(12) 区块链(12) 数据安全(12) 数据湖(11) 应用架构(10) AWS(10) 数据科学(10) 人工智能(10) Kubernetes(10) 产品管理(9) BI数据分析师(9) NGINX(9) 数字化转型(9) 深度学习(9) 软件架构(9) 架构师(9) machine learning(9) 商务智能分析师(8) CIO(8) 技术选型(8) 安全战略(8) 软件测试(8) ArchiMate(8) PostgreSQL(8) Azure(8) Cloud Computing(8) Big Data(8) API(8) MSA(8) MDM(8) 技术趋势(7) 容器云架构(7) 核心实践(7) 无服务器架构(7) JavaScript框架(7) Vue(7) React(7) 参考架构(7) DevOps(7) 数据仓库(7) Data Lake(7) Envoy architecture(7) 容器(7) 主数据架构(7) microservices(7) 技术架构师(7) digital transformation(7) 投资组合管理(6) 安全架构(6) 集成架构(6) 合同测试(6) 工控协议(6) ICS(6) Micro Service Architecture(6) Envoy架构(6) 事件驱动(6) 数字化(6) 微服务架构师(6) strategy(6) 安全工具(6) application security principle(6) Angular(6) Postgresql架构(6) 网络架构(6) agilemodeling(6) 首席架构师精选(6) 高管洞察与创新(6) 云安全(6) 合约测试(5) Event Hub(5) 应用安全原则(5) Enterprise Portfolio Management(5) WAF(5) 编程语言(5) JavaScript Frameworks(5) 用户体验(5) 云原生(5) Agile(5) Python(5) IT战略(5) 企业敏捷性(5) 数字化业务(5) API Gateway(5) 项目管理(5) Digital business(5) 工业控制系统(5) Microservice Architecture(5) ICP(5) 软件架构师(5) 数据挖掘(5) Data Architecture(5) 主数据管理(5) 性能(5) Architecture Overview(5) Best Practices(5) Data Warehouse(5) k8s(5) 战略(5) IoT(5) 解决方案(5) 工业物联网(5) 数据科学家(5) 敏捷数据(4) 领导力(4) IPS(4) 领域驱动设计(4) DDD(4) 性能调优(4) 微前端(4) Vue.js(4) Docker(4) 敏捷核心实践(4) 应用组合管理(4) Agile Core Practice(4) 程序员(4) 数据可视化(4) 前端开发(4) 前端架构师(4) 前端开发工程师(4) 容器云架构师(4) 职业发展(4) executive insights and innovation(4) enterprise agility(4) 数据湖架构师(4) 开源合规(4) 敏捷模型(4) 业务转型(4) 企业微服务架构(4) 消费者驱动的合同测试(4) JWT(4) security(4) 企业架构师(4) architecture(4) 应用架构师(4) blockchain(4) 存储架构(4) GDPR(4) Cloud(4) RESTful(4) 最佳实践(4) 分布式计算(4) 数据湖架构(4) Service Mesh(4) BDD(4) 解决方案架构师(4) Event-Driven(4) SCADA(4) 云原生架构(4) 去中心化(4) IoT(4) IoT(4) Deep Learning(4) EA(3) technology(3) NFR(3) 安全(3) 应用现代化(3) Big Data(3) Spark(3) Microservice(3)