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

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

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


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


如何更好的灰度发布


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


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

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

image.png


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


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

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


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


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

image.png

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


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


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


作为入口网关的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服务以及自定义外部认证鉴权,助力业务以无侵入的方式轻松实现高阶访问控制。

image.png


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


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


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

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

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

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


image.png


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


image.png


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

image.png


如何快速使用MSE Ingress


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


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

image.png

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

image.png

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


总结


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


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


image.png

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
相关文章
|
6月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
721 6
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
Kubernetes Cloud Native 流计算
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
Flink-12 Flink Java 3分钟上手 Kubernetes云原生下的Flink集群 Rancher Stateful Set yaml详细 扩容缩容部署 Docker容器编排
455 3
|
Kubernetes 应用服务中间件 nginx
k8s学习--k8s集群使用容器镜像仓库Harbor
本文介绍了在CentOS 7.9环境下部署Harbor容器镜像仓库,并将其集成到Kubernetes集群的过程。环境中包含一台Master节点和两台Node节点,均已部署好K8s集群。首先详细讲述了在Harbor节点上安装Docker和docker-compose,接着通过下载Harbor离线安装包并配置相关参数完成Harbor的部署。随后介绍了如何通过secret和serviceaccount两种方式让Kubernetes集群使用Harbor作为镜像仓库,包括创建secret、配置节点、上传镜像以及创建Pod等步骤。最后验证了Pod能否成功从Harbor拉取镜像运行。
2604 0
|
Kubernetes 负载均衡 安全
【技术揭秘】阿里云容器服务Ingress高级玩法:如何轻松实现客户端原始IP透传,提升应用安全性与用户体验!
【8月更文挑战第17天】本文介绍如何在阿里云容器服务中配置Ingress以透传客户端原始IP地址。通过Ingress可实现HTTP负载均衡等功能。需在Ingress定义文件中添加特定注解,如`nginx.ingress.kubernetes.io/real-ip-header: X-Real-IP`。创建并应用Ingress配置后,后端服务可通过读取`X-Real-IP`头获取真实IP。此举有助于安全审计及流量分析。
741 2
|
关系型数据库 分布式数据库 PolarDB
PolarDB产品使用问题之原PolarDB-X集群无法连接且Docker容器已经被删除,如何恢复数据
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
运维 Kubernetes Cloud Native
为什么需要容器集群
小陈打算将使用Docker构建的WordPress网站部署到生产环境,但他意识到单个容器可能无法应对潜在的故障、升级需求和高用户访问量。大刘建议小陈采用容器集群,这样能保证服务的持续性和弹性。容器集群通过自动化管理工具,如Kubernetes,简化了多容器的部署和协调,解决了扩展性、服务连续性和监控等问题。随着容器技术的发展,Kubernetes已成为主流的容器编排工具。
|
监控 Cloud Native 持续交付
实现容器集群轻松部署:Docker Swarm 集群管理解析
实现容器集群轻松部署:Docker Swarm 集群管理解析
1232 0
|
8月前
|
Kubernetes Docker Python
Docker 与 Kubernetes 容器化部署核心技术及企业级应用实践全方案解析
本文详解Docker与Kubernetes容器化技术,涵盖概念原理、环境搭建、镜像构建、应用部署及监控扩展,助你掌握企业级容器化方案,提升应用开发与运维效率。
1132 108

相关产品

  • 容器服务Kubernetes版