浅谈轻量级Kubernetes—K3s
1.什么是K3s
K3s 被设计为小于 40MB 的单个二进制文件,完全实现了 Kubernetes API。为了实现这一目标,他们删除了许多不需要成为核心一部分的额外驱动程序,并且很容易被附加组件替换。
K3s 是完全 CNCF(云原生计算基金会)认证的 Kubernetes 产品。这意味着你可以编写你的 YAML 来对抗常规的“全脂”Kubernetes,它们也适用于 k3s 集群。由于其资源要求低,可以在 512MB 以上的 RAM 计算机上运行集群。这意味着我们可以允许 Pod 在主节点和节点上运行。
因为它是一个很小的二进制文件,这意味着我们可以在启动常规 Kubernetes 集群的一小部分时间内安装它!我们通常会在不到两分钟的时间里启动具有少量节点的 k3s 集群,这意味着您可以立即部署应用程序来学习/测试。它的声誉和采用率也在快速增长,自 17 年初推出以来,超过 2019k 颗 Github 明星,而它最近被 Stackshare 评为 1 年排名第一的新开发者工具。
2.K8s的痛点
尽管Kubernetes(K8s)是一个强大而广泛使用的容器编排平台,但在实际使用中仍然存在一些痛点和挑战,这些可能因组织的具体需求和环境而异。
- 复杂性: Kubernetes是一个非常强大的工具,但也因其复杂性而闻名。配置、管理和维护一个Kubernetes集群可能需要较长时间的学习曲线,尤其是对于初学者来说。
- 学习曲线: 对于新手来说,学习Kubernetes可能是一项庞大的任务。理解概念、资源对象和Kubernetes API的使用可能需要一些时间。
- 网络配置: Kubernetes的网络配置可能相对复杂,特别是对于需要跨多个集群、云提供商或边缘设备的复杂网络拓扑的组织。
由于上述等原因,轻量级的Kubernetes(K3s)应运而生。
3.K3s增强功能
K3s 是一个完全兼容的 Kubernetes 发行版,具有以下增强功能:
- 打包为单个二进制文件。
- 使用基于 sqlite3 作为默认存储机制的轻量级存储后端。同时支持使用 etcd3、MySQL 和 Postgres。
- 封装在简单的启动程序中,可以处理很多复杂的 TLS 和选项。
- 默认情况下是安全的,对轻量级环境有合理的默认值。
- 添加了简单但强大的 batteries-included 功能,例如:
-
- 本地存储提供程序
- service load balancer
- Helm controller
- Traefik ingress controller
- 所有 Kubernetes control plane 组件的操作都封装在单个二进制文件和进程中。因此,K3s 支持自动化和管理复杂的集群操作(例如证书分发等)。
- 最大程度减轻了外部依赖性,K3s 仅需要现代内核和 cgroup 挂载。K3s 打包了所需的依赖,包括:
-
- containerd
- Flannel (CNI)
- CoreDNS
- Traefik (Ingress)
- Klipper-lb (Service LB)
- 嵌入式网络策略控制器
- 嵌入式 local-path-provisioner
- 主机实用程序(iptables、socat 等)
3.K3s与K8s的相同点
- 容器编排: K3s和Kubernetes都是用于容器编排的平台。它们可以自动化和管理大量的容器应用程序,确保它们在集群中高效运行。
- 容器生态系统: 两者都建立在Docker等容器技术的基础上,可以轻松部署和管理容器化的应用程序。
- 伸缩性: K3s和Kubernetes都支持水平扩展,可以根据负载的变化动态调整集群中的资源分配。
- 服务发现和负载均衡: 两者都提供了服务发现和负载均衡的机制,使得应用程序能够相互通信并在多个实例之间均衡分配负载。
- 存储管理: K3s和Kubernetes都提供了存储卷的概念,允许容器访问持久化数据。
4.K3s与K8s区别
那么使用 k3 有什么区别呢?
首先,单个控制平面 k3s 集群中的默认数据库是 SQLite。性能对于小型集群来说很棒,但如果需要更大的集群,可能需要用更强大的东西替换,例如 etcd、MySQL 或 PostgreSQL!幸运的是,k3s 支持所有这些(而上游 Kubernetes 只支持 etcd)!
另一个真正的区别只适用于较大的云提供商之一,你可能已经在上游 Kubernetes 源代码中有很多扩展,因为 k3s 删除了所有这些扩展并依赖于标准接口(如容器存储接口 (CSI))来实现它们。不过,这对最终客户没有影响,只对服务提供商本身有影响。
如下表所示,我们分别从多个不同方面,对比了K3s与K8s的区别。
| 特征 | K3s | K8s |
| 大小 | 占用空间更小(小于 200MB) | 占用空间更大(数百 MB) |
| 依赖 | 更少的依赖关系 | 更多的依赖,包括 etcd、kube-proxy 等。 |
| 资源使用情况 | 使用更少的资源(CPU、RAM 等) | 使用更多资源,尤其是对于大型集群 |
| 部署 | 更易于部署和管理 | 更复杂的部署和管理 |
| 配置 | 简化配置,选项更少 | 具有许多选项的更复杂的配置 |
| 可扩展性 | 大型群集的可扩展性有限 | 可扩展到更大的集群和工作负载 |
| 高可用性 | 可能存在高可用性限制 | 强大的高可用性选项,包括群集级冗余、自动故障转移等。 |
| 特征 | 更少的内置功能和扩展 | 提供广泛的功能和扩展,包括服务发现、负载平衡、自动扩展等。 |
| 安全 | 由于代码库较小,攻击面更少 | 更大的代码库,具有更多潜在的攻击面 |
| 兼容性 | 与某些 Kubernetes 工具和扩展的兼容性有限 | 与各种 Kubernetes 工具和扩展的强大兼容性 |
| 使用案例 | 非常适合资源受限的小型部署、边缘计算和物联网 | 更适合具有高资源要求的大型复杂部署,例如大数据、机器学习和高性能计算 |
5.K3s的安装
K3s 提供了一个安装脚本,可以方便地将其作为服务安装在基于 systemd 或 openrc 的系统上。该脚本可在 https://get.k3s.io 获得。要使用这种方法安装 K3s,只需运行:
curl -sfL https://get.k3s.io | sh -
还可以使用以下方法加速安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh |
INSTALL_K3S_MIRROR=cn sh -
运行此安装后:
- K3s 服务将被配置为在节点重启后或进程崩溃或被杀死时自动重启。
- 将安装其他实用程序,包括 kubectl、crictl、ctr、k3s-killall.sh 和 k3s-uninstall.sh。
- kubeconfig 文件将写入到 /etc/rancher/k3s/k3s.yaml,由 K3s 安装的 kubectl 将自动使用该文件。
curl -sfL https://get.k3s.io |
K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -
还可使用以下方法加速安装
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh
| INSTALL_K3S_MIRROR=cn K3S_URL=https://myserver:6443 K3S_TOKEN=mynodetoken sh -
K3S_URL 参数会导致安装程序将 K3s 配置为 Agent 而不是 Server。K3s Agent 将注册到在 URL 上监听的 K3s Server。K3S_TOKEN 使用的值存储在 Server 节点上的 /var/lib/rancher/k3s/server/node-token 中。
注意:每台主机必须具有唯一的主机名。如果你的计算机没有唯一的主机名,请传递 3S JODEAE 环境变量,并为每个节点提供一个有效且唯一的主机名。
安装完成后,你可以使用以下命令检查K3s的状态:
sudo k3s kubectl get nodes
如果一切正常,你应该看到一个节点(Node)的列表,表示K3s集群已成功启动。
相关文章:
浅谈轻量级Kubernetes—K3s
1.什么是K3s K3s 被设计为小于 40MB 的单个二进制文件,完全实现了 Kubernetes API。为了实现这一目标,他们删除了许多不需要成为核心一部分的额外驱动程序,并且很容易被附加组件替换。 K3s 是完全 CNCF(云原生计算基金会&…...
Web APIs知识点讲解
学习目标: 能获取DOM元素并修改元素属性具备利用定时器间歇函数制作焦点图切换的能力 一.Web API 基本认知 1.作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类:DOM (文档对象模型)、BOM(浏览器对象模型) 2.DOM DOM(Document Ob…...
Python商业数据挖掘实战——爬取网页并将其转为Markdown
前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言前言正则表达式进行转换送书活动 前言 在信息爆炸的时代,互联网上的海量文字信息如同无尽的沙滩。然而,其中真正有价值的信息往往埋…...
初识 Elasticsearch 应用知识,一文读懂 Elasticsearch 知识文集(1)
🏆作者简介,普修罗双战士,一直追求不断学习和成长,在技术的道路上持续探索和实践。 🏆多年互联网行业从业经验,历任核心研发工程师,项目技术负责人。 🎉欢迎 👍点赞✍评论…...
StampedLock详解
在现代的Java应用中,同步是一个核心问题,尤其是在高并发环境下。Java提供了多种同步机制,从基本的synchronized关键字到更高级的ReentrantLock。但在Java 8中,引入了一个新的同步原语——StampedLock,它旨在提供更高的…...
Linux中DCHP与时间同步
目录 一、DHCP (一)工作原理 1.获取 2.续约 (二)分配方式 (三)服务器配置 1.随机地址分配 2.固定地址分配 二、时间同步 (一)ntpdate (二)chrony …...
国产系统-银河麒麟桌面版V10安装字体-wps安装字体
安装系统:银河麒麟V10 demodemo-pc:~/桌面$ cat /proc/version Linux version 5.10.0-8-generic (builddfa379600e539) (gcc (Ubuntu 9.4.0-1kylin1~20.04.1) 9.4.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #33~v10pro-KYLINOS SMP Wed Mar 22 07:21:49 UTC 20230.系统缺失…...
python 10常用自动化脚本收藏好
01、 图片优化器 使用这个很棒的自动化脚本,可以帮助把图像处理的更好,你可以像在 Photoshop 中一样编辑它们。 该脚本使用流行的是 Pillow 模块 # Image Optimizing # pip install Pillow import PIL # Croping im PIL.Image.open("Image1.jp…...
java物品检验管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java Web 物品检验管理系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为Mysq…...
Pandas实战100例 | 案例 2: 数据探索 - 查看和理解数据
案例 2: 数据探索 - 查看和理解数据 知识点讲解 在数据分析的早期阶段,对数据进行初步的探索是非常重要的。这包括查看数据的基本信息、统计摘要、以及数据的形状。 示例代码 查看数据的基本信息 # 显示 DataFrame 的基本信息,包括列名、非空值数量…...
c++qt-基本组件
1. Designer 设计师(掌握) Qt包含了一个Designer程序,用于通过可视化界面设计开发界面,保存的文件格式为.ui(界面文件)。界面文件内部使用xml语法的标签式语言。 在Qt Creator中创建项目时,选中…...
SpringBoot多环境配置Maven Profile组
Maven profile组 注意切换配置时 mvn clean下 或者 clean 加install 或者compile 编译 clean之后 install下 或者compile 编译 nohup java -Xms256m -Xmx512m -Dfile.encodingUTF-8 -jar demo.jar --spring.profiles.activeprod > system.log 2>&1 &...
服务器配置 ssh 密钥登录
服务器配置 ssh 密钥登录 配置 服务器安全组策略,开放 ssh 22 端口,以 root 用户登录服务器。 配置 ssh key 登录 ssh-keygen 生成公钥和私钥对 如果不需要其他设置,一直回车 可以在 ~/.ssh 目录下看到两个文件,即刚生成的私钥…...
使用递归将list转换成tree
在产品研发时遇到这样一个问题,对于省市区县这类三级联动的数据,前端插件需要一次把数据全部返回,单纯的使用接口查询字节的没办法满足要求。 如果一次把数据全部返回,前端使用起来很麻烦需要一条一条的进行查找。 常规的使用方…...
untiy使用http下载资源
文章目录 提醒下载一个资源并保存到本地下载一张图片 提醒 部分API需要将Unity的 Edit/PrejectSetting/Player/OtherSetttings/AConfiguration/ApiCompatibilityLevel 设为.NetFramework 才可以使用 下载一个资源并保存到本地 private IEnumerator DownloadFormServer_IE(st…...
03-编码篇-x264编译与介绍
使用FFMPEG作编码操作时,会涉及到将yuv数据编码成h264数据,FFmpeg的libavcodec中的libx264.c会调用x264库的源码作编码: 1.x264库编译 下载X264,地址为:http://www.videolan.org/developers/x264.html,并解…...
生活自来水厂污水处理设备需要哪些
生活自来水厂是确保我们日常用水质量安全的重要设施。在自来水的生产过程中,污水处理设备是不可或缺的环节。那么,生活自来水厂的污水处理设备都有哪些呢?本文将为您详细介绍。 首先,生活自来水厂的污水处理设备主要包括预处理设备…...
Full names for abbreviations of Linux Commands
synopsis Towards/On Full names for abbreviations of Linux Commands I) website addressII) Mapping between full names and abbreviations I) website address II) Mapping between full names and abbreviations su:Swith user 切换用户,切换到ro…...
kafka下载安装部署
Apache kafka 是一个分布式的基于push-subscribe的消息系统,它具备快速、可扩展、可持久化的特点。它现在是Apache旗下的一个开源系统,作为hadoop生态系统的一部分,被各种商业公司广泛应用。它的最大的特性就是可以实时的处理大量数据以满足各…...
python包管理工具:pipenv的基本使用
很多语言都提供了环境隔离的支持,例如nodejs的node_module,golang的go mod,python也有virtualenv和pyvenv等机制。 为了建立依赖快照,通常会用pip freeze > requirements.txt 命令生成一个requirements.txt文件,在…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
Linux云原生安全:零信任架构与机密计算
Linux云原生安全:零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言:云原生安全的范式革命 随着云原生技术的普及,安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测,到2025年,零信任架构将成为超…...
【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)
🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
MySQL 部分重点知识篇
一、数据库对象 1. 主键 定义 :主键是用于唯一标识表中每一行记录的字段或字段组合。它具有唯一性和非空性特点。 作用 :确保数据的完整性,便于数据的查询和管理。 示例 :在学生信息表中,学号可以作为主键ÿ…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
认识CMake并使用CMake构建自己的第一个项目
1.CMake的作用和优势 跨平台支持:CMake支持多种操作系统和编译器,使用同一份构建配置可以在不同的环境中使用 简化配置:通过CMakeLists.txt文件,用户可以定义项目结构、依赖项、编译选项等,无需手动编写复杂的构建脚本…...
前端高频面试题2:浏览器/计算机网络
本专栏相关链接 前端高频面试题1:HTML/CSS 前端高频面试题2:浏览器/计算机网络 前端高频面试题3:JavaScript 1.什么是强缓存、协商缓存? 强缓存: 当浏览器请求资源时,首先检查本地缓存是否命中。如果命…...
企业大模型服务合规指南:深度解析备案与登记制度
伴随AI技术的爆炸式发展,尤其是大模型(LLM)在各行各业的深度应用和整合,企业利用AI技术提升效率、创新服务的步伐不断加快。无论是像DeepSeek这样的前沿技术提供者,还是积极拥抱AI转型的传统企业,在面向公众…...
