- 分享时间:2021 年 8 月 25 日(周三)晚上 8:00 到 9:00
- 议题名称:基于 Envoy/Istio 的云原生 API 网关 —— 开源项目 Hango 的设计与实现
- 主持人:宋净超(Tetrate)
- 分享嘉宾:韩佳浩(网易轻舟)
- 直播间地址:https://live.bilibili.com/23095515
- 回放地址:https://www.bilibili.com/video/BV1YL411b7e6/
- 提问地址:https://docs.qq.com/doc/DRUZSbHVkck9Wc0V4
- PPT 下载:见 Istio 大咖说往期节目列表
讲师简介
韩佳浩,网易数帆资深研发工程师,主导 Hango 网关开源研发及设计,负责网易数帆轻舟 API 网关集团内部大规模落地及产品化建设。具有三年网关相关研发及大规模实践经验。
话题介绍
云原生架构演进下,更多的业务着重于 API 的统一暴露,API 网关便成为 API 统一接入的必备组件。本次分享主要从云原生概念出发,探讨云原生模式下 API 网关的选型之道;介绍网易研发的高性能、可扩展,功能丰富的云原生 API 网关 Hango 的设计之道以及落地实践。
问答
-
Envoy体系学习图谱,现在是整体文档都看完有用到时再翻文档
答:可以关注社区动态,学习思路路线上可以根据自己想对 Envoy了解的程度按照以下线路进行:了解 Envoy 基本架构 -> 使用 Envoy 常用特性 -> 尝试扩展 envoy -> 对 Envoy 做深度定制,另外 Tetrate 即将推出免费的 Envoy 教程,敬请关注。
-
Hango项目与网易轻舟项目是什么关系?开源版么?
答:网易轻舟项目包含轻舟微服务、轻舟API网关、轻舟容器等产品,轻舟API网关是Hango项目的商业版。
-
Ingress Controller与API Management是否有必要合为一个产品? 就是 k8s 资源,意思两个产品位置是否需要合一?
答:具体需要看网关的定位,如果作为微服务网关的话,不建议合为一个产品;如果承担ingress功能,可以合一。
-
使用 Envoy 以网关的形式和以 Sidecar 的形式做服务治理有什么区别,使用场景分别是什么呢?以网关的形式做东西南北向流量的服务治理的方案可行吗?
答:网关主要做南北流量治理;Sidecar承担集群东西流量治理。在大规模场景下,不建议网关作为东西流量治理;服务调用关系简单,API规模有限可以。
-
Hango必须配合Istio一起使用吗?
答:推荐使用Istio, 仅单独使用网关数据面丧失网关动态配置能力,自身静态配置复杂度也大大提高。
-
接问题5,如果是可以独立使用,在k8s内额外创建一个网关,这个网关目的是什么,这在集群内服务之间互访的时候等于破坏了Kubernetes本身的svc特性,consumer服务找这个网关所注册的服务?能否举例一个具体的场景。
答:不推荐独立使用,网关的功能对外统一暴露集群内API。网关暴露的意义,一部分是代理,另一部分是丰富的治理功能以及多维度的指标监控。
-
加载 Lua后性能有下降吗?
答:简单的插件,性能基本在20%损失。
-
边缘网关有哪些场景?看到ppt里有写,但是没有讲。
答:类似集群中的统一API暴露,只是不需要额外的用户配置。
-
性能没太看懂,9wqps是几台机器?几c?
答:容器:8c8g 物理机:56c256g
-
lua 怎么保证脚本安全?隔离性怎么样?写个while true 会不会把整个网关搞崩?
答:lua的插件链的异常不会导致主线程crash,异常后跳过逻辑,执行之后的插件链。
-
大规模场景下,踩过哪些坑
答:升级的平滑度以及线上规模的预估。
-
可以认为是在Istio gateway + virtualservice的一个升级版么? 是不是用了这个网关我就可以不用Istio gateway了?
答:是的