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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
可观测监控 Prometheus 版,每月50GB免费额度
简介: 阿里云容器服务 Kubernetes 版(简称容器服务 ACK)提供高性能的容器化应用管理服务,让用户轻松高效地在云端运行 Kubernetes 容器化应用。

作者:扬少


随着云原生技术不断普及,越来越多的业务应用开始向云原生架构转变,借助容器管理平台 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 的注解来明确控制容灾服务的方向。


1.png


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


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


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


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


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


2.png


具体实践例子,可以参阅该文档:配置基于 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 服务以及自定义外部认证鉴权,助力业务以无侵入的方式轻松实现高阶访问控制。 


3.png


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


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


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


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


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


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


4.png


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


5.png


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


6.png


如何快速使用 MSE Ingress


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


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


7.png


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


8.png


安装完 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 折优惠。


扫码了解更多产品信息~


9.png

相关实践学习
巧用云服务器ECS制作节日贺卡
本场景带您体验如何在一台CentOS 7操作系统的ECS实例上,通过搭建web服务器,上传源码到web容器,制作节日贺卡网页。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。
|
2月前
|
人工智能 运维 监控
阿里云ACK容器服务生产级可观测体系建设实践
本文整理自2024云栖大会冯诗淳(花名:行疾)的演讲,介绍了阿里云容器服务团队在生产级可观测体系建设方面的实践。冯诗淳详细阐述了容器化架构带来的挑战及解决方案,强调了可观测性对于构建稳健运维体系的重要性。文中提到,阿里云作为亚洲唯一蝉联全球领导者的容器管理平台,其可观测能力在多项关键评测中表现优异,支持AI、容器网络、存储等多个场景的高级容器可观测能力。此外,还介绍了阿里云容器服务在多云管理、成本优化等方面的最新进展,以及即将推出的ACK AI助手2.0,旨在通过智能引擎和专家诊断经验,简化异常数据查找,缩短故障响应时间。
阿里云ACK容器服务生产级可观测体系建设实践
|
2月前
|
Kubernetes Ubuntu 网络安全
ubuntu使用kubeadm搭建k8s集群
通过以上步骤,您可以在 Ubuntu 系统上使用 kubeadm 成功搭建一个 Kubernetes 集群。本文详细介绍了从环境准备、安装 Kubernetes 组件、初始化集群到管理和使用集群的完整过程,希望对您有所帮助。在实际应用中,您可以根据具体需求调整配置,进一步优化集群性能和安全性。
148 12
|
2月前
|
Prometheus Kubernetes 监控
OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性
聚焦近日OpenAI的大规模K8s集群故障,介绍阿里云容器服务与可观测团队在大规模K8s场景下我们的建设与沉淀。以及分享对类似故障问题的应对方案:包括在K8s和Prometheus的高可用架构设计方面、事前事后的稳定性保障体系方面。
|
1月前
|
人工智能 运维 监控
容器服务Kubernetes场景下可观测体系生产级最佳实践
阿里云容器服务团队在2024年继续蝉联Gartner亚洲唯一全球领导者象限,其可观测体系是运维的核心能力之一。该体系涵盖重保运维、大规模集群稳定性、业务异常诊断等场景,特别是在AI和GPU场景下提供了全面的观测解决方案。通过Tracing、Metric和Log等技术,阿里云增强了对容器网络、存储及多集群架构的监控能力,帮助客户实现高效运维和成本优化。未来,结合AI助手,将进一步提升问题定位和解决效率,缩短MTTR,助力构建智能运维体系。
|
2月前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
86 2
|
2月前
|
存储 Kubernetes 关系型数据库
阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案
本文源自2024云栖大会苏雅诗的演讲,探讨了K8s集群业务为何需要灾备及其重要性。文中强调了集群与业务高可用配置对稳定性的重要性,并指出人为误操作等风险,建议实施周期性和特定情况下的灾备措施。针对容器化业务,提出了灾备的新特性与需求,包括工作负载为核心、云资源信息的备份,以及有状态应用的数据保护。介绍了ACK推出的备份中心解决方案,支持命名空间、标签、资源类型等维度的备份,并具备存储卷数据保护功能,能够满足GitOps流程企业的特定需求。此外,还详细描述了备份中心的使用流程、控制台展示、灾备难点及解决方案等内容,展示了备份中心如何有效应对K8s集群资源和存储卷数据的灾备挑战。
|
3月前
|
Kubernetes 监控 Cloud Native
Kubernetes集群的高可用性与伸缩性实践
Kubernetes集群的高可用性与伸缩性实践
99 1
|
3月前
|
Ubuntu 网络安全 容器
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理
KubeSphere 是一个开源的容器平台,提供丰富的功能和便捷的操作界面,适用于企业容器化部署和管理。本文详细介绍了如何在 Ubuntu 22.04 上安装 KubeSphere,包括系统要求、安装依赖项、设置防火墙、下载安装脚本、选择安装选项、验证安装结果等步骤,并提供了常见问题的解决方法。希望本文能为读者提供实用的参考和帮助。
64 3
|
4月前
|
JSON Kubernetes 容灾
ACK One应用分发上线:高效管理多集群应用
ACK One应用分发上线,主要介绍了新能力的使用场景

相关产品

  • 容器计算服务
  • 容器服务Kubernetes版
  • 微服务引擎