Kubernetes 克纳蒂夫是如何发球的';s Activator拦截缩小版本的请求?

Kubernetes 克纳蒂夫是如何发球的';s Activator拦截缩小版本的请求?,kubernetes,istio,envoyproxy,knative,knative-serving,Kubernetes,Istio,Envoyproxy,Knative,Knative Serving,如上所述,Knative的Activator接收并缓冲对非活动修订的请求 这个路由是如何实现的?我在应用程序的名称空间中看到的只是一个VirtualService将请求路由到修订版,所以我看不到进入网格的流量是如何重定向到Activator的 Knative服务版本:0.9.0Knative有一个新的概念(CRD),即为每个Knative服务创建的无服务器服务 无服务器服务创建两个Kubernetes服务: 针对您的应用程序吊舱的专用服务。需要它来发现Pod IP 公共服务是入口网关的目标,根

如上所述,Knative的Activator接收并缓冲对非活动修订的请求

这个路由是如何实现的?我在应用程序的名称空间中看到的只是一个VirtualService将请求路由到修订版,所以我看不到进入网格的流量是如何重定向到Activator的

Knative服务版本:0.9.0

Knative有一个新的概念(CRD),即为每个Knative服务创建的无服务器服务

无服务器服务创建两个Kubernetes服务:

  • 针对您的应用程序吊舱的专用服务。需要它来发现Pod IP
  • 公共服务是入口网关的目标,根据其所处的模式(稍后将详细介绍),它将指向与第一个服务相同的端点或activator服务的端点
无服务器服务模式 无服务器服务可以采用以下模式之一:

  • 服侍
  • 代理
发球方式 只要有应用程序的pod实例在运行,无服务器服务就处于服务模式。因此,您的公共服务配置了来自您的私有服务的端点,这意味着入口网关转发的请求将到达您的应用程序,如下图所示:

  • 你好,是公共服务部
  • 你好,go公关-是私人服务
代理模式 当autoscaler缩小应用程序的实例时,无服务器服务控制器将更新公共服务,以使用Activator服务发现的IP进行配置。它触发自动缩放缓冲请求,直到一个服务启动并运行并转发请求。代理模式如下图所示:

总之,无服务器控制器设置公共服务的端点
通过在私有服务的端点之间切换,或者如果将其缩小到零,则切换到Activator服务的端点。

这些图非常好,如果允许共享源文件,请不要羞于将它们贡献给Knative项目!另外,当POD的数量从0扩展到1时,hello go pb服务端点从activator服务ip地址更改为ip地址,hello go pr服务的端点反映了新创建的POD的实际ip地址