简介:近期Knative发布了1.0版本,达到了一个重要的里程碑。Knative自2018年7月首次发布以来, 版本不断的迭代发展,除了无数的错误修复、稳定性和性能增强之外,按时间顺序还进行了一些改进,下文将进行简单介绍。
作者:元毅
导读
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 可以为你减负。欢迎有兴趣的同学一起交流。
原文链接
本文为阿里云原创内容,未经允许不得转载。