如何在 ACK 中使用 MSE Ingress

本文涉及的产品
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 本文将为大家分享一下 Ingress 标准 和 实现的趋势,介绍一下 MSE Ingress 在这个趋势下的优势和实践,为大家做关键入口选择多一些参考。

作者:彦林


随着云原生架构的普及,K8s 通过 Ingress 标准逐步把流量网关标准化,微服务网关作为微服务的入口正在加速跟流量网关融合,Ingress 作为容器和微服务的交集,作为数字世界的入口,作为安全和高可用的第一道防线变得越来越重要!本文将为大家分享一下 Ingress 标准 和 实现的趋势,介绍一下 MSE Ingress 在这个趋势下的优势和实践,为大家做关键入口选择多一些参考。

Ingress 趋势


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


Ingress 标准现状


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


1.png


Ingress 标准趋势


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


2.png


Ingress 实现现状


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


3.png


Ingress 实现趋势


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


4.png


Ingress 产品趋势


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


5.jpeg


MSE Ingress 优势


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


MSE Ingress 简介


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


6.jpeg


MSE Ingress 功能优势


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


7.png


MSE Ingress 可用性优势


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


8.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 性能表现!


9.png


MSE Ingree 安全优势


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


10.png


MSE Ingress 扩展性优势


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


11.png


MSE Ingress 协议优势


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


12.png


MSE Ingress 兼容优势


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


13.png

MSE Ingress 实践


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


MSE Ingress 最佳实践


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


14.png


MSE Ingress 平滑迁移方案


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


15.png

16.png


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


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


  • 费芮的业务应用部署在阿里云容器服务 ACK 上,基于 Nginx 的 K8s Ingress 入口网关与业务应用混布在同一集群中,对于突发流量的应对以及横向扩缩容能力有限,同时海量 C 端用户发起的 HTTPS 请求会产生大量的 TLS 加解密操作,对服务器的 CPU 压力很大,从而影响业务系统的稳定性。 


  • 费芮在容器化改造后仍有一些传统的单体应用,服务之间通过域名方式调用,无法统一使用 K8s service 进行统一管理。费芮急需高性能、高可用的网关接入层,能够对南北向和东西向的流量进行统一管理,同时希望能平滑迁移存量路由配置,减少网关替换的工作量。


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 的路由管理能力,既能实现南北向流量调度将服务对外暴露,也能支持东西向流量调度协助传统应用的服务间调用。丰富的负载均衡、限流降级、流量分发策略,可保证系统的稳定性,并满足业务快速迭代需求。


17.png


MSE Ingress DEMO


最后通过一个简单的 DEMO 简单介绍一下通过 MSE Ingress 做灰度,也可以通过云启免费试用。


18.png

19.png


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


20.png


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

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
云原生实践公开课
课程大纲 开篇:如何学习并实践云原生技术 基础篇: 5 步上手 Kubernetes 进阶篇:生产环境下的 K8s 实践 相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
1月前
|
缓存 Kubernetes Docker
容器服务ACK常见问题之容器服务ACK ingress websocket配置失败如何解决
容器服务ACK(阿里云容器服务 Kubernetes 版)是阿里云提供的一种托管式Kubernetes服务,帮助用户轻松使用Kubernetes进行应用部署、管理和扩展。本汇总收集了容器服务ACK使用中的常见问题及答案,包括集群管理、应用部署、服务访问、网络配置、存储使用、安全保障等方面,旨在帮助用户快速解决使用过程中遇到的难题,提升容器管理和运维效率。
|
3月前
|
Kubernetes 负载均衡 应用服务中间件
kubernetes—Ingress详解
kubernetes—Ingress详解
73 0
|
3月前
|
Kubernetes 应用服务中间件 nginx
|
4月前
|
Kubernetes 应用服务中间件 nginx
k8s ingress不生效的bug 解决了。
k8s ingress不生效的bug 解决了。
|
4月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-Ingress(安装、模板、创建、删除)
k8s学习-Ingress(安装、模板、创建、删除)
98 0
|
1月前
|
容器
在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
【2月更文挑战第15天】在容器服务ACK中,如果你想更改ALB Ingress的域名和端口
14 3
|
4月前
|
Kubernetes 负载均衡 应用服务中间件
k8s学习-CKA真题-七层负载均衡Ingress
k8s学习-CKA真题-七层负载均衡Ingress
51 0
|
4月前
|
Kubernetes 安全 网络协议
k8s教程(service篇)-ingress 7层路由机制(下)
k8s教程(service篇)-ingress 7层路由机制(下)
80 0
|
14天前
|
监控 负载均衡 Cloud Native
ZooKeeper分布式协调服务详解:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析ZooKeeper分布式协调服务原理,涵盖核心概念如Server、Client、ZNode、ACL、Watcher,以及ZAB协议在一致性、会话管理、Leader选举中的作用。讨论ZooKeeper数据模型、操作、会话管理、集群部署与管理、性能调优和监控。同时,文章探讨了ZooKeeper在分布式锁、队列、服务注册与发现等场景的应用,并在面试方面分析了与其它服务的区别、实战挑战及解决方案。附带Java客户端实现分布式锁的代码示例,助力提升面试表现。
30 2
|
3月前
|
消息中间件 Java 网络安全
JAVAEE分布式技术之Zookeeper的第一次课
JAVAEE分布式技术之Zookeeper的第一次课
70 0

相关产品

  • 微服务引擎
  • 推荐镜像

    更多