应用服务网格(Application Service Mesh,简称ASM)是基于开源Istio推出的服务网格平台,它深度、无缝对接了企业级Kubernetes集群服务云容器引擎(CCE),在易用性、可靠性、可视化等方面进行了一系列增强,可为客户提供开箱即用的上手体验。
灰度发布是迭代软件产品在生产环境安全上线的一种重要手段。本教程以Bookinfo应用为例,向您讲解服务网格基于Istio提供的服务治理能力。
Bookinfo应用灰度发布流程包含以下步骤:
灰度发布是迭代软件产品在生产环境安全上线的一种重要手段。本教程以给服务创建应用服务网格并给创建灰度发布,向您讲解服务网格基于Istio提供的服务治理能力。
Bookinfo是一个异构应用,几个服务是由不同的语言编写的。这些服务对应用服务网格并无依赖,但是构成了一个有代表性的服务网格的例子。即由多个服务、多个语言构成,且reviews服务具有多个版本。
Bookinfo应用分为四个单独的服务:
其中,reviews服务有3个版本:
为了直观的展示灰度版本之间流量切换情况,本教程以reviews服务的v1版本(黑星形)、v3版本(红星形)为例进行说明。
在ASM中运行Bookinfo应用,无需对应用自身做出任何改变。只需简单的在Bookinfo环境中对服务进行配置和运行,即把Envoy sidecar注入到每个服务之中。这个过程所需的具体命令和配置方法由运行时环境决定,而部署结果较为一致,如图4:
在启用应用服务网格前,您需要完成如下的准备工作。
虚拟私有云(Virtual Private Cloud,简称VPC),提供一个隔离的、用户自主配置和管理的虚拟网络环境,提升资源的安全性,简化用户的网络部署。
新建一个密钥对,用于远程登录节点时的身份认证。
弹性负载均衡实例将作为服务网格对外访问入口,被服务网格管理的应用流量,将均从此实例进入并分发到后端服务。
创建共享型弹性负载均衡时,网络类型请选择“公网”。
此规格为部署该Bookinfo应用Demo所需的最小资源。
“系统资源插件”为必装插件,“高级功能插件”可根据实际需求进行选择性安装。
如果选择购买“包年包月”的集群,请单击“去支付”,根据界面提示进行付款操作。
集群创建预计需要6-10分钟,您可以单击“返回集群管理”进行其他操作或单击“查看集群事件列表”后查看集群详情。
使能服务网格是指为集群开启应用服务网格功能,即可实现灰度发布、流量管理、熔断、监控、拓扑、调用链等丰富的服务治理能力。
此处以专有网格为例进行说明。
选择4中创建的集群。
为确保Istio控制面运行稳定,推荐您使用 8U 16G 或以上规格控制面节点。
登录:选择2中已创建的密钥对,用于登录节点的密钥。
启用时间预计需要5分钟,您可以单击请求提交页面的“返回Istio管理”或“前往CCE集群管理”查看Istio运行状态。
集群创建完成后,可以通过“一键体验”创建一个Bookinfo应用Demo,具体操作如下:
本步骤将为Bookinfo应用的“reviews”服务添加新的灰度版本,并配置相应的灰度策略,将原有生产环境的默认版本的流量引流一部分到新版本中。
下面将以为“reviews”服务添加一个v3新版本,且v3新版本接收Bookinfo应用的30%流量为例进行配置。
配置灰度版本
配置灰度策略
为灰度版本设置灰度策略,灰度版本会根据配置的流量配比引流老版本中的部分或全部流量。
策略类型分为“基于请求内容发布”和“基于流量比例发布”,通过页签选择确定。
以“基于流量比例发布”为例,且v3版本流量配比为30%。更多策略内容请参见设置灰度策略。
灰度策略的生效需要几秒的时间,您可以在监测灰度运行状态页面,观察灰度版本的运行状态。
检查v3版本的资源数与v1版本是否相匹配,确认其能承接v1的所有流量后,即可将v1流量全部切换到v3。
在Bookinfo应用页面,不断刷新页面,页面仅显示v3版本监控的流量,即星形图标全部为红色。
v3承接v1所有流量后,即可删除v1版本,释放v1版本的资源。
下线服务版本,会将包含的负载和Istio相关配置资源全部删除。
到此本Demo已全部操作完成,因节点和应用运行过程中会产生费用,如果无特殊要求,请及时删除应用和节点,避免费用产生。
到此本Demo已全部操作完成,为了避免资源的浪费,请及时删除应用和节点。
本章节主要介绍消息队列CKafka的产品规格,计费项目,计费模式和实例价格。 产品...
描述 Twitter正在测试一种名为Pigeon的新工作处理服务。 Pigeon处理任何任务的时...
倒计时7天,阿里云开发者大会即将拉开帷幕。 据说这次大会上有很多神秘的“声音...
健康检查异常如何排查? 为什么后端服务器上收到的健康检查报文间隔和设置的间隔...
1. 接口描述 接口请求域名: clb.tencentcloudapi.com 。 DeregisterTargets 接...
一:开启 Node.js 服务 开启一个 Node.js 服务,指定路由 /upload/image 收到请...
使用前提: K8S集群中正确部署了virtual-kubelet(serverless Kubernetes 默认集...
说明: GPU 云服务器作为 CVM 云服务器的一类特殊实例,购买、 操作、维护等方式...
WRF 官网 http://www2.mmm.ucar.edu/wrf/users/ 简介 WRF(Weather Research and...
调用GetAccountingReport获取指定集群的资源报表信息。 调试 您可以在OpenAPI Ex...