既然 Kubernetes 已经非常好了,为什么还需要 Knative 呢?
我 们先梳理一下 Serverless 应用都有哪些共同特质: 按需使用,自动弹性 按需使用云资源,业务量上涨的时候自动扩容,业务量下降的时候自动缩容,所以需要 自动弹性能力。 灰度发布 要能支持多版本管理,应用升级的时候可以使用各种灰度发布策略上线新的版本。 流量管理 能够管理南北流量,可以按照流量百分比对不同版本进行灰度。 负载均衡、服务发现 应用弹性过程中自动增加或者减少实例数量,流量管理需要具备负载均衡和服务发现的 功能。 Gateway 多个应用部署在同一个集群中,需要一个接入层网关对多个应用以及同一个应用的不同 版本进行流量的管理。 随着 Kubernetes 和云原生概念的崛起,第一直觉可能是直接在 Kubernetes 之上 部署 Serverless 应用。Serverless 应用需要的是面向应用的管理动作,比如应用托管、升级、回滚、灰度发 布、流量管理以及弹性等功能,而 Kubernetes 提供的是 IaaS 的使用抽象。所以 Kubernetes 和 Serverless 应用之间少了一层应用编排的抽象。 而 Knative 就是建立在 Kubernetes 之上的 Serverless 应用编排框架。除了 Knative 以外,社区也有好几款 FaaS 类的编排框架,但这些框架编排出来的应用没有统 一的标准,每一个框架都有一套自己的规范,而且和 Kubernetes API 完全不兼容,不兼 容的 API 就导致使用难度高、可复制性不强。云原生的一个核心标准就是 Kubernetes 的 API 标准,Knative 管理的 Serverless 应用保持 Kubernetes API 语义不变,和 Kubernetes API 具有良好的兼容性,就是 Knative 的云原生特性所在。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。