k8s vs k3s: 差异解析

k8s vs k3s: 差异解析

2. K3s的优势

小型

K3s 的最大优势是它的尺寸最小(小于 100 MB),这有助于它以最少的设置在小型硬件中启动 Kubernetes 集群。

快速部署

curl -sfL https://get.k3s.io | sh -

检查就绪代码

takes maybe 30 seconds

k3s kubectl get node

轻量

K3s 由于内存占用小,非常轻量,这有助于 Kubernetes 快速启动和运行。这意味着包含运行集群所需的所有非容器化组件的二进制文件更小。

持续集成

K3s,由于其轻量级的环境和小尺寸,有助于持续集成。它有助于将来自多个贡献者的代码自动集成到单个项目中。

物联网和边缘计算的完美选择
由于支持 ARM64 和 ARMv7,K3s 对于要在资源受限的物联网设备上分发Kubernetes 非常有效。

简单和安全
小于 100 MB 的单个二进制文件封装了 K3s,这使得它变得简单,而且单个二进制文件易于保护,副作用更少。

3. 什么是K8s?

Kubernetes或K8s是最流行的管理容器的编排工具。它具有可移植性、灵活性和可扩展性,同时支持命令式/声明式配置和自动化,作为CNCF的一个毕业项目,其拥有一个庞大的生态系统。

Kubernetes。终极指南
围绕可扩展和可靠服务的需求每天都在成倍增加。市场的驱动力是客户要求他们最喜欢的服务拥有零停机时间,而公司每停机一分钟就会损失数百万美元。如果你遇到过负责保持系统运行的空间,你会[…]。

Kubernetes是为适应大规模配置(多达5000个节点)和帮助在生产环境中部署应用程序而设计的。

k8s vs k3s: 差异解析

4. K8s的优势

可移植性

Kubernetes具有高度的可移植性,因为大量的基础资源和环境配置都使用Kubernetes。大多数其他编排器都缺乏这种可移植性,因为它们与特定的运行时或基础设施绑在了一起。

灵活

Kubernetes非常灵活,因为它实际上可以与任何容器运行时(运行容器的程序)一起工作。它是Kubernetes集群的一部分,它依靠CRI-O将Kubernetes与CRI(容器运行时接口)集成。但是,这种整合并不适用所有可用的容器运行时,例如runc或Rkt。它使用kubelet来调度容器。

多云能力

Kubernetes是供应商无关的,这意味着它可以在任何可用的基础设施上运行,包括公共云、私有云和混合云。

可扩展性

根据传入流量来扩展应用程序的能力是任何现代基础设施的基本功能。HPA(HorizontalPod Autoscaler)是Kubernetes中的一个内置资源,它决定了一个服务的副本数量。在Kubernetes中,弹性是一个高度自动化的核心组件。

开放源代码

Kubernetes是开源的,属于CNCF的范畴,因此与其他工具有更好的兼容性,也有助于整个项目在社区驱动的贡献者帮助下快速修复错误和发布。

5. k8s与k3s:区别

K3s在功能上与K8s没有什么不同,但它们有一些区别,使它们显得独特。K3s能比K8s更快地部署应用程序。不仅如此,K3s可以比K8s更快地启动集群。K8s是一个通用的容器编排器,而K3s是一个专门为在裸金属服务器上运行Kubernetes而打造的容器编排器。

Kubernetes使用kubelet,这是一个在每个Kubernetes节点上运行的代理,对该节点上运行的容器进行循环控制。这个代理程序在容器内运行。而K3s并不使用kubelet,它在主机上运行kubelet,使用主机的调度机制来运行容器。

同样,我们可以看到,K3S由于体积小,所以是轻量级的,这有助于它在RaspberryPi等资源有限的物联网设备中运行集群。相比之下,我们可以看到,普通的Kubernetes或K8s在物联网或边缘计算设备中是不可行的。另外,K3s同时支持ARM64和ARMv7的二进制文件结构。

Kubernetes或K8s可以托管运行于多个环境中的工作负载,而K3s只能托管在单一云中运行的工作负载。这主要是因为K3s不包含在多个云上维护复杂的工作负载的能力,因为它的规模很小。

同时,我们可以看到 Kubernetes 借助其大规模的能力,在托管工作负载和多云环境中运行集群具有优势。K3s是一个独立的服务器,与K8s不同,它是Kubernetes集群的一部分。K8s依靠CRI-O来整合Kubernetes与CRI(容器运行时接口),而K3s使用CRI-O与所有支持的容器运行时兼容。K8s使用kubelet来调度容器,但K3s使用主机的调度机制来调度容器。

K3s使用kube-proxy来代理Kubernetes节点的网络连接,但K8s使用kube-proxy来代理单个容器的网络连接。它还使用kube-proxy来设置IP伪装,而K3s不使用kube-proxy来做这个。

同样,K8s使用kubelet来监视Kubernetes节点的配置变化,而K3s不监视Kubernetes节点的配置变化。相反,它从Kubernetes控制平面接收包含配置信息的部署清单,并做出相应的改变。

当涉及到大规模数据环境的编排(自动化任务的编排和协调)时,Kubernetes非常有优势,因为它有存储大量数据的数据库和编排大量对象的能力。同时,k3s对小规模数据的情况也是比较有用的。存储在一个小于100MB的二进制文件中,这将有助于快速启动集群,更快地调度pod和其他任务。

k3s有比k8s更严格的安全部署,因为其攻击面小。k3s的另一个优势是,它可以减少安装、运行或更新Kubernetes集群所需的依赖性和步骤。

6. 我应该选择k3s还是k8s?

中等市值的企业可以决定同时使用K3s和K8s,因为他们不会有一个实际的S

从上面的讨论中可以看出,K3s和K8s都有其优点和缺点,这使得它们彼此之间有独特的区别。两者都非常有用,但鉴于业务情况,不同业务场景的用法会也不一样。

我们已经看到了K8s对于大型应用的好处,牢记一点,一个处理大量数据的高市值企业,其工作负载分布在多个云服务器中,应该使用K8s,这将在很多方面受益。

中等市值的企业可以同时使用K3s和K8s,因为企业在运营过程中不会有确定的吞吐量。他们可以从使用K8s来处理大型工作负载中受益,而对于小规模生产过程中需要快速运行集群的情况,使用K3s会有更有优势。保持K3s和K8s之间的平衡可以帮助企业在保持正常运营的同时节省大量的资金。

没有任何大型应用的小市值企业可以自愿选择K3s,因为K3s在部署小工作负载的应用时非常快速,而且安装、运行和更新也很容易。

热衷于物联网和边缘计算的独立开发者选择K3s作为他们的Kubernetes发布环境会更大优势。他们使用许多计算资源受限的硬件,如RaspberryPi和其他。我们都知道K3s是以一个小的单一二进制文件出现的,并且支持在ARM64和ARMv7的物联网设备上运行。

最后的想法

您可能认为 k3s 比”全脂”k8s 更好,但让我提醒您 k3s 存在局限性。目前,k3s 不支持在主节点上运行除 SQLite 以外的任何其他数据库,也不支持多个主节点。因此,在选择默认容器编排器时,定义需求和目标非常重要。

我希望你在这篇文章之后对 Kubernetes 和 k3s 有相当程度的了解。如果您想学习和探索,官方教程将是一个很好的起点。

转自:https://www.modb.pro/db/161082

Original: https://www.cnblogs.com/yuwen01/p/16470772.html
Author: xiao智
Title: k8s vs k3s: 差异解析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/611644/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 如何使用原生的Feign

    什么是Feign Feign 是由 Netflix 团队开发的一款基于 Java 实现的 HTTP client,借鉴了 Retrofit、 JAXRS-2.0、WebSocket…

    数据库 2023年6月6日
    0120
  • Java面试题(十)–Spring Cloud

    1 基础知识篇 1、什么是微服务架构? 微服务架构是一种架构模式或者说是架构风格,它提倡将单一应用程序划分成一组小的服务。每个服务运行在其独立的自己的进程中服务之间相互配合、相互协…

    数据库 2023年6月16日
    0103
  • Flume和 Sqoop

    vim flume-dir-hdfs.conf 添加如下内容 a3.sources = r3 a3.sinks = k3 a3.channels = c3 Describe/con…

    数据库 2023年6月16日
    086
  • day02-MySQL基础知识

    MySQL基本知识 1.数据库 1.1.创建数据库 语法: CREATE DATABASE [IF NOT EXISTS] db_name [create_specificatio…

    数据库 2023年6月11日
    093
  • MySQL变量、流程控制和游标

    变量、流程控制和游标 变量 在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果的数据 系统变量 变量由系统定义,属于服务器级别 […

    数据库 2023年5月24日
    067
  • SNMP windows OIDs

    Windows OID’ for CPU, Memory, Disk Utilization2007-10-31 11:03Windows CPU Utilizatio…

    数据库 2023年6月11日
    096
  • Mysql-5.7主从部署-yum方式

    一、环境准备 rpm -qa |grep mariadb |xargs yum remove -y setenforce 0(临时关闭),(selinux配置文件:SELINUX=…

    数据库 2023年5月24日
    064
  • 分享攒了多年的mssql脚本

    分享攒了多年的mssql脚本 脚本类别包括:备份还原表分区常用函数错误日志定时自动抓取耗时SQL并归档发邮件脚本模块镜像批量脚本数据库收缩数据库损坏数据库账号统计数据库大小性能作业…

    数据库 2023年6月9日
    089
  • Python操作Excel表格

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/b0277e1c.html 你好,我是测试蔡坨坨。 上期我们分享了一个Python编写的小工具——「Py…

    数据库 2023年6月11日
    0102
  • 从源码角度谈谈open_files_limit的生成逻辑及”Too many open files”的解决思路

    “Too many open files”是一个比较常见的错误,不仅仅是在 MySQL 中。只要是在 Linux 中启动的进程,都有可能遇到这个错误。 究其…

    数据库 2023年6月11日
    0143
  • Windows界面个人常用快捷键

    分享一下个人常用快捷键。 说明:字母排序规则遵循字母表(a->z) 快捷键 介绍 windows+d 由当前应用直接返回桌面,再按一次回到应用 windows+e 打开文件资…

    数据库 2023年6月14日
    0101
  • 入门Python,看完这篇就行了!

    转载请注明出处❤️ 作者:测试蔡坨坨 原文链接:caituotuo.top/3bbc3146.html 你好,我是测试蔡坨坨。 众所周知,Python语法简洁、功能强大,通过简单的…

    数据库 2023年6月11日
    099
  • day04-3服务器推送新闻

    多用户即时通讯系统04 4.编码实现03 4.7功能实现-服务器推送消息功能实现 4.7.1思路分析 服务器推送新闻,本质其实就是群发消息 在服务器启动一个独立线程,专门负责推送新…

    数据库 2023年6月11日
    062
  • 如何用axios加后端数据库传值给前端

    小杰笔记: 如何用axios : 第一步:编写数据库实体类 @Data @AllArgsConstructor @NoArgsConstructor public class Us…

    数据库 2023年6月6日
    0130
  • 解决PHP undefined function mcrypt_encrypt()的报错问题

    今天迁移服务器代码遇到了一个未定义的错误 查找了相关资料后,发现是缺少php_mcrypt扩展 于是去下载扩展: https://windows.php.net/downloads…

    数据库 2023年6月14日
    086
  • Activiti 7 源码学习

    启动分析 源码版本是 7.1.0.M6 首先从 ProcessEngineAutoConfiguration 开始 ProcessEngineAutoConfiguration 是…

    数据库 2023年6月14日
    092
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球