轻量级 k8s 平台-边缘计算场景-k3s

本文介绍了k3s,一个轻量级的Kubernetes发行版,专为边缘计算和资源有限的环境设计。k3s简化了安装过程,降低了内存和资源需求,并提供了内置组件,如SQLite、local storage provider和Traefik ingress controller。文章详细阐述了k3s与k8s的区别,包括裁剪的功能、优化的部分以及适合的场景。同时,文中还展示了k3s的单节点和高可用性架构,并给出了边缘计算的应用案例。最后,提供了k3s集群的安装和配置步骤,以及如何在k3s中部署Guestbook应用程序。
摘要由CSDN通过智能技术生成

  • 实验环境:新创建两台虚拟机
    K3s server 机器配置:
     IP:192.168.1.30
     主机名:k3s-S1
     配置:2vCPU/1Gi 内存
    K3s agent 机器配置:
     IP:192.168.1.40
     主机名:k3s-A1
     配置:2vCPU/1Gi 内存
  • 注意:机器配置可以按照下面标准分配
    安装使用 k3s 服务的最低系统要求:
    Linux 的内核版本在 3.10 以上
    每台服务器上至少要有 512MB 的内存空间
    硬盘中可用的存储空间必须大于 200 MB
    支持 x86_64, ARMv7, and ARM64 平台
  • 什么是 k3s?

  • https://github.com/k3s-io/k3s
  • 轻量级的 Kubernetes。安装简单,占用资源少,只需要 512M 内存就可以运行起来,所有的二进制程序都不到 100MB。
  • 自 2019 年 3 月发布以来,备受全球开发者们关注。至今,GitHub Stars 数已超过 16,000,成为了开源社区最受欢迎的边缘计算 K8S 解决方案。
  • k3s 专为在资源有限的环境中运行 Kubernetes 的研发和运维人员设计,将满足日益增长的在边缘计算环境中运行在 x86、ARM64 和 ARMv7 处理器上的小型、易于管理的 Kubernetes 集群需求。
  • k3s 的发布,为开发者们提供了以“Rancher 2.X + k3s”为核心的从数据中心到云到边到端的 K8S 即服务(Kubernetes-as-a-Service),推动 Kubernetes Everywhere。
  • 为什么叫 k3s?
    我们希望安装的 Kubernetes 在内存占用方面只是原来一半的大小。Kubernetes 是一个 10 个字母的单词。所以,有 Kubernetes 一半大的东西就是一个 5 个字母的单词,简写为 K3S。
  • K3s 没有全称,也没有官方的发音。
  • 适用场景
    1、边缘计算-Edge
    2、物联网-IoT
    3、CI
    4、ARM
    5、嵌入 K8s
  • k3s 相对比 k8s 裁剪了如下 5 个部分:
    1、过时的功能和非默认功能
    2、Alpha 功能
    3、内置的云提供商插件
    4、内置的存储驱动
    5、Docker(可选)
  • 相对 k8s 优化部分
    1、使用内嵌轻量级数据库 SQLite 作为默认数据存储替代 etcd,当然 etcd 仍然是支持的。
    2、内置了 local storage provider、service load balancer、helm controller、Traefik ingress controller,开箱即用。
    3、所有 Kubernetes 控制平面组件如 apiserver、scheduler、controller manager 等封装成为一个精简二进制程序,控制平面只需要一个进程即可运行。
    4、删除内置插件(比如 cloudprovider 插件和存储插件)。
    5、减少外部依赖,操作系统只需要安装较新的内核(centos7.6 就可以,不需要升级内核)以及支持 cgroup 即可,k3s 安装包已经包含了 containerd、Flannel、CoreDNS,非常方便地一键式安装,不需要额外安装 Docker、Flannel 等组件。
  • k3s 架构分析

  • 单节点的 k3s 架构
  • 上面的架构里 K3s server 节点有一个内嵌 SQLite 数据库,在这种配置中,每个 agent 节点都注册到同一个 server 节点。K3s 用户可以通过调用 server 节点上的 K3s API 来操作 Kubernetes 资源。
  • 高可用的 k3s 架构

    一个 HA K3S 集群由以下几个部分组成:
    1、两个或更多 server 节点将为 Kubernetes API 提供服务并运行其他 control-plane 服务
    2、外部数据存储(与单节点 k3s 设置中使用的嵌入式 SQLite 数据存储相反)
  • k3s 特点

  • 1.上手无代价:
    1)使用 k3s 与 Kubernetes 习惯完全一致,对于使用 Kubernetes 的人来讲使用 k3s 没有任何难度;
    2)支持部署 helm tiller 服务端(helm tiller 端会在 helm 3.x 版本中被干掉)

    2.API server、Controller manager、Scheduler、kubelet、Flannel 等组件都在一个进程中(通过指定是 Server 或者 Agent 选项来控制节点上需要启动哪些组件,Server 相当于 Kubernetes 的Master 节点,Agent 相当于 Worker 节点),占用的内存更少了,整个 k3s server 进程需要的内存在500MB 以下。

    3. 去除了 Kubernetes 中的一些实验特性、非必须的组件,例如云厂商的驱动、存储插件,k3s 在默认状态下只会启动除自身进程之外的两个应用:
    CoreDNS:提供集群内部的 DNS 解析服务。
    Traefik:Ingress controller 的角色。

    4. 占用资源少:k3s 默认使用 containerd(Server 节点,不可更改)作为容器运行时,不再需要中间层的 Docker Engine,占用资源更少。

    5. 部署简单:对环境依赖少,可离线也可在线部署(国内的网络环境不推荐在线部署),离线部署时,只需要下载一个大约 40MB 的二进制文件和一个 200MB 不到的离线镜像包,启动 k3s 节点几乎是秒级的。
  • 选择 k3s 的理由

  • 完美适配边缘计算环境:云计算、边缘计算、去中心化云计算
  • k3s 是一个高可用的、经过 CNCF 认证的 Kubernetes 发行版,专为无人值守、资源受限、偏远地区或物联网设备内部的生产工作负载而设计。
  • 简单且安全
    k3s 被打包成单个小于 60MB 的二进制文件,从而减少了运行安装、运行和自动更新生产Kubernetes 集群所需的依赖性和步骤。
  • 针对 ARM 进行优化
    ARM64 和 ARMv7 都支持二进制文件和多源镜像。k3s 在小到树莓派或大到 AWS a1.4xlarge 32GiB 服务器的环境中均能出色工作。
  • 云计算 vs 边缘计算

  • 什么是云计算?
    对于到底什么叫云计算,有很多种说法。现阶段广为接受的是美国国家标准与技术研究院(NIST)定义:云计算是一种按使用量付费的模式,这种模式提供可用的、便捷的、按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。

    用通俗的话说,云计算就是通过大量在云端的计算资源进行计算,如:用户通过自己的电脑发送指令给提供云计算的服务商,通过服务商提供的大量服务器进行“核爆炸”的计算,再将结果返回给用户。

    云计算部署模型分为三类:公有云、私有云、混合云;
    服务模式有三种:Saas、PaaS、IaaS 。
    图解云计算:
    以前电脑被发明的时候,还没有网络,每个电脑(PC),就是一个单机。

    再后来,单机性能越来越强,就有了服务器(Server)。人们发现,可以把一些服务器集 中起来,放在机房里,然后让用户通过网络,去访问和使用机房里的计算机资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值