云服务器内容精选

  • 概述 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务。如果直接将某版本上线发布给全部用户,一旦遇到线上事故(或BUG),对用户的影响极大,解决问题周期较长,甚至有时不得不回滚到前一版本,严重影响了用户体验。 灰度发布,是版本升级平滑过渡的一种方式,其本质就是根据请求、比例或其他混合条件切分流量,其核心工作是实现多个版本同时在线,并通过一定的流量策略将部分流量切分到灰度版本上,当版本升级时,使部分用户使用新版本,其他用户继续使用老版本,待新版本稳定后,逐步扩大范围把所有用户流量都迁移到新版本上面来。 这样可以最大限度地控制新版本发布带来的业务风险,降低故障带来的影响面,同时支持快速回滚。 图1 灰度发布流程 父主题: 灰度发布
  • YAML编辑基于条件的分流 当前数据选择YAML,在编辑栏进行编辑。YAML设置示例如下(根据实际需求调整配置参数): apiVersion: v1 kind: VirtualService metadata: name: ratings-route spec: hosts: - ratings.prod.svc.cluster.local http: - match: - headers: end-user: exact: jason uri: prefix: "/ratings/v2/" route: - destination: host: ratings.prod.svc.cluster.local
  • 创建虚拟私有云 虚拟私有云(Virtual Private Cloud,简称VPC)是用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可以自由配置VPC内的IP地址段、子网、安全组等子服务,也可以申请弹性带宽和弹性IP搭建业务系统。 登录 虚拟私有云VPC 控制台。 单击右上角的“创建虚拟私有云”。 如果无特殊需求,界面参数均可保持默认,单击“立即创建”。 详细参数说明可参考创建虚拟私有云和子网。
  • 购买网格 登录应用服务网格ASM控制台,单击“购买网格”进入购买网格页面。 参考购买基础版网格中的指导,创建名称为“asmtest”的网格,选择在创建集群中创建的名称为“cluster-test”的集群,并选择安装Istio控制面的节点,建议选择两个或以上不同可用区的节点。 选择在中创建的名称为“cluster-test”的集群,并选择安装Istio控制面的节点,建议选择两个或以上不同可用区的节点。 展开高级配置,在“命名空间注入配置”中勾选名称为“default”的命名空间,选择重启已有服务。其余参数根据需要设置即可。 图3 基础版网格参数 在可观测性配置中勾选“启用应用指标”,已默认选中“ AOM 服务”。其他可观测性配置根据需要配置即可。 设置完成后,在页面右侧配置清单确认网格配置,确认无误后,单击“提交”。 创建网格预计需要1~3分钟,请耐心等待。当网格状态从“安装中”变为“运行中”,表示网格创建成功。
  • 创建密钥对 新建一个密钥对,用于远程登录节点时的身份认证。 登录 数据加密 服务DEW控制台。 选择左侧导航中的“密钥对管理”,单击“创建密钥对”。 输入密钥对名称,单击“确定”。 密钥对名称由两部分组成:KeyPair-4位随机数字,使用一个容易记住的名称,如KeyPair-xxxx_asm。 图1 创建密钥对 您的浏览器会提示您下载或自动下载私钥文件。文件名是您为密钥对指定的名称,文件扩展名为“.pem”。请将私钥文件保存在安全位置。然后在系统弹出的提示框中单击“确定”。 为保证安全,私钥只能下载一次,请妥善保管,否则将无法登录节点。
  • 修改灰度版本的流量策略 修改基于流量比例的策略 选择基于流量比例的策略时,一般会逐步加大灰度版本的流量配比,这样可以避免直接切换带来的业务风险。修改流量配比的方法如下: 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,重新输入灰度版本的流量配比。 假设将灰度版本流量配比调整至x,那么原版本的流量配比自动调整为100-x。 单击“策略下发”。 修改基于请求内容的策略 目前支持基于Cookie内容、自定义Header、Query、操作系统和浏览器的规则约束,只有满足规则约束的流量才可访问到灰度版本。实际应用时,可能会多次修改规则,从而充分验证灰度版本运行效果。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,重新配置Cookie内容、自定义Header、Query、允许访问的操作系统或允许访问的浏览器。 单击“策略下发”。
  • 切换灰度策略类型 您可以在“基于请求内容”和“基于流量比例”的策略之间切换。策略完成切换后,之前配置的规则将全部失效,所有的流量会根据配置的新策略重新分配。 只有状态为“运行中”的任务才支持流量策略变更,版本发布完成后(即新版本完全接管旧版本流量,且旧版本已下线),将不支持重新配置流量策略。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击金丝雀发布任务的名称。 在“配置流量策略”页面,切换策略类型。 单击“策略下发”。
  • 结束灰度任务 当新创建的灰度版本接管全部流量后,您可以选择结束灰度任务。结束灰度任务将下线原版本,其中包含的工作负载和Istio相关配置资源会全部删除。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击灰度发布任务的名称。 在“监测与处理”页面,单击灰度版本后的“全流量接管”。 单击右下角“结束灰度任务”。 在弹出的“结束灰度任务”窗口单击“确定”。 结束的灰度任务可以前往“已结束灰度任务”页签查看,状态显示为“发布成功”。
  • 取消灰度任务 当原版本接管全部流量后,您可以选择取消灰度任务。 登录应用服务网格控制台,单击服务网格的名称,进入网格详情页面。 在左侧导航栏选择“灰度发布”,单击灰度发布任务的名称。 在“监测与处理”页面,单击原版本后的“全流量接管”。 单击右下角“取消灰度任务”。也可以在灰度任务列表,单击任务右上角的图标。 在弹出的“取消灰度任务”窗口单击“确定”。 取消的灰度任务可以前往“已结束灰度任务”页签查看,状态显示为“发布取消”。
  • 创建蓝绿发布 登录应用服务网格控制台,在左侧导航栏中选择“灰度发布”。在蓝绿发布下,单击“创建”。 配置灰度版本基本信息。 蓝绿发布服务 单击“选择服务”,选择待发布服务。 部署集群 灰度发布服务所属的集群。 发布任务名称 系统自动生成,可根据实际需求进行修改。 版本号 新增服务中灰度版本号。 版本描述 灰度版本描述信息。 根据界面提示的流程图,熟悉灰度发布版本流程,单击“创建”。 部署灰度版本。 实例数量 灰度版本的实例数量。灰度版本可以有一个或多个实例,用户可根据实际需求进行修改。每个灰度版本的实例都由相同的容器部署而成。 镜像名称 默认为该服务的镜像。 镜像版本 请选择需要添加灰度的镜像版本。 单击“部署新版本”,新版本开始创建。 请确保灰度版本的实例状态为正常时,再开始下一步进行灰度策略的配置。 单击“蓝绿策略配置与监控”,您可以在监测灰度运行状态页面,观察灰度版本的运行状态。
  • 创建金丝雀发布 登录应用服务网格控制台,在左侧导航栏中选择“灰度发布”。在金丝雀发布下,单击“创建”。 配置灰度版本基本信息。 灰度发布服务 单击“选择服务”,选择添加灰度版本的服务。 部署集群 灰度发布服务所属的集群。 发布任务名称 系统自动生成,可根据实际需求进行修改。 版本号 新增服务中灰度版本号。 版本描述 灰度版本描述信息。 根据界面提示的流程图,熟悉灰度发布版本流程,单击“创建”。 部署灰度版本。 实例数量 灰度版本的实例数量。灰度版本可以有一个或多个实例,用户可根据实际需求进行修改。每个灰度版本的实例都由相同的容器部署而成。 镜像名称 默认为该服务的镜像。 镜像版本 请选择需要添加灰度的镜像版本。 单击“部署灰度版本”,灰度版本开始创建。 请确保灰度版本的实例状态为正常时,再开始下一步进行灰度策略的配置。 单击“配置灰度策略”,进行灰度策略配置(可选)。 策略类型:分为“基于请求内容发布”和“基于流量比例发布”两种类型,通过页签选择确定。 基于请求内容发布 对当前版本配置相应的请求内容规则,服务流量在满足此规则的情况下,会走此版本。例如http请求,请求头cookie必须满足“访问条件”走版本A。 Cookie内容: 正则匹配:此处需要您使用正则表达式来匹配相应的规则。 自定义Header: 完全匹配:当且仅当表达式完全符合此情况时,流量才会走到这个版本。 正则匹配:此处需要您使用正则表达式来匹配相应的规则。 可以自定义请求头的key和value,value支持完全匹配和正则匹配。 允许访问的操作系统:请选择允许访问的操作系统,包括iOS、android、windows、macOS。 允许访问的浏览器:请选择允许访问的浏览器,包括Chrome、IE。 灰度策略规则描述:当前服务的流量转发的规则描述信息及Yaml的查看。 基于流量比例发布 对当前版本配置相应的流量权重,服务流量将会按照权重比率以对应的概率分发当前版本。例如10%的流量走版本A,90%的流量走版本B。 版本流量配比:根据输入的流量配比来确定流量分发的比重。 范围限制为[0,默认版本权重w]。例如,当您配置为10,则10%的服务流量会走向此版本,(w-10)%的流量会走向默认版本,即从默认版本分走一部分流量。 灰度策略规则描述:当前服务的流量转发的规则描述信息及Yaml的查看。 如果当前服务已有灰度版本并配置了灰度策略,则策略类型不可选(灰度版本只能配置一种策略类型),默认为已经配置的策略类型。 基于请求内容发布策略只对直接访问的入口服务有效。如果希望对所有服务有效,需要业务代码对HTTP请求的header信息进行传播。 例如:如果您基于review组件,配置了基于请求内容的灰度发布策略,通过访问productpage组件的界面,是无法看到效果的。 原因为,您的客户端访问productpage组件携带了HTTP请求的header信息,而productpage组件请求reviews组件时,将这些header信息丢失了(详情可参考如何使用Istio调用链埋点),从而失去了基于请求内容的灰度发布效果。 设置完成后,单击“策略下发”。 灰度策略的生效需要几秒时间,您可以在监测灰度运行状态页面,观察灰度版本的运行状态。