什么是Knative?

导读:什么是Knative?本文将对Knative的产生背景及发展历程,架构设计,受众群体等做详细介绍。

作者:李志伟、游杨

来源:华章计算机(ID:hzbook_jsj)

Knative是由谷歌发起,有Pivotal、IBM、Red Hat等公司共同参与开发的Serverless开源解决方案(项目地址是https://github.com/knative)。官方给Knative的定位为“基于Kubernetes的平台,用来构建、部署和管理现代Serverless工作负载”通过Knative可将云原生应用开发在三个领域的最佳实践结合起来,这三个领域的最佳实践是指服务构建部署的自动化、服务编排的弹性化以及事件驱动基础设施的标准化。

 

1

Knative的产生背景及发展历程

Serverless的理念受到了业界广泛的认可。众多云厂商也都相继发布了各自的Serverless产品的托管服务。但Serverless发展的主要障碍依然没有铲除。Serverless标准不统一,应用无法跨平台或跨云厂商迁移,直接导致应用程序与具体云厂商绑定,这极大地影响了企业在技术选型时对Serverless的选择。

随着Kubernetes生态的发展壮大,基于Kubernetes的开源Serverless解决方案也大量出现,基于Kubernetes云原生平台的Serverless的标准化需求也更加强烈。Knative的主要目标就是将Serverless标准化。

Knative开源项目将Serverless平台中的服务管理、事件驱动、构建部署进行了标准化。它既可以以托管服务形式运行在公有云中,也可以部署在企业内部的数据中心,从而很好地解决多云部署以及供应商锁定的问题。

在两年多时间里,Knative不断发展演进。

  • 2018年7月,在Google Cloud Next 2018大会上,谷歌正式发布了Knative。

  • 2019年4月,在Google Cloud Next 2019大会上,谷歌正式发布了谷歌云的无服务器计算产品Cloud Run。Cloud Run是Knative的托管服务,也是Knative第一个商用的托管服务。

  • 2019年8月,0.8版本发布,这是Serving第一个RC版本。

  • 2020年7月,0.16.0版本发布。

 

2

Knative的架构设计

Knative的架构设计遵循了标准化、可替代、松散组合、不绑定的总体设计原则。它以Kubernetes扩展的形式实现了服务构建和部署的自动化、服务编排的弹性化以及事件驱动基础设施的标准化。

Knative以Kubernetes扩展的形式提供了一整套中间件,用来构建新一代以代码为中心、基于容器的应用程序。这些应用程序可以运行在任何云环境中。

1)Knative整合Kubernetes平台的最佳实践,将能力主要聚焦在容器的部署、路由和流量管理、按需自动化扩缩容、事件绑定服务。

2)Knative由Serving和Eventing两大组件构成。其中,Serving组件负责实现请求驱动计算,支持缩容到零;Eventing组件负责事件的交付和管理。

3)Knative建立在Kubernetes生态的基础之上。它整合了Kubernetes和Istio的能力,没有重新造轮子,从Kubernetes生态中获益的同时进一步推动了Kubernetes的应用,如图1所示。

Knative是一个云原生Serverless框架,可以运行任何无状态容器应用。这也意味着Knative可以通过容器整合各类FaaS平台的运行时框架,实现兼容各类FaaS平台已有的应用程序。

 

图1  Knative与Kubernetes生态

 

3

Knative的主要受众群

不同的受众使用Knative的方式是不同的,如图2所示。

 

图2 Knative的受众群及分工

1)开发人员:开发人员通过Knative组件提供的Kubernetes原生API部署Serverless风格的函数、应用和容器。

2)运维人员:Knative可以被集成到现有的云厂商或企业内部运维的Kubernetes服务上,支持在任何兼容的Kubernetes版本上安装运行。

3)社区贡献者:Knative是一个多元化、开放且包容的社区。它拥有清晰的项目范围定义、轻量的管制模型以及每个可插拔组件间整洁的分隔线,以此为基础建立起高效的工作流。社区贡献者可以提供项目代码和文档。

 

4

Knative的商业托管服务产品

Knative是一个拥有众多厂商参与的社区,其中很多厂商已经提供Knative的商业托管服务产品。以下是Knative部分商业托管服务产品的清单。

  • Gardener:通过在Gardener vanilla Kubernetes集群中安装Knative,实现无服务器运行时附加层。

  • Google Cloud Run for Anthos:通过Serverless开发平台来扩展Google Kubernetes Engine。利用Cloud Run for Anthos,你可以通过Kubernetes的灵活性获得Serverless的开发体验,从而在自己的集群上部署和管理Knative服务。

  • Google Cloud Run:由谷歌云全托管的基于Knative的Serverless计算平台。你无须管理Kubernetes集群,通过Cloud Run可以在几秒钟内将容器应用到生产环境中。

  • Managed Knative for IBM Cloud Kubernetes Service:IBM Kubernetes Service的托管附加组件,便于你在自己的Kubernetes集群上部署和管理Knative服务。

  • OpenShift Serverless:OpenShift容器平台可以让有状态、无状态的Serverless工作负载自动在单个多云容器平台上运行。开发人员可以使用一个平台来托管其微服务、传统应用和Serverless应用程序。

  • Pivotal Function Service (PFS):一个用于在Kubernetes上构建和运行函数、应用程序和容器的平台,基于RIFF的开源项目。

  • TriggerMesh Cloud:一个全托管的Knative和Tekton平台,支持AWS、Azure和Google事件源和代理。

本文摘编自《Knative实战:基于Kubernetes的无服务器架构实践》。


 


扫码关注【图书小编辑】视频号

每天来听华章哥讲书

更多精彩回顾

书讯 | 4月书讯 | 好书和最美四月天一起来了...

资讯 | 新汽车行业的中台实践

书单 | 8本书助你零基础转行数据分析岗

干货 | 前端函数式演进之函数式思维和前端特征

收藏 | 收藏!一文掌握数据分析知识体系

赠书 | 【第48期】RPA,今天你嗤之以鼻,明天你高攀不起!

点击阅读全文购买

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值