zhaojizhuang / blogtalk

0 stars 0 forks source link

【Knative系列】看完这篇还不懂 Knative Serving,你来打我~ | 赵吉壮 #34

Open zhaojizhuang opened 3 years ago

zhaojizhuang commented 3 years ago

https://chumper.cn/2020/10/15/knative-serving/

本文主要讲解 Knative serving 系统及组件: 发展历程Knative 是谷歌开源的 serverless 架构方案,旨在提供一套简单易用的 serverless 方案,把 serverless 标准化。目前参与的公司主要是 Google、Pivotal、IBM、Red Hat,2018年7月24日才刚刚对外发布,当前还处于快速发展的阶段(3.4k star, 3.3k issue

jingb commented 3 years ago

Activator本身是个有状态的组件当前只能部署单实例 除了处理从0->1的过程还有流量保持的左右 那规模大了这块怎么搞

zhaojizhuang commented 3 years ago

@jingb Activator本身是个有状态的组件当前只能部署单实例 除了处理从0->1的过程还有流量保持的左右 那规模大了这块怎么搞

Activator 本身是配置了 HPA 的,当流量大了之后本身也可以扩缩容

jingb commented 3 years ago

@zhaojizhuang

@jingb Activator本身是个有状态的组件当前只能部署单实例 除了处理从0->1的过程还有流量保持的左右 那规模大了这块怎么搞

Activator 本身是配置了 HPA 的,当流量大了之后本身也可以扩缩容

之前我这边用的是0.16版本的,Activator起了多个实例的话 去压ksvc,会发现ksvc占的pod数量在一个范围内就一直横跳,排查了好久之后发现activator很多数据都是放内存里的,是个有状态的服务,不知道现在是不是改了

acodetailor commented 3 years ago

麻烦问一下,关于文章中"当实例足够时,autoscaler 会更新 public service 的endpoints 指向 revision对应的pod,将请求导向真正的后端,这时候处理请求过程中 activator 不在起作用"这句,我的环境pod ready后public-service的后端还是activator,是knative版本问题吗(我的是1.17)。 另外private-service的作用只是用来获取后端地址吗,还是pod ready后通过private-service进行访问。

zhaojizhuang commented 3 years ago

@jingb

@zhaojizhuang

@jingb Activator本身是个有状态的组件当前只能部署单实例 除了处理从0->1的过程还有流量保持的左右 那规模大了这块怎么搞

Activator 本身是配置了 HPA 的,当流量大了之后本身也可以扩缩容

之前我这边用的是0.16版本的,Activator起了多个实例的话 去压ksvc,会发现ksvc占的pod数量在一个范围内就一直横跳,排查了好久之后发现activator很多数据都是放内存里的,是个有状态的服务,不知道现在是不是改了

如果你是这么理解有状态(保存在内存里)的话,最新版本还是保存在内存里的。可以通过设置 TBC (target-burst-capacity) 来让 activator 在 实例数不为 零时,将 activator 从 流量路径中摘掉

zhaojizhuang commented 3 years ago

@acodetailor 麻烦问一下,关于文章中"当实例足够时,autoscaler 会更新 public service 的endpoints 指向 revision对应的pod,将请求导向真正的后端,这时候处理请求过程中 activator 不在起作用"这句,我的环境pod ready后public-service的后端还是activator,是knative版本问题吗(我的是1.17)。 另外private-service的作用只是用来获取后端地址吗,还是pod ready后通过private-service进行访问。

pod ready后public-service的后端还是activator 这个与 TBC (target-burst-capacity) 的设置有关,可以研究下; private-service的作用就是是用来获取后端地址的, 实际上 controller (sks controller)会根据 sks 的mode (mode 由 autoscaller 来决定)来更细 public service 中的 endpoints

Explosivv commented 3 years ago

Route应该还会建一个ExternalName类型的Service吧

zhaojizhuang commented 3 years ago

@Explosivv Route应该还会建一个ExternalName类型的Service吧