简介:在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代,Ingress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能。

K8s Ingress简介

K8s集群内的网络与外部是隔离的,即在K8s集群外部无法直接访问集群内部的服务,如何让将K8s集群内部的服务提供给外部用户呢?K8s社区有三种方案:NodePort、LoadBalancer、Ingress,下图是对这三种方案的对比:

通过对比可以看到Ingress是更适合业务使用的一种方式,可以基于其做更复杂的二次路由分发,这也是目前用户主流的选择。

K8s Ingress现状

套用一句流行语:理想是丰满的、现实是骨感的,这句话放在K8s Ingress也同样适用,K8s希望通过Ingress来标准化集群入口流量的规则定义,但实际业务落地时需要的功能点要远比Ingress提供的多,为了满足业务诉求,各Ingress Provider也各出招数,总的来说解法分成两类:使用annotations扩展与使用新的CRD。下面使用图示来说明:

K8s Ingress Provider的发展趋势

Ingress Provider的百花齐放,站在用户角度各有利弊,好处是用户的可选项很多,而坏处也恰恰是选择太多,我们如何去选择一个适合自身业务的Ingress Provider呢?不妨先看看权威CNCF的统计数据:

直观的可以看出对于占据Ingress Provider首位的Nginx是在预期之内的,细看之下虽Nginx Ingress仍占据榜首,但其增长有点乏力,甚至有下降的态势;反观Envoy已经从2019年的第三位攀升至2020的第二位,其使用率也从2019年的不足20%攀升至2020年的37%,几乎成倍增长。

所谓透过现象看本质,为什么Envoy的增长这么快呢?总结起来有以下几点:

  1. Envoy诞生在分布式微服务的大背景下,其配置热更新、HTTP3、Wasm等特性非常贴合目前的使用场景,同时社区治理也非常健康,很对互联网大厂也深度参与其中。
  2. Envoy即可用作Ingress Provider,也是ServiceMesh中sidecar的事实领导者,使用同一种技术同时解决南北向与东西向流量调度也是用户选择Envoy的一大原因。
  3. Envoy是达到生产级要求的,是经Lyft大规模验证过的。

K8s Ingress Provider的新选择 - 云原生网关

在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 K8s 主导的云原生时代,Ingress 成为 K8s 生态的网关标准,赋予了网关新的使命,使得流量网关 + 微服务网关合二为一成为可能。

MSE 发布的云原生网关在能力不打折的情况下,将两层网关变为一层,不仅可以节省50%的资源成本,还可以降低运维及使用成本。

云原生网关的优势

1、性能更强劲

在开始介绍前先抛个问题:Nginx Ingress的性能与Nginx是等价的吗?带着这个疑问我们直接看压测数据对比:

有没有感觉很意外呢?说实话压测后包括我们自己也是有些意外,压测结论如下:

我们也查看了Nginx Ingress的实现以及社区反馈,由于其大量使用Lua脚本从而对性能带来了非常大的影响,K8s Nginx Ingress社区也有具体的issue:

Poor performance in benchmark · Issue #5658 · kubernetes/ingress-nginx · GitHub

社区压测Lua对Nginx Ingress的性能影响截图如下:

2、功能更丰富

云原生网关作为流量网关与微服务网关的二合一,其功能上同时提供丰富的安全认证与服务治理能力,同时在性能上也做了内核调优以及接下来要发布的硬件加速功能,结合阿里内部两年的大促经验在高可用建设上也进一步做了扩展,整体功能大图如下:

3、稳定更可靠

经过历年大促的验证,阿里内部积累了一套高可用保障方案,从研发时、运行时、变更时来控制风险提升稳定性,在每个阶段各自有手段去验证其高可用目标,图示说明如下:

云原生网关即将上线的重磅功能

1、TLS硬件加速(已上线)

目前HTTPS已经成为公网请求的主要使用方式,全部使用HTTPS后由于其要做TLS握手,相比HTTP势必性能上会有很大损耗,目前随着CPU性能的大幅提升,利用CPU的SIMD机制可以很好的加速TLS的性能,因此我们基于Intel Ice Lake处理器推出TLS硬件加速功能,通过压测验证启用TLS加速后QPS可以大幅提升,具体如下图:

2、内置Waf

作为面向南北向的公网网关,使用Waf防护异常流量是很常规的需求,而且随着互联网环境变得越来越复杂,用户对防护的诉求是持续增强的,常规做法是将流量先接入Waf安全网关,过滤后再将流量转发给流量网关,最后到达微服务网关;云原生网关希望内置Waf模块直接对接阿里云的Waf云产品,使得用户的请求链接只经过云原生网关就可以同时完成Waf防护、流量分发、微服务治理,即提升链路RT,也降低网关的运维复杂度,图示如下:

3、Wasm插件市场

Wasm作为目前非常火热的技术之一,其最受追捧的原因在于其可以支持多语言编写Wasm程序,且Wasm提供了一个很好的沙箱环境来控制程序的执行环境,Istiod与Envoy社区也已经对Wasm插件做了基础的支持,云原生网关希望在社区的基础上推出自己的插件市场,提升网关的可扩展性,方便用户自定义网关插件。我们也对现有的wasm runtime做了性能对比与测试,这些测试数据也会作为我们的开发依据,图示如下:

写在最后

MSE - 云原生网关,旨在为用户提供更可靠的、成本更低、效率更高的,符合 K8s Ingress 标准的企业级网关产品,更多发布详情移步直播间观看:K8s Ingress为什么选择MSE云原生网关?-云栖号-阿里云

原文链接

本文为阿里云原创内容,未经允许不得转载。

K8s Ingress Provider 为什么选择 MSE 云原生网关?的更多相关文章

  1. 云原生之旅 - 9)云原生时代网关的后起之秀Envoy Proxy 和基于Envoy 的 Emissary Ingress

    前言 前一篇文章讲述了基于Nginx代理的Kuberenetes Ingress Nginx[云原生时代的网关 Ingress Nginx]这次给大家介绍下基于Envoy的 Emissary Ingr ...

  2. 云原生2.0网关API标准发展趋势

    摘要:Gateway API希望取代Ingress API. 本文分享自华为云社区<云原生2.0网关API标准发展趋势>,作者:华为云云原生团队 . 云原生网关API标准背景及发展现状 G ...

  3. API 管理在云原生场景下的机遇与挑战

    作者 | 张添翼 来源 | 尔达Erda公众号 ​ 云原生下的机遇和挑战 标准和生态的意义 自从 Kubernetes v1.0 于 2015 年 7 月 21 日发布,CNCF 组织随后建立以来,其 ...

  4. Aggregated APIServer 构建云原生应用最佳实践

    作者 张鹏,腾讯云容器产品工程师,拥有多年云原生项目开发落地经验.目前主要负责腾讯云 TKE 云原生 AI 产品的开发工作. 谢远东,腾讯高级工程师,Kubeflow Member.Fluid(CNC ...

  5. 云原生时代, Kubernetes 多集群架构初探

    为什么我们需要多集群? 近年来,多集群架构已经成为“老生常谈”.我们喜欢高可用,喜欢异地多可用区,而多集群架构天生就具备了这样的能力.另一方面我们也希望通过多集群混合云来降低成本,利用到不同集群各自的 ...

  6. 云原生之旅 - 8)云原生时代的网关 Ingress Nginx

    前言 当我们在Kubernetes部署的服务需要暴露给外部用户使用时,有三种选择:LoadBalancer,NodePort, Ingress. LoadBalancer类型得结合各个Cloud Pr ...

  7. 阿里云如何基于标准 K8s 打造边缘计算云原生基础设施

    作者 | 黄玉奇(徙远)  阿里巴巴高级技术专家 关注"阿里巴巴云原生"公众号,回复关键词 1219 即可下载本文 PPT 及实操演示视频. 导读:伴随 5G.IoT 的发展,边缘 ...

  8. 云原生生态周报 Vol. 15 | K8s 安全审计报告发布

    业界要闻 CNCF 公布 Kubernetes 的安全审计报告 报告收集了社区对 Kubernetes.CoreDNS.Envoy.Prometheus 等项目的安全问题反馈,包含从一般弱点到关键漏洞 ...

  9. 云原生API网关全生命周期管理Apache APISIX探究实操

    @ 目录 概述 定义 NGINX 与 Kong 的痛点 APISIX 的技术优势 特性 架构 应用场景 主要概念 部署 快速入门 quickstart安装 Admin API创建路由 RPM安装 安装 ...

  10. 给 K8s API “做减法”:阿里巴巴云原生应用管理的挑战和实践

    作者 | 孙健波(天元)  阿里巴巴技术专家本文整理自 11 月 21 日社群分享,每月 2 场高质量分享,点击加入社群. 早在 2011 年,阿里巴巴内部便开始了应用容器化,当时最开始是基于 LXC ...

随机推荐

  1. 主题 3 编辑器(Vim)

    主题 3 编辑器(Vim) 编辑器 (Vim) · the missing semester of your cs education (missing-semester-cn.github.io) ...

  2. JSF之常用注解

    @ManagedBean 以托管 bean 的形式注册一个类实例,然后将其放入到使用其中一个 @...Scoped 注释指定的范围内.如果没有指定任何范围,JSF 将把此 bean 放入请求范围,如果 ...

  3. 关于Ubuntu的磁盘空间不足其中的一种问题

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2014-07-06 01:12:48 ...

  4. spring boot 配置文件的加载顺序

    加载顺序为... 互为补充

  5. 记录--一道js笔试题, 刷新了我对map方法函数的认知

    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 背景 昨天在看一道笔试题的时候本以为很简单,但是结果不是我想象的那样,直接上笔试题. const array = new Array(5) ...

  6. Vue入门笔记三(Vuex)

    <Vue.js项目实战> Vuex 集中式的状态管理 Vuex从Flux(由Facebook开发)的概念中获取得灵感.Flux又一系列指导原则构成,阐明了如何使用集中式store来实现组件 ...

  7. #dp#CodeChef Little Elephant and Mouses

    LEMOUSE 分析 由于被单只老鼠吓到只能算一次,所以前两次走的位置也可能会被老鼠吓到. 设 \(dp[n][m][o][p]\) 表示走到 \((n,m)\) 上一步走的是 \(o\) 这种方式, ...

  8. 使用vcpkg和OHOS SDK构建开源软件

    安装OHOS SDK 参照OHOS IDE和SDK的安装方法,安装构建工具. 创建用户环境变量OHOS_NDK_HOME,指向OHOS SDK的安装路径,比如D:\Tools\Huawei\OHOS\ ...

  9. OpenHarmony 技术日直播回顾丨共建新技术,开拓新领域

    4月25日,"共建新技术,开拓新领域"OpenAtom OpenHarmony(以下简称"OpenHarmony")技术日在深圳顺利召开.OpenHarmony ...

  10. OpenHarmony社区运营报告(2022年12月)

    本月快讯 • 本月新增22款产品通过兼容性测评,累计220款产品通过兼容性测评. • 12月28日,OpenAtom OpenHarmony(以下简称"OpenHarmony")凭 ...