写点什么

开源 Serverless 里程碑:Knative 1.0 来了

  • 2021 年 12 月 27 日
  • 本文字数:2016 字

    阅读完需:约 7 分钟

开源 Serverless 里程碑:Knative 1.0 来了

作者:元毅

导读

Knative 是基于 Kubernetes 之上提供的一款开源 Serverless 应用框架,帮助用户部署和管理现代化的 Serverless 工作负载,打造企业级 Serverless 平台。Knative 具备如下优势:


  • 在几秒钟内建立可扩展、安全、无状态的服务。

  • 具有更高级别 Kubernetes 应用抽象的 API

  • 可插拔组件,让您可以使用自己的日志记录和监控、网络和服务网格。

  • 在 Kubernetes 运行的任何地方都可以运行 Knative,无需担心供应商锁定

  • 开发者无缝体验,支持 GitOps、DockerOps、ManualOps 等。

  • 支持常用工具和框架,例如 Django、Ruby on Rails、Spring 等。

Knative 1.0

近期 Knative 发布了 1.0 版本,达到了一个重要的里程碑。Knative 自 2018 年 7 月首次发布以来, 版本不断的迭代发展,除了无数的错误修复、稳定性和性能增强之外,按时间顺序还进行了以下改进:


  • 支持多个 HTTP 路由层(包括 Istio、Contour、Kourier 和 Ambassador)

  • 支持事件驱动 Eventing 概念以及常见的订阅方法(包括 Kafka、GCP PubSub 和 RabbitMQ)

  • “鸭子类型 " 的抽象,允许处理具有共同字段(如 status.conditions 和 status.address)的任意 Kubernetes 资源

  • 支持额外功能插件的命令行客户端

  • 6 周一次的定期发布流程

  • 支持 HTTP/2、gRPC 和 WebSockets

  • Broker 和 Trigger,以简化事件的发布和订阅,同时将生产者和消费者解耦

  • 支持事件组件向非 Knative 组件传递,包括集群外组件或主机上的特定 URL

  • 支持自动提供 TLS 证书(通过 DNS 或 HTTP01 挑战)

  • 定制事件交付选项,包括对无法交付的事件进行重试和 dead-letter 死信队列

  • 对 Broker 和 Channel 的事件追踪支持,以改善调试工作

  • 由 Knative Build 催生的 Tekton 项目

  • 支持并行和顺序组件,用于编排事件的工作流

  • 事件源的文档以及如何贡献说明,目前涵盖了大约 40 个不同的事件源

  • “无中断” 平滑升级,在小版本升级期间无请求中断

  • 重新设计 Serving 的 API,以匹配 Deployment、CronJob 等使用的 PodTemplateSpec,简化 Kubernetes 用户的使用

  • 支持将事件目标地址注入 PodTemplateSpec 的对象中

  • 支持基于并发数或 RPS 的水平 Pod 自动扩缩容

  • 使用领导者选举实现控制平面组件的高可用性

  • 提供一个帮助管理员安装 Knative 的 Operator

  • 快速入门,供开发者在本地试用 Knative

  • 使用 DomainMapping 简化服务的管理和发布

Knative 到底有多少拥趸

从 Knative 诞生到 1.0 发布至今,不断的会面对一系列这样的问题:Knative 到底有多少企业在使用?是否生产可用?


根据 CNCF 2020 中国云原生调查报告,Knative 已经成为 Kubernetes 上最广泛安装的无服务器



图片 1 (图片来源详见文末相关链接)


另外 Knative 社区近期也发起了一项统计:当前哪些云厂商或企业在提供或者使用 Knative。目前已统计如下(并且这项列表还在持续更新中):



图片 2 (图片来源详见文末相关链接)


我们可以看到,几乎所有的大厂都支持或者集成 Knative, 如阿里云、谷歌云、IBM、Red Hat 等,并且大部分都提供了生产级别能力(Production),而随着 Knative 1.0 的发布,相信有更多的用户去拥抱 Knative。

阿里云 Knative

阿里云容器服务从 Knative 0.6.0 版本开始产品化集成,持续跟进 Knative 社区功能迭代,当前已全面支持 Knative 1.0 版本。在此期间,阿里云 Knative 与容器服务 Kubernetes 生态、消息、存储等云产品进行了全方位的融合。包括:


  • 丰富的消息云产品事件源:Kafka 、MNS 、RocketMQ

  • 服务访问:SLB

  • 存储:NAS 、云盘等

  • 可观测性:日志服务、ARMS

  • IaaS 资源:ECS 、ECI


此外为了降低用户使用 Knative 门槛,通过容器服务 UI 控制台提供一键部署能力,在 Serverless Kubernetes(ASK) 中将 Knative 管控组件全托管,极大的节省了用户的资源以及运维成本。



在产品化持续迭代中,也带来了更丰富的客户应用场景,当前在阿里云 Knative 典型的应用场景(包括但不限):


  • AI 音视频编/解码场景

  • GPU 等异构计算场景

  • 大数据及 AI 深度学习、机器视觉

  • 传统管理软件

  • ...


行业涵盖智慧医疗、在线教育、数字空间建模等领域。阿里云容器服务 Knative 正在为用户持续不断的提供企业级 Serverless 平台能力。

小结

如果你正面对复杂、多样的 Kubernetes 资源(Deploymemt、Service、Ingress 等)无从下手的难题,Knative 或许可以帮你轻松应对;如果你正面对成本压力、运维负担,Knative 可以为你减负。欢迎有兴趣的同学一起交流。


阿里云 Knative 钉钉交流群:


相关链接

1)图片 1:


https://www.cncf.io/blog/2021/04/28/cncf-cloud-native-survey-china-2020/?spm=a2c6h.12873639.0.0.50825d98LheP6P


2)图片 2:


https://github.com/knative/community/blob/main/ADOPTERS.MD?spm=a2c6h.12873639.0.0.50825d98LheP6P&file=ADOPTERS.MD


3)参考



点击​此处​了解更多阿里云 Knative 产品相关信息!

用户头像

阿里巴巴云原生 2019.05.21 加入

还未添加个人简介

评论

发布
暂无评论
开源 Serverless 里程碑:Knative 1.0 来了