如何在 ACK 中使用 MSE Ingress

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 随着云原生架构的普及,K8s 通过 Ingress 标准逐步把流量网关标准化,微服务网关作为微服务的入口正在加速跟流量网关融合,Ingress 作为容器和微服务的交集,作为数字世界的入口,作为安全和高可用的第一道防线变得越来越重要!下面给大家分享一下 Ingress 标准 和 实现的趋势,介绍一下 MSE Ingress在这个趋势下的优势和实践,为大家做关键入口选择多一些参考。

本文根据《如何在 ACK 中使用 MSE Ingress》的直播进行整理。

本文内容源自“5分钟玩转容器服务进阶课程”沉淀,点击链接,学习课程全部内容。

https://developer.aliyun.com/learning/course/1038


直播回放链接:

https://yqh.aliyun.com/live/detail/29200



Ingress 趋势


K8s Ingress由标准和实现两部分组成, 下面我们分别探讨一下他们各自的现状和发展趋势。

Ingress 标准现状

我们把网关按照入口-内部,2C-2B分成四个象限,每个象限都有一个网关子领域,目前 Ingress 主要定义的是流量网关的标准,但是不能很好的定义 API 网关(API管理) 和 微服务网关(服务治理)场景,更无法定义集成网关(新老系统协议转换和接口集成)场景; 因此 Ingress 从标准上往 Gateway-API 方向去演进,解决 API 管理和 微服务治理的问题,但是演进需要比较长时间,当前由于 Ingress 标准定义能力比较有限,不同的实现通过各自方法扩展,但是扩展方式在分化,因此 Ingress 作为标准的价值弱化,面对未来 Ingress 标准该何去何从?

image.png

Ingress 标准趋势

从社区的反馈上看,Ingress长期会往 Gateway API 场景去演进,中短期并存,短期以 Ingress 为主去扩展;目前 Gateway API 目前也发了 Beta 版本,基本定型; Gateway API 中增加了对 API 管理和微服务领域的增强。

image.png

Ingress 实现现状

Ingress 实现目前从社区上有 Nginx 和 Envoy 两个体系,Nginx 存量大,但是由于架构设计的问题,随着用户规模变大逐步暴露安全和稳定性风险,目前社区宣布停止6个月新需求开发, 集中解决安全和稳定性问题;Envoy + Istio 作为后起之秀,采用数据面和控制面分离架构,有更好的安全和稳定性保障,并且支持多语言扩展,热更新优势,Envoy 社区也推出 Gateway 产品加速 Gateway API 落地。

image.png

Ingress 实现趋势

从 Ingress 实现趋势上看,虽然 Nginx依然保持最大市场份额,但是可以看到 Envoy以最快的速度成为第二选型,相信在未来几年 Nginx 和 Envoy 会平分天下。

image.png

ngress 产品趋势

从行业上看,网关呈现高集成发展趋势,统一接入降低部署运维成本,降低请求链路RT,因此在这个趋势之下阿里云推出 MSE Ingress(云原生网关)产品,将流量网关、微服务网关、安全网关三合一,提供一站式网关解决方案,兼容 Nginx 80%+扩展注解,并且面对未来支持Gateway API标准,基于 Ingress 增强微服务领域灰度、限流、观测等能力,提供安全和扩展优势。

image.png

MSE Ingress 优势


MSE Ingress (云原生网关)孵化于阿里巴巴,于2021年完成商业化,提供功能丰富,高可用,高可用,安全、易扩展等核心竞争力,提供开箱即用的网关服务。

MSE Ingress 简介

MSE Ingress (云原生网关)将流量网关、微服务网关、安全网关三合一,结合微服务体系统一控制东西南北流量,集成 WAF 数据面,流量不过 WAF,降低整个链路RT,提供更高性价比网关。

image.png

MSE Ingress 功能优势

MSE Ingress 在安全、服务治理、可观测在阿里云上完成了开箱即用的高集成方案,并且提供了丰富的扩展机制,方便用户定制开发。

image.png

MSE Ingress 可用性优势

MSE Ingress 在阿里巴巴经历双十一洪峰考验,经过两年多的发展,构建了强大的高可用体系,如推空保护和本地缓存,解决 K8s API-Server 等后端服务异常的保护策略,面对失败设计提升可用性,并且定期做故障演练不断锤炼,为用户在入口多一份稳定性保障!

image.png

MSE Ingress 性能优势

由于 MSE 采用 Envoy 内核,在 Ingress 场景下会比 Nginx 高 90%,很多人可能会有疑问,Nginx本身性能是非常高的,但是适配 Ingress 场景的机制导致性能有所下降,最终做为 Ingress 场景表现不如 Envoy。 对于网关性能非常大的消耗是证书卸载和压缩,目前 MSE Ingress 采用硬件加速将 HTTPS QPS 提升86%,RT下降50%,未来我们将推出gzip硬件解压能力,进一步提升网关性能;由于我们在阿里有大规模生产经验,因此我们从OS内核到Envoy内核做了非常多的优化,性能又提升40%,因此采用 MSE Ingress 预计成本至少下降50%,欢迎采用阿里云 PTS 压测感受 MSE Ingress 性能表现!

image.png

MSE Ingress 安全优势

Ingress 作为入口也是安全防线入口,MSE Ingress 提供了多重防护能力,从 入口 mTLS 双向认证,到后端 mTLS 双向认证,支持全链路保障,支持与阿里云盾证书集成,自动更新证书,防止证书过期风险。支持 JWT/OIDC等标准登录认证机制,也提供自定义登录认证模式,可集成 IDaaS支持支付宝、淘宝等三方认证机制,开箱即用。集成Sentinel支持服务级限流防护,集成WAF支持细粒度流量防护,提供数十种默认安全插件给用户选择,也支持用户自定义安全插件灵活扩展。

image.png

MSE Ingress 扩展性优势

MSE Ingress 插件市场支持多语言扩展,采用 WASM 沙箱机制支持动态更新;采用 Envoy + Istio开源架构无厂商锁定。

image.png

MSE Ingress 协议优势

MSE Ingress 支持 HTTP-Dubbo 协议转换,在入口简单方便的提供协议转换,提升研发运维效率。

image.png

MSE Ingress 兼容优势

MSE Ingress虽然采用 Envoy 内核,但是兼容了 Nginx Ingress 80%+以上核心注解,支持自建 Nginx Ingress 平衡迁移 MSE Ingress,未来 MSE Ingress 可以更好的往 Gateway API演进。

image.png

MSE Ingress 实践


通过上面 MSE Ingress 优势介绍大家可能已经决定选择 MSE Ingress了,但是使用 MSE Ingress 最佳实践是什么?如何平衡迁移呢?

MSE Ingress 最佳实践

MSE Ingress在北向入口建立安全和高可用方向,路由到南向支持K8s/Nacos/ECS/FC多种服务发现模式,统一接入。东西向跨域互通,打通多个业务域,多个 Region,云上云下,云边,跨云,跨安全域互通;统一控制东西南北流量。东西向网关建议采用白名单机制降低安全风险。

image.png

MSE Ingress 平滑迁移方案

由于 MSE Ingress 兼容 Ingress 标准,因此创建完 MSE Ingress 实例后可以自动的完成路由规则映射,因此只需要从DNS/SLB入口切换到 MSE Ingress 实例即可。

image.png

image.png

MSE Ingress 新金融客户案例 - 费芮互动

费芮互动的自媒体平台运维超过3亿粉丝,每日处理粉丝交互超过1亿次, 电子券系统发放6亿+ 张电子券,4万+门店使用费芮移动支付解决方案,支付系统每月处理3000万+ 笔。如此大规模的业务流量对网关接入层的性能和稳定性提出较大的挑战。

  • 费芮的业务应用部署在阿里云容器服务 ACK 上,基于 Nginx 的 K8s Ingress 入口网关与业务应用混布在同一集群中,对于突发流量的应对以及横向扩缩容能力有限,同时海量C端用户发起的 HTTPS 请求会产生大量的 TLS 加解密操作,对服务器的 CPU 压力很大,从而影响业务系统的稳定性。
  • 费芮在容器化改造后仍有一些传统的单体应用,服务之间通过域名方式调用,无法统一使用K8sservice进行统一管理。费芮急需高性能、高可用的网关接入层,能够对南北向和东西向的流量进行统一管理,同时希望能平滑迁移存量路由配置,减少网关替换的工作量。

MSE 云原生网关可以很好的解决以上难题:

  • MSE 可将 ACK 集群内服务一键导入与自动同步,并支持多个ACK集群复用同一个网关实例。
  • MSE 兼容 K8s Ingress 规范,且支持 Nginx Ingress 核心功能注解的无缝转换。通过 ack-mse-ingress-controller 组件,可自动监听、解析 K8s 集群中 Ingress 资源,将 ACK 中的 Ingress 路由直接同步至云原生网关中生效;
  • MSE 直连业务 Pod IP,不经过传统 Cluster IP,RT 更低;通过对 OS 内核参数与组件调优,QPS 比 Nginx 提升约40%;利用硬件卸载 TLS 证书验证加速, HTTPS QPS 提升80%。
  • MSE 的路由管理能力,既能实现南北向流量调度将服务对外暴露,也能支持东西向流量调度协助传统应用的服务间调用。丰富的负载均衡、限流降级、流量分发策略,可保证系统的稳定性,并满足业务快速迭代需求。

image.png

MSE Ingress DEMO

最后通过一个简单的 DEMO简单介绍一下通过MSE Ingress做灰度,也可以通过云启免费试用:https://developer.aliyun.com/adc/scenario/2bc3a435654448b5a7d27d2bcb2bc646

image.png

image.png

MSE Ingress 云原生网关新老客户同享 9 折,欢迎试用,有问题欢迎扫描钉钉二维码 (34754806)和我们交流~

image.png

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
13天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
29 2
|
8月前
|
Kubernetes 负载均衡 应用服务中间件
深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置
深入理解 Kubernetes Ingress:路由流量、负载均衡和安全性配置
1366 1
|
4月前
|
Kubernetes 应用服务中间件 nginx
Kubernetes上安装Metallb和Ingress并部署应用程序
Kubernetes上安装Metallb和Ingress并部署nginx应用程序,使用LoadBalancer类型的KubernetesService
249 8
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习--ingress详细解释与应用(nginx ingress controller))
k8s学习--ingress详细解释与应用(nginx ingress controller))
424 0
|
3月前
|
缓存 Kubernetes 负载均衡
在K8S中,ingress 有何作用?
在K8S中,ingress 有何作用?
|
5月前
|
Kubernetes 应用服务中间件 API
【Ingress 秘籍】集群进出流量的总管:揭秘 Kubernetes 中 Ingress 的终极奥秘!
【8月更文挑战第25天】Ingress是Kubernetes中用于管理HTTP与HTTPS流量进入集群的核心功能。作为集群内外通信的桥梁,Ingress通过定义规则将外部请求导向内部服务。本文详细介绍了Ingress的基本概念、配置方法及其实现方式。通过使用不同的Ingress控制器(如Nginx、Traefik等),用户可以根据需要选择最适合的方案。文中还提供了示例代码展示如何创建服务、部署应用及配置Ingress规则。
188 6
|
5月前
|
Kubernetes 负载均衡 应用服务中间件
在k8S中,ingress是什么?
在k8S中,ingress是什么?
|
5月前
|
API UED 开发者
超实用技巧大放送:彻底革新你的WinForms应用,从流畅动画到丝滑交互设计,全面解析如何在保证性能的同时大幅提升用户体验,让软件操作变得赏心悦目不再是梦!
【8月更文挑战第31天】在Windows平台上,使用WinForms框架开发应用程序时,如何在保持性能的同时提升用户界面的吸引力和响应性是一个常见挑战。本文探讨了在不牺牲性能的前提下实现流畅动画与交互设计的最佳实践,包括使用BackgroundWorker处理耗时任务、利用Timer控件创建简单动画,以及使用Graphics类绘制自定义图形。通过具体示例代码展示了这些技术的应用,帮助开发者显著改善用户体验,使应用程序更加吸引人和易于使用。
88 0
|
5月前
|
Kubernetes API 网络安全
在K8S中,ingress该如何使用?
在K8S中,ingress该如何使用?
|
8月前
|
Kubernetes 负载均衡 应用服务中间件
Kubernetes的Ingress
Kubernetes的Ingress
130 0
Kubernetes的Ingress

相关产品

  • 微服务引擎