阿里云服务网格ASM 金丝雀升级功能说明

简介: 阿里云服务网格ASM 基于Istio ,对Istio 进行了云上托管和适配,并且新增了相关功能,以及大规模服务网格场景下的性能优化等。作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组

阿里云服务网格ASM 基于Istio ,对Istio 进行了云上托管和适配,并且新增了相关功能,以及大规模服务网格场景下的性能优化等。作为业内首个全托管Istio兼容的阿里云服务网格产品ASM,一开始从架构上就保持了与社区、业界趋势的一致性,控制平面的组件托管在阿里云侧,与数据面侧的用户集群独立。ASM产品是基于社区Istio定制实现的,在托管的控制面侧提供了用于支撑精细化的流量管理和安全管理的组件能力。通过托管模式,解耦了Istio组件与所管理的K8s集群的生命周期管理,使得架构更加灵活,提升了系统的可伸缩性。从2022年4月1日起,阿里云服务网格ASM正式推出商业化版本, 提供了更丰富的能力、更大的规模支持及更完善的技术保障,更好地满足客户的不同需求场景, 详情可见产品介绍:https://www.aliyun.com/product/servicemesh

背景

像所有软件一样,您的服务网格应该保持最新。ASM Follow 社区版本节奏,每季度发布新版本,定期发布补丁以修复错误和安全漏洞。
为了减少客户的版本升级频率和降低升级风险,ASM 推出了金丝雀升级方式,以支持实例跨ASM 次要版本进行升级。
也就是对服务网格的控制平面执行金丝雀升级方式。以便在将工作负载切换到新版本之前验证控制平面功能。

ASM 的升级管理

ASM 的 “升级管理”菜单下提供了 针对ASM 实例版本升级的功能,目前支持两种升级方式:

  • 原地升级
  • 金丝雀升级 (ASM 版本要求:企业版或者旗舰版,且版本>=1.12.4.58)

ASM 版本格式说明:

\<major>.\<minor>.\<patch>.\<asm-patch>[-\<sequence>-aliyun]

其中:

  • major: 主要版本
  • minor: 次要版本
  • patch: 修订版本
  • \<major>.\<minor>.\<patch> 对应社区版本,比如1.12.4
  • asm-patch: asm 的修订版本, 对应asm 在社区版本的基础上的修订。比如1.12.4.58 其中58 对应这里的asm-patch
  • sequence: 对应为版本代码对应的Git Commit

相对于原地升级,金丝雀升级方式可以支持先验证新版本,然后功能验证无误后再切换为当前版本,提供给业务一种更稳妥的升级方式。特别是跨一个次要版本的升级情况,比如从1.12.4 升级到1.14.5 之类的。

金丝雀版本升级可用于minor 版本有变化情况下的升级方式,比如从1.12.4 升级到1.13.4 或者 1.14.5 ,最多支持跨一个次要版本
仅asm-patch 版本有变化的情况,采用原地升级方式即可。

Sidecar 注入说明以及如何验证金丝雀版本

当一个ASM 实例开启金丝雀升级后,对应这个ASM 实例的控制面 会同时存在两个版本 ,比如若从ASM 1.12.4.58 金丝雀到 1.13.4 的某个版本,会同时存在1.12.4 和 1.13.4 两个控制面版本

对应ACK/ASK 集群下我们的部署的业务服务 ,我们一般是给其所在namespace 打上了对应的注入标签,
默认是istio-injection=enabled 标签,对应会注入同版本的sidecar 容器。

当两个版本同时存在时,namespace 标签下业务注入的sidecar 版本的映射关系说明如下:

当前版本

istio-injection=enabled 标签注入的sidecar 对应为asm 当前版本,并连到当前asm 版本对应的控制面。
额外地也可以显示地通过给namespace 打上istio.io/rev=$revision 标签标明需要注入的sidecar 版本, 其中$revision 变量格式为x-y-z, 比如1-12-4
也可以通过给namespace 打上istio.io/rev=stable 标签标明需要注入的sidecar 版本为当前的ASM 版本。

注:
对同一个namespace ,不应该同时存在 istio-injection 和 istio.io/rev 两个标签。

金丝雀版本

类似地,若业务服务需要注入金丝雀版本对应的sidecar, 我们可以采用给namespace 打上如下标签:

istio.io/rev=$revision 或者 istio.io/rev=canary ,建议使用 istio.io/rev=$revision 方式。

其中$revision 对应格式为版本的x-y-z 方式,比如1-13-4。

常规操作,举例说明如下:

  • 首先,我们在ack 集群下新建一个用于验证金丝雀版本的namespace ,比如canary
  • 然后 kubectl label ns canary istio.io/rev=1-13-4
  • 最后,在canary namespace 下部署对应测试用的业务服务即可,对应该业务的deployment 会注入1.13.4 版本的sidecar, 并连接到1.13.4 版本的istiod 控制面。

FAQ

  • 当金丝雀版本切换为正式版本时,对应之前部署的业务服务注入的sidecar 仍旧为老版本,我们如何升级到新版本呢?



按照提示进入数据面的升级,可以看到待升级的工作负载,然后点击 “滚动升级” 触发业务服务deployment的滚动更新即可。

目录
相关文章
|
6天前
|
Kubernetes 调度 容器
使用Kmesh作为阿里云服务网格ASM Sidecarless模式数据面
阿里云服务网格ASM支持Sidecar和Sidecarless两种模式,其中Sidecarless模式如Istio Ambient、ACMG和Kmesh等,可减少延迟和资源消耗。Kmesh基于eBPF技术,通过内核空间拦截流量,结合Waypoint Proxy处理L7流量,实现高效的服务治理。本文介绍了如何在阿里云ACK集群中部署Kmesh并连接ASM控制面,包括安装步骤、检查服务状态和流量调度示例。
|
5月前
|
Cloud Native 容器 Kubernetes
基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道
本文简要讨论了使用流量泳道来实现全链路流量灰度管理的场景与方案,并回顾了阿里云服务网格 ASM 提供的严格与宽松两种模式的流量泳道、以及这两种模式各自的优势与挑战。接下来介绍了一种基于 OpenTelemetry 社区提出的 baggage 透传能力实现的无侵入式的宽松模式泳道,这种类型的流量泳道同时具有对业务代码侵入性低、同时保持宽松模式的灵活特性的特点。同时,我们还介绍了新的基于权重的流量引流策略,这种策略可以基于统一的流量匹配规则,将匹配到的流量以设定好的比例分发到不同的流量泳道。
73525 16
基于阿里云服务网格流量泳道的全链路流量管理(三):无侵入式的宽松模式泳道
|
5月前
|
负载均衡 测试技术 网络安全
阿里云服务网格ASM多集群实践(一)多集群管理概述
服务网格多集群管理网络打通和部署模式的多种最佳实践
|
4月前
|
人工智能 自然语言处理 安全
使用阿里云服务网格高效管理LLM流量:(一)流量路由
ASM支持通过LLMProvider和LLMRoute资源管理大型语言模型流量。LLMProvider负责注册LLM服务,LLMRoute负责设定流量规则,应用可灵活切换模型,满足不同场景需求。
|
4月前
|
Cloud Native 测试技术 开发者
阿里云服务网格ASM多集群实践(二):高效按需的应用多环境部署与全链路灰度发布
介绍服务网格ASM提出的一种多集群部署下的多环境部署与全链路灰度发布解决方案。
|
5月前
|
人工智能 安全 Go
使用阿里云服务网格 ASM LLMProxy 插件保障大模型用户数据安全
本文介绍如何使用ASM LLMProxy动态为LLM请求添加API_KEY、使用模式匹配以及私有大模型判别请求敏感信息并根据判别结果拒绝请求等功能,帮助用户提升LLM场景下的安全水位。
|
12月前
|
Kubernetes API 容器
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
基于阿里云服务网格流量泳道的全链路流量管理(二):宽松模式流量泳道
10967 13
|
Kubernetes Cloud Native 安全
基于阿里云服务网格流量泳道的全链路流量管理(一)严格模式流量泳道
灰度发布是一种常见的对新版本应用服务的发布手段,其特点在于能够将流量在服务的稳定版本和灰度版本之间时刻切换,以帮助我们用更加可靠的方式实现服务的升级。
29938 14
|
负载均衡 网络协议 测试技术
使用eBPF加速阿里云服务网格ASM
服务网格下的Sidecar 代理业务服务的收发请求,并提供业务层面的流量控制(路由)、负载均衡等功能,会引入一定的Latency 延迟。 通过eBPF 技术(部署sidecar 加速组件)将同节点下两个进程间的TCP 报文进行socket 短路可以提升一定的性能,HTTP 场景下QPS 可提升15% 左右, 有效地降低业务请求的Latency 。
975 0
使用eBPF加速阿里云服务网格ASM
|
6月前
|
Kubernetes Cloud Native 容器
全景剖析阿里云容器网络数据链路(六)—— ASM Istio
本文是[全景剖析容器网络数据链路]第六部分部分,主要介绍ASM Istio模式下,数据面链路的转转发链路。
492 7
全景剖析阿里云容器网络数据链路(六)—— ASM Istio