详解Knative的服务管理组件(Serving)

Knative Serving是基于Kubernetes的Serverless应用管理组件,提供自动缩容至零、扩展和路由功能。通过Service、Route、Configuration和Revision对象管理无服务容器、微服务和传统应用。其内部包括Activator、Autoscaler等组件,实现请求驱动的计算和灵活的扩缩容策略。Queue Proxy作为Sidecar容器,协助实现自动扩缩容。该文适合对Serverless感兴趣的读者、架构师和运维开发人员。
摘要由CSDN通过智能技术生成

 Knative的服务管理组件Serving是管理应用服务的理想选择,它通过自动缩容为零和基于HTTP负载自动扩展的方式简化了部署流程。Knative平台可管理应用服务的部署、版本、网络、扩缩容。

Knative Serving通过HTTP URL的方式来暴露服务,同时有许多默认的安全设置。在特定的使用场景下,我们可能需要调整这些默认值以满足需求,或者调整服务版本之间的流量分配。由于Knative Serving内置了自动缩容为零的能力,因此称其为Serverless。

01 Serving的架构设计

Knative Serving建立在Kubernetes基础之上,支持Serverless应用和函数的部署与管理。Knative Serving提供了以下中间件原语。

  • 快速部署无服务容器。

  • 自动扩缩容机制,支持缩容到零。

  • 基于Istio组件的服务路由和网络编程。

  • 部署代码的时间点快照以及配置管理。

Knative Serving支持容器化的工作负载。

  • Function:传统FaaS的函数应用。通过将传统FaaS平台运行时框架与函数应用一起封装到容器中,实现对FaaS函数应用的支持。

  • 微服务:满足单一职责原则、可独立部署升级的服务。Knative非常适合用来部署和管理微服务。

  • 传统应用:主要指传统无状态的单体应用。虽然Knative不是运行传统应用的最佳平台,但支持传统无状态应用的部署。

Knative Serving定义了一套CRD对象。这些对象用于定义和控制Serverless工作负载在集群中的行为,如图1所示。

 

图1 Knative Serving对象模型

1、服务(Service):service.serving.knative.dev资源自动管理用户工作负载的整个生命周期。它控制路由和配置对象的创建,在服务更新时确保应用有对应的服务路由、配置和一个新的修订版。服务可以被定义为总是把流量路由到最新的修订版或特定修订版。

2、路由(Route):route.serving.knative.dev资源映射一个网络端点到一个或更多修订版。你可以用多种方式来管理流量,包括分流和命名路由。

3、配置(Configuration):configuration.serving.knative.dev 资源维护了部署应用的最终状态。它遵循云原生应用12要素原则,提供了代码和配置分离的机制。每次修改配置会创

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值