【问题标题】:How does Knative Serving's Activator intercept requests to scaled down revisions?Knative Serving 的 Activator 如何拦截缩小修订的请求?
【发布时间】:2020-03-10 14:36:50
【问题描述】:

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

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

Knative 服务版本:0.9.0

【问题讨论】:

    标签: kubernetes istio envoyproxy knative knative-serving


    【解决方案1】:

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

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

    • 私人服务,以您的应用程序 pod 为目标。需要它来发现 Pod IP。
    • 公共服务 被入口网关定位,根据它所处的模式(稍后会详细介绍),它将指向与第一个服务或激活服务的端点。

    无服务器服务模式

    无服务器服务可以是以下模式之一:

    • 服务
    • 代理

    服务模式

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

    • hello-go-pb - 是公共服务。
    • hello-go-pr - 是私有服务。

    代理模式

    当您的应用程序实例被自动缩放器缩减时,无服务器服务控制器会更新公共服务,以使用 Activator Service 发现的 IP 进行配置。触发自动缩放会缓冲请求,直到一项服务启动并运行并转发请求。代理模式如下图所示:

    总而言之,无服务器控制器设置公共服务的端点 通过在 Private Service 的端点之间交替,或者将其缩小到 Activator Service 的端点。

    【讨论】:

    • 这些图表非常好,不要害羞地将它们贡献给 Knative 项目,以防您被允许共享源文件!
    • 补充一点,当 pod 数量从 0 缩放到 1 时,hello-go-pb 服务端点从 activator-service ip-address 变为 ip-address,并且端点hello-go-pr 服务反映了新创建的 Pod 的实际 IP 地址
    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2011-01-20
    • 2019-02-19
    • 2010-11-21
    相关资源
    最近更新 更多