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

10|小试牛刀(二):如何突破VPC网络的速度限制?

你好,我是静远。
冷启动这节课里,我跟你聊到了影响函数第一次执行速度的因素有很多,其中一个关键因素就是:VPC 网络的建联时间。
我们知道,VPC 是云厂商提供给用户的一个安全隔离的网络环境,用户可以在 VPC 空间中部署自己的服务,如 Redis、数据库、MQ 等。而我们的函数通常是创建在函数专属的 VPC 中的。一个生产级别的函数服务应用,少不了需要和其他的资源和中间件打交道。那么,跨 VPC 之间的通信效率就显得尤为重要了。
今天这节课,我就针对 VPC 之间的通信效率,通过案例实操的方式,为你剖析函数在跨 VPC 上的技术要点。
希望通过这节课,能够让你得到一些在 Serverless 的实战和后续优化工作的启发,能举一反三地找到更多优化方法,进一步突破函数访问速度的上限。

跨 VPC 问题的演进

针对云上网络连接的方式,相信你已经了解到不少,如专线(高速通道)、VPN 网关、对等连接等方式。这些方式,有的用来解决 IDC 和 VPC 的连接,有的用来解决 VPC 与 VPC 之间的互通。
这其中,对等连接的确可以解决函数跨 VPC 的问题,但我们试想一下,如果每个用户都通过这种方式来解决这种问题,那么平台每次都需要搭建两端的连接,并且还可能会遇到 IP 网段冲突的问题。这样的做法显然不具备普适性,成本也过高。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入探讨了如何突破VPC网络的速度限制,通过代理技术实现函数在跨VPC上的高效访问。作者首先分析了VPC网络建联时间对函数执行速度的影响,以及当前解决跨VPC通信效率的方式存在的问题。随后,提出了一种新的解决方案——代理技术,通过在函数计算的集群与用户的VPC之间添加Proxy Node,并使用隧道和转发技术来实现函数通过Proxy机器代理的方式访问用户VPC的资源。文章详细介绍了隧道技术和转发技术的实操步骤,包括创建GRE隧道、设置转发能力和完善路由规则等。通过这些技术手段,读者可以了解如何在Serverless的实战中突破VPC网络的速度限制,提高函数访问速度的上限。 此外,文章还涉及了容器网络在访问用户VPC服务时的差异和高可用方面的考虑。对于容器网络的访问问题,作者提出了使用ip-masq-agent来管理IP伪装的扩展,以解决Pod IP和Proxy BCC上构建的路由规则不一致的情况。而在高可用方面,建议为每个VPC/Subnet建立一对主备Proxy,并使用HaVip进行容灾切换,同时对Proxy Node进行自动扩缩容以应对流量变化。 总的来说,本文通过深入的技术讲解和实操案例,帮助读者了解了如何优化函数在跨VPC场景的访问速度,探讨了代理技术的实现过程以及相关技术要点。同时,还提出了思考题和延伸阅读,为读者提供了更多的学习和交流空间。

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

全部留言(4)

  • 最新
  • 精选
  • 马洪超
    func bcc和proxy bcc本来就是通的,为啥要加一层隧道呢,直接把proxy bcc做网关,不就直接可以访问user bcc了吗

    作者回复: 是互通的,内核转发,目的是封装原始ip 包送达到proxy bcc

    2022-09-28归属地:上海
    3
    1
  • Wang Yifei
    “此时 func bcc1 访问 user bcc 172.16.101.4 仍然访问不通,在 proxy bcc 侧监听 eth1 流量可以发现,eth1 发往用户 VPC 的包的源 IP 仍是 func1 bcc gre0 设备的 IP 10.0.0.3” 这里有个问题,proxy bbc的gre0设备是不是会把gre封装的包头去掉后,继续根据payload进行路由转发? 如果是这样的话,payload的源IP为什么还是10.0.0.3,而不是192.168.80.8呢?

    作者回复: 是192.168.80.8,10.0.0.3是隧道的ip

    2023-04-04归属地:德国
  • Wang Yifei
    没有找到Kubernetes中相关CM的配置 但我理解,是否也可以这样实现:在func bcc1中添加一条iptables规则,把发送给172.16.101.0/24流量的Source IP修改为10.0.0.3。

    作者回复: 跨vpc 是不可以的哈

    2023-04-04归属地:北京
  • 网卡会提前在用户 VPC 所在的子网 Subnet 中创建,但租户的权限属于函数计算 VPC ========== 这个是怎么实现的?

    作者回复: 首先需要用户授权,然后平台在创建的时候通过特权账号从网卡后台服务侧申请创建,简单来说,就是用户,函数计算平台,网卡后台服务三者针对弹性网卡创建的一个关系。这个关系基础上的访问属于云厂商的特性

    2022-09-20归属地:上海
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部