本文来自:Rancher Labs

自k3s问世以来,社区里有许多小伙伴都问过这样的问题“除了中间的数字之外,k3s和K8s的区别在哪里?”,“在两者之间应该如何选择?”。本文将简单介绍它们两者的区别。

什么是Kubernetes?

正如大家所了解到的那样,Kubernetes是一个“容器编排平台”,也就是说你可以从一组机器中选择其中之一来运行你所需要使用的容器。

它也处理诸如升级你的容器之类的事情,所以如果你发布网站的新版本,它会逐渐使用新版本来启动容器,并放弃旧版本,这一过程仅需一到两分钟。

那么,究竟什么是K8s?

K8s是Kubernetes的缩写,因为在K和s之间有8个字母,故称K8s。然而,通常情况下,无论人们谈论的是Kubernetes还是K8s,他们正在说的是原生上游的Kubernetes,由Google所设计的一个真正高可用且可扩展的平台。

问题是,虽然你可以使用诸如Minikube之类的工具在本地计算机上运行Kubernetes,但是如果要在生产环境中运行它,你将很快获得一些“最佳实践”的建议,如:

  1. 将你的节点和master分开,使用你的master运行控制平面,使用你的节点运行工作负载,两者永远也不会见面
  2. 在独立的集群上运行etcd,以确保它能够处理负载
  3. 理想状态下,分离Ingress节点,以便它们能够轻松处理进入的流量,即便一些底层节点已经十分忙碌

很快,你将拥有3倍的K8S master、3倍的etcd、2倍的Ingress以及你的节点。所以在你到达需要询问“我的站点需要多少个节点”这一阶段之前,实际情况下你至少已经有了8个中型实例。

别误会,我不是在指责这些建议不好。相反,如果你正在运行一个生产工作负载,那么这些建议是十分明智的。毕竟,没有比在星期五晚上调试过载的停机生产集群更糟糕的了!

但是,如果你只是想学习Kubernetes,或者给一些非核心的应用托管一个development/staging集群,那么采纳上述建议就有些“杀鸡用牛刀“的感觉了,不是吗?至少对我来说是这样的。如果我只是想启动集群来查看我的Kubernetes manifest(包括部署配置等等)是否是正确的,我并不愿意每月为此付出几百元。

k3s的优势在哪里?

Rancher Labs是业界领先的容器软件提供商,其旗舰产品Rancher是一款开源的企业级Kubernetes管理平台,极为出色地管理和安装Kubernetes集群。他们发布了一系列产品,构成他们的生态,例如,Longhorn是一个轻量级并且可靠的容器化分布式块存储解决方案,可用于Kubernetes中,并在近期被收纳入CNCF沙箱项目中。闲杂让我们回到这篇文章的主题,Rancher Labs也是k3s这款轻量级Kubernetes发行版的创建者。

k3s将安装Kubernetes所需的一切打包进仅有60MB大小的二进制文件中,并且完全实现了Kubernetes API。为了减少运行Kubernetes所需的内存,Rancher删除了很多不必要的驱动程序,并用附加组件对其进行替换。

k3s是一款完全通过CNCF认证的Kubernetes发行版,这意味着你可以编写YAML来对完整版的Kubernetes进行操作,并且它们也将适用于k3s集群。

由于它只需要极低的资源就可以运行,因此它能够在任何512MB RAM以上的设备上运行集群,换言之,我们可以让pod在master和节点上运行。

当然,既然它是一个小型的二进制文件,那么我们可以在短时间内安装它,相比于启动常规Kubernetes集群,安装它仅需一小部时间。通常我们仅需要不到2分钟的时间就能够启动一个带有几个节点的k3s集群,也就是说,你可以一有机会就部署应用程序来学习或者进行测试。

听起来不错,实际如何呢?

当人们提到Kubernetes时,他们想到的是如果节点死亡,容器会自动在其他节点上启动,容器之间的负载均衡、隔离和滚动部署,所有这些优点在完整版的Kubernetes和k3s之间是相同的。

但是,k3s并不总是只有优点,否则的话每个人都会去使用k3s。那么,为什么有些人没有使用k3s呢?

首先,当前k3s的版本(k3s v0.8.1)仅能运行单个master,这意味着如果你的master宕机,那么你就无法管理你的集群,即便已有集群要继续运行。但是在k3s v0.10的版本中,多主模式已经是实验性功能,也许在下一个版本中能够GA。

其次,在单个master的k3s中,默认的数据存储是SQLite,这对于小型数据库十分友好,但是如果遭受重击,那么SQLite将成为主要痛点。但是,Kubernetes控制平面中发生的更改更多是与频繁更新部署、调度Pod等有关,因此对于小型开发/测试集群而言,数据库不会造成太大负载。

结 语

K8s和k3s各有优劣,使用场景也有所区别,因此不能一概而论。如果你要进行大型的集群部署,那么我建议你选择使用K8s;如果你处于边缘计算等小型部署的场景或仅仅需要部署一些非核心集群进行开发/测试,那么选择k3s则是性价比更高的选择。

赶紧试试看吧!

欢迎添加小助手(wx:rancher2),进官方技术群,了解更多Kubernetes使用攻略

K8s 还是 k3s?This is a question相关推荐

  1. docker、K8S、k3s、rancher

    第一:docker 基础使用 docker 竞品 最新调查:OpenStack.Docker.KVM被评为最火的云开源项目. Docker替代品,Containerd Docker与KVM之间的区别( ...

  2. K8S,k3s 分布式存储:rook-ceph or Longhorn

    K8S的Volume Volume的主要功能是为了持久化容器的数据,Volume 的生命周期独立于容器,Pod 中的容器可能被销毁和重建,但 Volume 会被保留.本质上,Kubernetes Vo ...

  3. K8s 或 K3s 集群中持久化存储方案选型

    存储架构 1 三个概念: pv , pvc ,storageclass pv - 持久化卷, 支持本地存储和网络存储, 例如hostpath,ceph rbd, nfs等,只支持两个属性, capac ...

  4. k8s多master建议用几个_K8s 还是 k3s?This is a question

    自k3s问世以来,社区里有许多小伙伴都问过这样的问题"除了中间的数字之外,k3s和K8s的区别在哪里?","在两者之间应该如何选择?".本文将简单介绍它们两者的 ...

  5. K3S和 K8S 有何不同?

    1.K3s:轻量级的K8s K3s 是CNCF 认证的 Kubernetes 发行版和Sandbox项目,专为低资源环境而设计.由 Rancher Labs 维护着 K3s. 总的来说,K3s 提供了 ...

  6. operator-sdk实战开发K8S CRD自定义资源对象

    环境说明 系统:CentOS Linux release 7.6.1810 (Core) golang:v1.15 operator-sdk:v1.7.0 docker:v1.19 # 因为 oper ...

  7. 边缘设备、系统及计算杂谈(11)——k8s学习之一

    缘起 今天是我个人知识学习生涯里非常重要的一个节点.终于,对k8s有了一次系统的学习和回顾.之前对k8s,k3s看了很多书,也在实际中用了很多,但都属于前期量的积累.直到这一次,我个人才从头到脚感觉有 ...

  8. 轻量级 Kubernetes 集群发行版 K3s 完全进阶指南

    公众号关注 「奇妙的 Linux 世界」 设为「星标」,每天带你玩转 Linux ! 深入理解官方文档,轻松学会使用 K3S 工具! K3s 是一个轻量级的 Kubernetes 发行版,它针对边缘计 ...

  9. 01-K3S 课程介绍及K3s介绍

    1 课程介绍 本教程是 K3s 的系列教程,会按照K3s 官网的目录顺序来针对 K3s 的每个功能做讲解和操作,以便大家更深入了解 K3s. 当 K3s 新版本发布时,会针对每个版本做详细的介绍. 2 ...

最新文章

  1. Android谷歌地图服务开发注册流程及问题
  2. 报错-Unknown class in Interface Builder file
  3. 关于set sql_trace=ture 的一些用法
  4. Pandas中文官档 ~ 基础用法1
  5. javaweb入门笔记(4)-request和response
  6. 前端学习(1687):前端系列javascript基础面试前言
  7. Windows Serivce服务实现过程和打包安装
  8. MySQL中查某一字段包含某一字符的个数
  9. hibernate相关知识
  10. 土地利用转移矩阵图怎么做_土地利用转移矩阵怎么分析excel?
  11. 声音存储空间计算公式_音频文件存储容量计算
  12. 【技术综述】一文道尽传统图像降噪方法
  13. 信号反射问题与相关电路设计技巧
  14. 反虚拟机、反沙箱技术整理汇总
  15. Bootstrap可视化布局
  16. 计算机软件系统故障的分类,系统故障
  17. yolo+ocr集装箱字符识别(pytorch版本)
  18. c# 微信公众号开发之自定义菜单栏
  19. 2021-04-12
  20. Open-Domain Question Answering相关部分论文阅读摘要

热门文章

  1. python微信群发_更新新年祝福群发!小白转战Python微信定时发送消息给群或是个人!...
  2. zcmu-1930帽子戏法
  3. android平台opengl es读取纹理数据并保存图片
  4. 数据产品经理修炼手册_AI产品经理之数据标注
  5. 强化学习入门系列一VS强化学习的基本概念
  6. 使用og协议分享web页面到WhatsApp
  7. POL8901 LVDS转MIPI DSI 支持旋转图像处理芯片
  8. siri语音功能测试点
  9. go中map的基本介绍
  10. 详解智能制造中的计算机视觉应用瓶颈问题