K8s Ingress Provider 为什么选择 MSE 云原生网关?

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测可视化 Grafana 版,10个用户账号 1个月
简介: 在虚拟化时期的微服务架构下,业务通常采用流量网关 + 微服务网关的两层架构,流量网关负责南北向流量调度和安全防护,微服务网关负责东西向流量调度和服务治理,而在容器和 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等特性非常贴合目前的使用场景,同时社区治理也非常健康,很对互联网大厂也深度参与其中。


  1. Envoy即可用作Ingress Provider,也是ServiceMesh中sidecar的事实领导者,使用同一种技术同时解决南北向与东西向流量调度也是用户选择Envoy的一大原因。


  1. Envoy是达到生产级要求的,是经Lyft大规模验证过的。


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


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



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


云原生网关的优势


1、性能更强劲


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



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



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

https://github.com/kubernetes/ingress-nginx/issues/5658


社区压测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 标准的企业级网关产品,更多发布详情移步直播间观看:https://yqh.aliyun.com/live/detail/27794


MSE - 云原生网关提供后付费和包年包月两类付费模式,支持杭州、上海、北京、深圳 、张家口、香港、新加坡、美国(弗吉尼亚)、美国(硅谷)、德国(法兰克福)10个 region,并会逐步开放其他 region,云原生网关购买链接在这里


新春福利,嗨购2022,现在购买MSE云原生网关预付费全规格立享7折优惠。


也可钉钉搜索群号 34754806 可加入用户群交流、答疑。


相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
2月前
|
Kubernetes 负载均衡 应用服务中间件
kubernetes—Ingress详解
kubernetes—Ingress详解
66 0
|
2月前
|
Kubernetes 应用服务中间件 nginx
|
3月前
|
Kubernetes 应用服务中间件 nginx
k8s ingress不生效的bug 解决了。
k8s ingress不生效的bug 解决了。
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-Ingress(安装、模板、创建、删除)
k8s学习-Ingress(安装、模板、创建、删除)
75 0
|
2天前
|
Kubernetes 容器
百度搜索:蓝易云【k8s ingress获取客户端客户端真实IP】
无论您选择哪种方式,确保在Ingress配置中启用了相应的选项,并根据您的环境进行适当的调整。这将允许您在后端服务中获取到客户端的真实IP地址。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
8 1
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-CKA真题-七层负载均衡Ingress
k8s学习-CKA真题-七层负载均衡Ingress
44 0
|
3月前
|
Kubernetes 安全 网络协议
k8s教程(service篇)-ingress 7层路由机制(下)
k8s教程(service篇)-ingress 7层路由机制(下)
60 0
|
3月前
|
Kubernetes 网络协议 应用服务中间件
k8s教程(service篇)-ingress 7层路由机制(上)
k8s教程(service篇)-ingress 7层路由机制(上)
93 0
|
4月前
|
Kubernetes 负载均衡 应用服务中间件
K8s 实战之ingress安装
K8s 实战之ingress安装
|
4月前
|
Kubernetes 应用服务中间件 API
5 分钟了解 Kubernetes Ingress 和 Gateway API
5 分钟了解 Kubernetes Ingress 和 Gateway API
77 0

相关产品

  • 容器服务Kubernetes版
  • 微服务引擎
  • 推荐镜像

    更多