Knative初识

什么是serverless

serverless的全称是serverless computing无服务运算,又被称为函数即服务(faas),是云计算的一种模型,以paas为基础,无服务器运算提供一个微型的架构,终端客户不需要部署、配置或管理服务器服务,代码运行所需要的服务器服务皆由云端平台来提供,国内外比较出名的产品有Tencent Serverless、AWS Lambda、Microsoft Azure Functions 等

什么是 Knative

knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。目前参与的公司主要是 Google、Pivotal、IBM、Red Hat,2018年7月24日才刚刚对外发布,当前还处于快速发展的阶段,主要是为了解决容器为核心的serverless应用的构建、部署和运行的问题

Knative优势

开发者只需要编写代码或者函数,以及配置文件然后运行build和deploy就能把应用自动部署到集群

其他事情都是Knative平台自动处理,这些事情包括

  • 自动完成代码到容器的构建
  • 把应用(或者函数)和特定的事件进行绑定:当事件发生时,自动触发应用(或者函数)
  • 网络的路由和流量控制
  • 应用的自动伸缩

和标准化的 FaaS 不同,knative 期望能够运行所有的 workload : traditional application、function、container。

knative 核心概念和原理

为了实现 serverless 应用的管理,knative 把整个系统分成了三个部分

  • Build:构建系统,把用户定义的函数和应用 build 成容器镜像
  • Serving:服务系统,用来配置应用的路由、升级策略、自动扩缩容等功能
  • Eventing:事件系统,用来自动完成事件的绑定和触发

 Build 构建系统

build 的功能是把用户的代码自动化构建成容器镜像,初次听起来很奇怪,有了 docker 之后有一个 Dockerfile 不就能构建容器了吗?为什么还需要一个新的 Build 系统?

 Knative 的特别之处在于两点:一是它的构建完成是在 kubernetes 中进行的,和整个 kubernetes 生态结合更紧密;另外,它旨在提供一个通用的标准化的构建组件,可以作为其他更大系统中的一部分。

正如官方文档中的说的那样,更多是为了定义标准化、可移植、可重用、性能高效的构建方法

 Serving:服务系统

 serving 的核心功能是让应用运行起来提供服务。虽然听起来很简单,但这里包括了很多的事情

  • 自动化启动和销毁容器
  • 根据名字生成网络访问相关的 service、ingress 等对象
  • 监控应用的请求,并自动扩缩容
  • 支持蓝绿发布、回滚功能,方便应用方法流程

  knative 是建立在 kubernetes 和 istio 平台之上的,使用 kubernetes 提供的容器管理能力(deployment、replicaset、和 pods等),以及 istio 提供的网络管理功能(ingress、LB、dynamic route等)

因为 kubernetes 和 istio 本身的概念非常多,理解和管理起来比较困难,knative 在此之上提供了更高一层的抽象(这些对应是基于 kubernetes 的 CRD 实现的)。

Eventing:事件系统

serving 系统实现的功能是让应用/函数能够运行起来,并且自动伸缩,那什么时候才会调用应用呢?除了我们熟悉的正常应用调用之外,serverless 最重要的是基于事件的触发机制,也就是说当某件事发生时,就触发某个特定的函数。

事件概念的出现,让函数和具体的调用方能够解耦。函数部署出来不用关心谁会调用它,而事件源触发也不用关心谁会处理它。

Knative 目前的状态

knative 是 2018 年 7月才刚刚对外开放,虽然内部已经开发一段时间,但是目前还处于非常早前的阶段(从支持的事件源和 bus就能看出来)。目前代码还不稳定,很多实现都是 hard-coded。

knative 也是脱产于 google 和 CNCF,因此整个社区运行方式和目标与之前的 kubernetes 以及 istio 非常相似。社区根据组件分成多个 Working Group,每个 Group 独立负责自己的功能,所有的开源活动(文档、视频、代码)都是开放的。另外,CloudEvents 作为 knative 依赖的标准,目标也是成为 CRI、CNI、CSI 这种类似的标准。

knative 社区目前非常活跃,已 github.com/knative/serving 项目为例,一个月已经有 600+ star,目前有 60+ contributor,900+ commits,而且入门的文档和教程都已经非常全面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值