容器服务 ACK 结合 MSE Ingress,让集群入口流量管理更丰富、更容易

news2024/11/14 6:03:41

作者:扬少

随着云原生技术不断普及,越来越多的业务应用开始向云原生架构转变,借助容器管理平台 Kubernetes 的不可变基础设施、弹性扩缩容和高扩展性,助力业务迅速完成数字化转型。其中,集群入口流量管理方式在云原生技术演进过程中逐步通用化、标准化,用户通过 Kubernetes 定义的 Ingress 资源来管理外部访问集群内部服务的方式。入口网关的标准化制定将入口流量管理与网关的实现解耦,不仅促进了各种 Ingress Controller 的发展,而且消除了开发者存在的与厂商绑定的顾虑,日后也可以根据自身业务实际场景切换到不同 Ingress Controller。

阿里云容器服务 Kubernetes 版(简称容器服务 ACK)提供高性能的容器化应用管理服务,让用户轻松高效地在云端运行 Kubernetes 容器化应用。MSE Ingress 是在 MSE 云原生网关之上提供更为强大的 Ingress 流量管理方式,兼容 Nginx Ingress 50 多个Nginx Ingress 的注解,覆盖 90%以上的 Nginx Ingress 业务使用场景,支持多服务版本同时灰度发布、灵活的服务治理能力以及全方位的安全防护保障,能够满足大规模云原生分布式应用的流量治理诉求。本文主要介绍如何利用容器服务 ACK 和 MSE Ingress,让集群入口流量管理更丰富、更容易。

如何更好的灰度发布

业务的发展需要应用系统不断的迭代,我们无法避免应用频繁变更发版,但是我们可以提升应用升级过程中的稳定性和高可用。比较通用的做法是采用灰度发布,俗称金丝雀发布。金丝雀发布的思想则是将少量的请求引流到新版本上,因此部署新版本服务只需极小数的机器。验证新版本符合预期后,逐步调整流量,使得流量慢慢从老版本迁移至新版本,期间可以根据当前流量在新老版本上的分布,对新版本服务进行扩容,同时对老版本服务进行缩容,使得底层资源得到最大化利用。

用户借助 MSE Ingress 可以实现服务多个灰度版本共存,方便服务多个特性功能同时开发并且独立灰度验证。MSE Ingress 支持多种灰度流量识别方式,基于 HTTP Header、基于 Cookie 和基于权重的方式,用户可以按需针对路由级别实施灰度匹配策略。

此外,MSE Ingress 针对服务的灰度版本默认提供了Fallback能力,当服务灰度版本不存在或者不可用时,流量会自动容灾到服务正式版本,在一定程度上保障了业务应用的高可用。用户仍然可以通过 MSE Ingress 提供的 default-backend 的注解来明确控制容灾服务的方向。

在这里插入图片描述

如何构建端到端的全链路灰度

对于分布式架构的微服务应用而言,服务之间的依赖关系错综复杂,一个业务功能需要多个微服务共同提供能力,一次业务请求需要经过多个微服务才能完成处理,牵一发而动全身。

在这种场景下,业务新功能发布可能同时涉及到多个服务发布,对新功能验证时就涉及到了对多个服务同时灰度的问题,通过构建从网关到整个后端服务的环境隔离来对多个不同版本的服务进行灰度验证,这就是微服务架构中特有的全链路灰度场景。

目前,全链路灰度的解决方案包括基于物理环境隔离和基于逻辑环境隔离。基于物理环境隔离的做法是通过增加机器的方式来搭建真正意义上的流量隔离,该方式存在一定的人力成本和机器成本,所以业界比较常用的做法是更灵活的基于逻辑环境管理。该方式虽然看起来是服务正式版本和灰度版本都部署在一个环境中,但是通过灰度路由匹配策略,可以精确控制灰度流量优先流经服务对应的灰度版本,只有当目标服务不存在灰度版本时,才会容灾到服务正式版本。从总体视角上看,针对新功能的灰度验证流量只会流经涉及到待发版服务的灰度版本,对于本次新功能未涉及到改动的服务,灰度流量正常通过,这种精准化的流量控制方式大大方便了开发者在微服务架构中多版本并行开发和验证的痛点,同时也降低了搭建测试环境的机器成本。

容器服务 ACK 用户,可以搭配使用MSE微服务治理和 MSE Ingress,在不改任何一行代码的情况下,轻松快速上手全链路灰度能力,通过这种精细化的流量控制能力在用户在微服务架构治理过程中得心应手。

在这里插入图片描述

具体实践例子,可以参阅该文档:配置基于 MSE Ingress 的全链路灰度

https://help.aliyun.com/document_detail/460375.html

如何打造全方位的安全防护

安全问题始终是业务应用的头号公敌,伴随着业务发展的整个生命周期。此外,外部互联网的环境越来越复杂,内部业务架构日益庞大,部署结构涉及公有云、私有云以及混合云多种形态,安全问题愈演愈烈。

作为入口网关的 MSE Ingress,从一开始就在安全领域进行了积极探索和增强,打造了全方面的安全防护。主要体现在以下几个方面:

  • 加密通信以及 TLS 硬件加速:业务通信数据通常来说都是私有的、敏感的,TLS作为最基本、最广泛的防窃听、防篡改的协议经常和 HTTP 协议结合使用,就是大家熟知的 HTTPS 协议。MSE Ingress 构建了从客户端到网关、网关到后端服务整个体系的 HTTPS 协议支持,并且结合阿里云第七代 ECS 率先完成了 TLS 硬件加速,在不增加用户资源成本的同时大幅度提升 HTTPS 的性能。针对特殊业务场景下对 TLS 协议版本以及 TLS 加密条件的合规性要求,MSE Ingress 额外支持了域名级别的 TLS 版本控制以及加密套件选择。

  • 细粒度的 WAF 防护:在功能上,MSE Ingress 不仅支持全局 WAF 防护,而且提供了细粒度的路由级别的 WAF 防护;在架构上,MSE Ingress 采用内置 WAF Agent 的方式,相比传统 WAF 用户请求链路更短、RT 更低。

  • 细粒度的 IP 访问控制:MSE Ingress 支持实例级别、域名级别以及路由级别的 IP 黑白名单,优先级逐步增加。用户可以在实例级别配置应用范围更广的 IP 访问控制,然后在路由级别配置与业务相关的IP访问控制,满足用户多样化的访问控制策略。

  • 多样化的认证鉴权体系:在微服务的架构中,会有多个服务接收来自外部用户(客户端)的请求,通常不会直接将服务暴露给外部用户,而是在中间加一层网关作为外部用户访问内部服务的控制点。对于外部用户访问的请求,我们通常希望在网关中进行身份验证,知道用户是谁,并能定义访问控制策略。目前,MSE Ingress 支持 Basic Auth、JWT Auth、OIDC、阿里云 IDaaS 服务以及自定义外部认证鉴权,助力业务以无侵入的方式轻松实现高阶访问控制。

在这里插入图片描述

如何建设全方位的可观测体系

可观测性并不是一个新词,该词来源于控制理论,是指系统可以由其外部输出推断其内部状态的程度,随着 IT 行业几十年的发展,IT 系统的监控,告警,问题排查等领域的逐渐成熟,IT 行业也将其抽象形成了一整套可观测性工程体系。而之所以该词在这几年愈发火热,很大程度是因为云原生,微服务模式,devops 等技术的不断流行,对可观测性提出了更大的挑战。

网关作为业务流量的入口,其可观测性建设与整体业务的稳定性息息相关,同时由于网关的用户使用场景与功能较多,且网络环境也较为复杂,这对网关可观测性建设也带来了很多的难点,主要如下:

  1. 关注网关可观测性的角色众多
  2. 埋点不够精确,统计消耗大
  3. 网络环境复杂, 问题排查难度大

针对以上用户痛点,MSE Ingress 立足可观测领域三大马车:日志、链路追踪和指标监控,帮助用户构建了全方位的可观测体系。

在日志方面,MSE Ingress 无缝集成了阿里云 SLS 日志服务,用户可以实时查看集群入口所有的访问请求。

在这里插入图片描述

在监控指标方面,MSE Ingress 为用户构建了含有丰富指标的监控大盘,同时集成了 prometheus 与 SLS,用户既可以通过网关的访问日志的 etl 处理获取更加精细准确的数据,也可以通过 prometheus 获取网关的实时监控。

在这里插入图片描述

在链路追踪方面,为协助用户解决微服务场景下调用链路可视化的痛点,MSE Ingress 对接了开箱即用的 ARMS 分布式链路追踪服务,同时也支持将 trace 数据投递到用户自建的 skywalking,避免云产品锁定。

在这里插入图片描述

如何快速使用 MSE Ingress

目前,MSE Ingress 已经与容器服务 ACK/ASK 完成了深度集成,用户可以非常方便的接入使用。

在用户创建容器服务 ACK/ASK 集群时,在 Ingress 模块选择安装 MSE Ingress 即可。

在这里插入图片描述

对于之前已创建的集群,用户可以进入集群->运维管理->组件管理,在网络分组中找到 MSE Ingress Controller 并安装。

在这里插入图片描述

安装完 MSE Ingress Controller,用户可以参考以下文档快速入门 MSE Ingress。

  • 通过 MSE Ingress 访问容器服务

https://help.aliyun.com/document_detail/438003.html

  • MSE Ingress 高级用法

https://help.aliyun.com/document_detail/440053.html

总结

作为 Ingress Controller 新选择 MSE Ingress,我们始终立足用户视角,从用户真实业务场景出发,不断完善和优化 Ingress 使用体验,后续我们会持续在产品的性能、易用性、稳定性和生态方面持续打磨,以便用户无门槛的享受到云原生技术的红利。

MSE 云原生网关、注册配置中心专业版首购 8 折优惠,首购 1 年及以上 7 折优惠。

扫码了解更多产品信息~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/32148.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

斐波那契数列、跳台阶、矩形覆盖、而进制中1的个数、判断是否是素数

文章目录1、斐波那契数列2、跳台阶3、矩形覆盖4、二进制中1的个数5、判断是否是素数1、斐波那契数列 本题考点: 间复杂度,fib理解,剪枝重复计算 牛客链接 题目描述: 解题思路: 代码: class Solution {…

ozon、Joom等俄罗斯跨境电商卖家想要爆单需要具备哪些条件—自养号测评

Ozon成立于1998年,目前不仅是俄罗斯多品类电子商务平台领导者、俄罗斯最知名的电子商务品牌,是俄罗斯最早的电子商务公司之一 Joom平台是俄罗斯知名的电商平台,Joom平台成立于2016年6月份,joom平台在16年11月份就对中国地区卖家进…

项目上线整体流程

文章目录一、上线前准备二、阿里云机器购买三、上线架构图四、安装Git五、云服务器安装MySQL六、云服务器安装Redis七、云服务器安装源码安装Python八、云服务器安装Uwsgi九、安装虚拟环境十、安装nginx十一、前端项目部署十二、后端项目部署1)Git拉取最新代码安装依…

Docker——容器命令介绍、创建Nginx容器与Redis容器

目录 一、容器命令 二、创建并运行Nginx容器 1.1 去dockerhub查看Nginx容器运行命令 1.2 怎么访问Nginx? 1.3 查看容器日志 1.4总结 三、进入Nginx容器并修改HTML内容 3.1 进入容器 3.2 进入Nginx的HTML所在目录 3.3 修改index.html文件(容器内修…

零基础上手unity VR开发【将项目安装到Oculus头套中】

📌个人主页:个人主页 ​🧀 推荐专栏:Unity VR 开发成神之路 --【着重解决VR项目开发难,国内资料匮乏的问题。从零入门,一步一个脚印,带你搞定VR开发! 😻😻】 &#x1f4d…

leetcode39. 组合总和

文章目录题目思考代码和注释总结题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同…

【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341

【全志T113-S3_100ask】15-1 内核5.4驱动spi屏幕——ILI9341背景(一)spi设备树1、修改设备树2、完善设备树(二)使能内核(三)兼容性修改(四)测试背景 本来想直接驱动mipi屏幕的&…

香蕉派BPI-M6 采用深蕾半导体Vs680芯片设计,板载4G LPDDR4和16G eMMC存储

Banana PI BPI-M6 香蕉派BPI-M6是香蕉派社区在2022年推出的新一代单板计算机,它采用深蕾半导体(Synaptics) VS680四核Cortex-A73 (2.1GHz)和一个Cortex-M3处理器,Imagination GE9920 GPU。 NPU高达6 .75 tops算力。 板载4GB LPDDR4内存和16GB EMMC存储&a…

React 编写网页聊天界面(仿钉钉)

效果图 文件结构 对话框 一、 难点 对话框的难点主要在样式上 双方对话分布在左右长对话的长度不能超过整个对话框宽度的一半图片的大小最大不能超过整个对话框宽度的一半,并且需要按比例进行收缩 二、与要引入的插件 1、 阿里巴巴的iconfont 可以去这篇博客里面…

Qt QTreeWidget树形控件用法详解

文章目录QTreeWidget控件的创建QTreeWidget\QTreeView的关系和区别QTreeWidgetItem类QTreeWidget的实际应用1) 添加结点2) 给结点添加图标3) 给结点添加复选框4) 多列树形控件5) QTreeWidget中添加其它控件QTreeWidget信号和槽已剪辑自: http://c.biancheng.net/view/vip_9659.…

PS-HDR图像编辑与应用

每天一个PS/PR小技巧(原理实践)https://blog.csdn.net/tiao_god/article/details/124186746用PS打开一张HDR图像。 一般打开的图像会很黑,只有少部分光源处比较亮,这是因为默认显示时高动态范围的值都除以了一个统一的值来归一化…

TypeError: ‘module‘ object is not callable 报错解决

pycharm 控制台报错内容如下: pgsqlSearch.py 连接pgsql代码如下: import psycopg2 import ReportModelif __name__ __main__:# 创建连接对象conn psycopg2.connect(database"checkdb", user"postgres", password"postgres…

Flutter高仿微信-第21篇-支付-向商家付款(二维码)

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: /*** Author : wangning* Email : maoning20080809163.…

IntelliJ IDEA-Debug断点调试 看这篇文章就够了

详解IntelliJ IDEA-Debug断点调试 如今,IntelliJ IDEA 目前深受广大开发者喜爱,我们在实际开发工作中,不管是用来阅读源码还是在开发过程中都需要进行代码调试。 以下为大家准备了一篇关于IntelliJ IDEA-Debug断点调试的文章,如…

嗨 Jina,帮我画一幅高山流水图

本项目将 Whisper 与 Stable Diffusion 模型结合,可以直接完成语音生成图像的任务。用户可以语音输入一个短句,Whisper 会自动将语音转化为文本,接着,Stable Diffusion 会根据文本生成图像。 本项目基于 Jina AI MLOps 平台搭建&a…

一个Python爬虫案例,带你掌握xpath数据解析方法!

文章目录 xpath基本概念xpath解析原理环境安装如何实例化一个etree对象:xpath(‘xpath表达式’)xpath爬取58二手房实例爬取网址完整代码效果图xpath图片解析下载实例爬取网址完整代码效果图xpath爬取全国城市名称实例爬取网址完整代码效果图xpath爬取简历模板实例爬…

【pygame学习+实战】第一篇:游戏最小系统

14天学习训练营导师课程: 李宁《Python Pygame游戏开发入门与实战》 李宁《计算机视觉OpenCV Python项目实战》1 李宁《计算机视觉OpenCV Python项目实战》2 李宁《计算机视觉OpenCV Python项目实战》3 文章目录前言一、什么是pygame?1.1 学习pygame的用…

当我们谈论DDD时我们在谈论什么

谈论到 DDD,我们会聊事件风暴,会聊限界上下文,会聊六边形架构,会聊实体值对象。这些概念各不相同,相关的概念也很不一样,但都属于DDD的范畴。见过了很多DDD的讨论和工作坊,我发现大家唇枪舌剑无…

【同时完成超分和MEF】

Deep Coupled Feedback Network for Joint Exposure Fusion and Image Super-Resolution (用于联合曝光融合和图像超分辨的深度耦合反馈网络) 如今,人们已经习惯了拍照来记录自己的日常生活,然而,照片实际上与真实的…

SB30100LCT-ASEMI插件肖特基二极管SB30100LCT

编辑-Z SB30100LCT在TO-220AB封装里采用的2个芯片,其尺寸都是94MIL,是一款插件肖特基二极管。SB30100LCT的浪涌电流Ifsm为200A,漏电流(Ir)为12uA,其工作时耐温度范围为-55~150摄氏度。SB30100LCT采用金属硅芯片材质,里…