Serverless 进阶实战课
静远
某大厂资深云原生技术专家
11937 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 29 讲
Serverless 进阶实战课
15
15
1.0x
00:00/00:00
登录|注册

06 | 流量转发:函数在不同情形下是如何执行的?

你好,我是静远。
在前面的课程中,我跟你分享了函数实例的冷启动和扩缩容,这两个点是 Serverless 的核心特征。可以说,提到 Serverless 必然会提到冷启动和扩缩容。但你是否想过,是什么促使 Serverless 的函数实例从 0 到 1,从 1 扩容到 N,又从 N 缩容到 0 的呢?
这正是我本节课程要跟你分享的主题——流量机制。确切地说,是流量在这些情形下的转发机制。希望通过这节课,你能够了解 Serverless 在冷热启动、常规流量升降、异步请求、多并发等不同情形下流量的转发过程,并在脑海中构筑出一幅 Serverless 的全链路流量转发拓扑图。
这节课,我选择了 Knative 作为开源的 Serverless 引擎框架,来介绍冷启动和分流机制的流量转发。至于详细的开源引擎的分析、以及开源引擎私有化整体解决方案,我会在第三模块实战进阶中跟你详细探讨。

知识储备

在讲流量转发之前,我们先来回顾一下 Knative,它主要包括 Eventing、Serving,Build 三大组件,其中 Build 现在已经被tektoncd/pipeline替代。这三大组件中,跟我们主题相关的主要是分管流量的 Serving 组件。
Knative Serving 定义了一组特定的对象,使用 Kubernetes CRD的方式来实现这些对象。我们看一张 Knative 官方简单示意图:
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

Knative作为开源的Serverless引擎框架,通过其Serving组件实现了流量转发的机制。文章详细介绍了Knative的基本概念,包括Eventing、Serving和Build三大组件,重点介绍了Serving组件的流量转发机制。在入口流量方面,Knative通过抽象出Ingress资源来对接不同的网络扩展,推荐使用Kourier、Istio、Contour等方式来进行对接。在冷启动的流量转发方面,文章详细描述了Knative的处理过程,包括请求到达Istio Ingress Gateway后的转发流程,以及冷启动过程中的Activator处理和User Pod的创建等步骤。此外,还介绍了Knative引入的TBC(Target Burst Capacity)来控制流量路径,以防止流量突增导致的问题。文章还涵盖了异步调用和单实例多并发下的流量转发机制。总的来说,本文通过具体的示例和流程图,深入浅出地解释了Serverless中流量转发的关键机制,为读者提供了全链路流量转发拓扑图的构建思路。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Serverless 进阶实战课》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(3)

  • 最新
  • 精选
  • 设置函数的并发,会影响 扩缩容的时机。 会不会出现类似的场景: 函数的并发设置为 2,这时候有 3个请求过来了 触发了扩容,当完成扩容 的时候 第一个实例已经处理完成了第一个请求,这时候不是 白白做了扩容?

    作者回复: 某一时刻确实是存在这样的情况的,但扩容是一个时间段内并发不断上升导致的行为,因此这个时刻『白做的扩容』通常是为接下来新增的并发而准备的。

    2022-09-11归属地:上海
    2
  • 小垚
    老师,看你讲到了Knative ,私有化的部分在第几节来讲啊?有关于怎么选择这一块的建议和经验么?

    作者回复: 会在第三章里面跟大家来展开,整个课程呢,会分为公有云的技术原理和使用,私有化重点在最后几讲中来介绍,开源的Serverless 平台和引擎,分享为什么还要进行私有化,作为不同的角色应该怎么做,实战经验和技巧等等,欢迎持续关注和讨论哦

    2022-09-09归属地:上海
    1
  • 兰天
    在用官方的例子测试并发下的扩缩容,比如把containerConcurreny设置为3,其它参数默认,hey压测5或者6个并发,发现复本数为3不符合预期2。关于并发数和副本数还有stable window 的关系看了很多文档始终不能明白🐶

    作者回复: 一般来说不会,可以贴一下你的配置看看,hey 压测knative 的命令也可以在检查一下,另外contanerConcurrency 是个硬性值。副本数可以理解为多少个帮手,并发数理解为多少个任务同时到达,stable window要结合panic window一起看

    2023-05-05归属地:浙江
收起评论
显示
设置
留言
3
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部