华为云用户手册

  • Table实例的创建 public abstract class TableOperationImpl { private static Configuration conf = null; private static Connection connection = null; private static Table table = null; private static TableName tableName = TableName.valueOf("sample_table"); public TableOperationImpl() { init(); } public void init() { conf = ConfigurationSample.getConfiguration(); try { connection = ConnectionFactory.createConnection(conf); table = conn.getTable(tableName); } catch (IOException e) { e.printStackTrace(); } } public void close() { if (table != null) { try { table.close(); } catch (IOException e) { System.out.println("Can not close table."); } finally { table = null; } } if (connection != null) { try { connection.close(); } catch (IOException e) { System.out.println("Can not close connection."); } finally { connection = null; } } } public void operate() { init(); process(); close(); } }
  • 共享Configuration实例 HBase客户端代码通过创建一个与ZooKeeper之间的HConnection,来获取与一个HBase集群进行交互的权限。一个ZooKeeper的HConnection连接,对应着一个Configuration实例,已经创建的HConnection实例,会被缓存起来。也就是说,如果客户端需要与HBase集群进行交互的时候,会传递一个Configuration实例到缓存中去,HBase Client部分通过已缓存的HConnection实例,来判断属于这个Configuration实例的HConnection实例是否存在,如果不存在,会创建一个新的HConnection,如果存在,则会直接返回相应的实例。 因此,如果频频的创建Configuration实例,会导致创建很多不必要的HConnection实例,很容易达到ZooKeeper的连接数上限。 建议在整个客户端代码范围内,都共用同一个Configuration对象实例。
  • Configuration实例的创建 该类应该通过调用HBaseConfiguration的create()方法来实例化。否则,将无法正确加载HBase中的相关配置项。 正确示例: //该部分,应该是在类成员变量的声明区域声明 private Configuration hbaseConfig = null; //建议在类的构造函数中,或者初始化方法中实例化该类 hbaseConfig = HBaseConfiguration.create(); 错误示例: hbaseConfig = new Configuration();
  • Spark应用中,需引入Spark的类 对于Java开发语言,正确示例: // 创建SparkContext时所需引入的类。 import org.apache.spark.api.java.JavaSparkContext // RDD操作时引入的类。 import org.apache.spark.api.java.JavaRDD // 创建SparkConf时引入的类。 import org.apache.spark.SparkConf 对于Scala开发语言,正确示例: // 创建SparkContext时所需引入的类。 import org.apache.spark.SparkContext // RDD操作时引入的类。 import org.apache.spark.SparkContext._ // 创建SparkConf时引入的类。 import org.apache.spark.SparkConf
  • 应用程序结束之前必须调用SparkContext.stop 利用spark做二次开发时,当应用程序结束之前必须调用SparkContext.stop()。 利用Java语言开发时,应用程序结束之前必须调用JavaSparkContext.stop()。 利用Scala语言开发时,应用程序结束之前必须调用SparkContext.stop()。 以Scala语言开发应用程序为例,分别介绍下正确示例与错误示例。 正确示例: //提交spark作业 val sc = new SparkContext(conf) //具体的任务 ... //应用程序结束 sc.stop() 错误示例: //提交spark作业 val sc = new SparkContext(conf) //具体的任务 ... 如果不添加SparkContext.stop,YARN界面会显示失败。如图1,同样的任务,前一个程序是没有添加SparkContext.stop,后一个程序添加了SparkContext.stop()。 图1 添加SparkContext.stop()和不添加的区别
  • 亲和性概念阐述 在应用没有容器化之前,原先一个虚拟机上会装多个组件,进程间会有通信。 但在做容器化拆分的时候,通常直接按进程拆分容器。比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果进程分布在网络中两个较远的点,请求经过多次转发,性能会很差。 亲和性可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。 反亲和性主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是N分之一或者只是一个实例。 应用与可用区的亲和性 亲和:决定应用组件部署在特定的可用区中。 反亲和:决定应用组件不能部署在特定的可用区中。 应用与节点间的亲和性 亲和:决定应用组件部署在某些特定的主机中。 反亲和:决定应用组件不能部署在某些特定的主机中。 应用间的亲和性 决定应用组件部署在相同或不同节点中。 亲和:用户可根据业务需求进行应用组件的就近部署,应用组件间通信就近路由,减少网络消耗。如图1所示,APP1、APP2、APP3和APP4部署在相同节点上,为亲和性部署。 图1 应用间亲和 反亲和:同个应用组件的多个实例反亲和部署,减少宕机影响;互相干扰的应用反亲和部署,避免干扰。 如图2所示,APP1、APP2、APP3和APP4分别部署在不同节点上,这四个应用为反亲和性部署。 图2 应用间反亲和
  • 使用限制 单账号跟踪的事件可以通过云审计控制台查询。多账号的事件只能在账号自己的事件列表页面去查看,或者到组织追踪器配置的OBS桶中查看,也可以到组织追踪器配置的CTS/system日志流下面去查看。 用户通过云审计控制台只能查询最近7天的操作记录。如果需要查询超过7天的操作记录,您必须配置转储到对象存储服务(OBS),才可在OBS桶里面查看历史文件。否则,您将无法追溯7天以前的操作记录。 云上操作后,1分钟内可以通过云审计控制台查询管理类事件操作记录,5分钟后才可通过云审计控制台查询数据类事件操作记录。
  • 操作步骤 登录ServiceStage控制台。 在“环境管理”页面,以如下任意方式进入“编辑环境”页面: 选择待操作环境,在“操作”列单击“编辑”。 单击待操作环境名称,进入环境详情页面,单击“编辑”。 参考下表编辑环境信息。 参数 参数说明 环境名称 环境的名称。 企业项目 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 已开通企业项目后可以使用。 描述 环境说明信息。 单击,输入环境说明信息。 单击,保存描述。 标签 说明: “华东-上海一”区域支持设置“标签”参数。 标签用于标识资源,当您拥有相同类型的许多资源时,可以使用标签按各种维度(例如用途、所有者或环境)对资源进行分类。 如果您的组织已经设定ServiceStage服务的相关标签策略,则需按照标签策略规则添加标签。标签如果不符合标签策略的规则,则可能会导致编辑环境失败,请联系组织管理员了解标签策略详情。 同一个环境下最多可以添加20个标签。 删除标签 单击待删除标签后的。 新增标签 单击“添加标签”,弹出“添加标签”对话框。 单击“新增标签”。 输入标签对应的key值和value值。 如果您需要使用同一标签标识多种资源,即所有资源均可在标签输入框下拉选择同一标签,建议在TMS中创建预定义标签。 单击“确定”。 图1 编辑环境信息 单击“保存”,完成环境修改。
  • 操作步骤 进入购买微服务引擎专享版页面。 每个项目默认最多可以创建5个微服务引擎专享版,如果您想创建更多,可以提交工单申请扩大配额。 关于项目,请参考项目。 参考下表设置参数,参数前面带*号的是必须设置的参数。 参数 说明 *计费模式 选择计费方式,目前支持: 包年/包月 按需计费 *企业项目 选择微服务引擎所在的项目,可在下拉框中搜索和选择需要的企业项目。 企业项目是一种云资源管理方式,企业项目管理服务提供统一的云资源按项目管理,以及项目内的资源管理、成员管理。 参考开通企业项目,创建并启用新的企业项目后可以使用,默认选择default。 说明: 微服务引擎创建成功后,不支持修改企业项目。 微服务引擎使用期间,请勿停用企业项目,否则会导致该引擎在引擎列表中不可见,影响正常使用。 *规格 选择微服务实例数配额。 须知: 微服务引擎创建成功后,不支持规格变更。 *引擎类型 选择微服务引擎的类型。 引擎类型为集群,其为集群模式部署,主机级容灾。 *微服务引擎名称 输入微服务引擎的名称,名称以字母开头,由字母、数字和-组成,且不能以-结尾,长度为3~24个字符。引擎创建后不能修改名称。 须知: 微服务引擎名称不允许命名为“default”。 *可用区 选择可用区。 根据环境可用区数量,为引擎选择1个或者3个可用区。 选择1个可用区,可提供主机级别容灾能力。 选择3个可用区,可提供可用区级别容灾能力。 说明: 已创建的微服务引擎不支持更换可用区。 同一个区域内的可用区内网互通。 多可用区可加强容灾能力。 *网络 为引擎选择虚拟私有云及其子网,可以为您的引擎构建隔离的、自主配置和管理的虚拟网络环境。 使用已创建的VPC,可在下拉列表中搜索和选择当前账号已创建的虚拟私有云和子网。 使用新的VPC,在下拉列表中单击“创建新虚拟私有云”,创建新的虚拟私有云,具体操作请参考创建虚拟私有云和子网。 使用共享VPC,请在下拉列表选择其他账号共享给当前账号的VPC。 共享VPC基于资源访问管理(Resource Access Manager,简称RAM)服务的机制,VPC的所有者可以将VPC内的子网共享给一个或者多个账号使用。通过共享VPC功能,可以简化网络配置,帮助您统一配置和运维多个账号下的资源,有助于提升资源的管控效率,降低运维成本。有关VPC子网共享的更多信息,请参见共享VPC。 说明: 当引擎创建完成后,不支持变更虚拟私有云。 描述 单击,输入引擎描述信息。 安全认证 开启了“安全认证”的微服务引擎专享版,通过微服务引擎控制台提供了基于RBAC(Role-Based Access Control,基于角色的访问控制)的系统管理功能。 选择“开启安全认证”: 根据业务需要确认是否需要开启“编程接口安全认证”。 开启编程接口安全认证后,需要在微服务的配置文件中添加对应用户的账号密码,否则服务无法注册到引擎。 关闭编程接口安全认证,微服务的配置文件中无需配置账号密码即可将服务注册到引擎,效率性能更高,建议用于VPC内访问时使用。 输入root账号的“密码”,并在“再次输入密码”输入框输入密码进行确认。 密码请妥善保管,以免遗失。 选择“关闭安全认证”: 关闭安全认证功能,可以在实例创建完成后再设置开启。 购买时长 计费模式选择“包年/包月”时需要设置。可设置是否开通自动续费。 单击“立即购买”,进入引擎信息确认界面。 单击“提交”,等待引擎创建完毕。 微服务引擎创建完成,大约需要31分钟。 微服务引擎创建成功后,“状态”为“可用”。查看微服务引擎状态,请参考查看微服务引擎信息。 如果微服务引擎创建失败,可在操作日志页面上查看失败原因并处理后可进行以下操作: 可在“微服务引擎信息”区域,单击“重试”重新创建。 如果重试失败,可删除创建失败的微服务引擎,删除微服务引擎,请参考删除微服务引擎专享版。
  • 前提条件 微服务引擎运行于虚拟私有云,创建微服务引擎前,需保证有可用的虚拟私有云和子网。 创建虚拟私有云和子网,请参考创建虚拟私有云和子网。 如果引擎创建账号的权限为创建引擎的最小权限,如微服务引擎细粒度权限依赖说明中的“cse:engine:create”所示。则需要由主账号为其预置VPC默认安全组cse-engine-default-sg,并添加如表1所示规则。 添加安全组规则,请参考添加安全组规则。 表1 默认安全组cse-engine-default-sg规则说明 方向 优先级 策略 协议端口 类型 源地址 入方向 1 允许 ICMP : 全部 IPv6 ::/0 1 允许 TCP : 30100-30130 IPv6 ::/0 1 允许 全部 IPv6 cse-engine-default-sg 1 允许 TCP : 30100-30130 IPv4 0.0.0.0/0 1 允许 ICMP : 全部 IPv4 0.0.0.0/0 出方向 100 允许 全部 IPv4 0.0.0.0/0 100 允许 全部 IPv6 ::/0
  • 操作步骤 登录ServiceStage控制台。 单击“应用管理”。 单击待批量克隆的组件所在的应用名称,进入“应用概览”页面。 勾选“组件列表”中待批量克隆的组件,单击“批量克隆”。 参考下表批量设置待克隆组件版本配置信息。 参数 说明 组件名称 组件的名称,组件部署完成后不支持修改。 Kubernetes类型环境: 不同应用下的同名组件可以部署在同一个环境下。 同一个应用下的同名组件可以部署在同一个环境下相同CCE集群下的不同泳道。关于泳道,请参考全链路流量控制概述。 同一个应用下的同名组件可以部署在不同环境下。 虚拟机类型环境: 不同应用下的同名组件可以部署在同一个环境下。 同一个应用下的同名组件可以部署在不同环境下。 组件版本 组件版本号。 默认以您开始执行批量克隆组件操作的时间来生成版本号,格式为yyyy.mmdd.hhmms,s取时间戳中秒数的个位值。例如:时间戳为2022.0803.104321,则版本号为2022.0803.10431。 您也可以自定义版本号,格式为:A.B.C或者A.B.C.D。A、B、C、D为自然数,例如:1.0.0或者1.0.0.0。 须知: 自定义版本号需唯一,请勿与该组件的历史版本号重复。 您可以执行以下操作,批量同步设置组件版本号: 鼠标移动到指定组件的“组件版本”输入框,单击。 勾选需要同步配置组件版本号的其他组件。 单击“确定”。 所属应用 选择组件所属应用。您可以执行以下操作,批量同步设置组件所属应用: 鼠标移动到指定组件“所属应用”下拉列表框,单击。 勾选需要同步配置组件所属应用的其他组件。 单击“确定”。 所属环境 选择组件部署环境,仅可选择Kubernetes类型环境。 您可以执行以下操作,批量同步设置组件所属环境: 鼠标移动到指定组件“所属环境”下拉列表框,单击。 勾选需要同步配置组件所属环境的其他组件。 单击“确定”。 所属命名空间 选择执行构建的环境下CCE集群命名空间,用于隔离构建数据。关于命名空间,请参考管理命名空间。 您可以执行以下操作,批量同步设置组件所属命名空间: 鼠标移动到指定组件“所属命名空间”下拉列表框,单击。 勾选需要同步配置组件所属命名空间的其他组件。 单击“确定”。 软件包/镜像包/源码仓库 单击,重新选择软件包/镜像包/源码仓库,请参考组件来源说明。 实例数 设置运行在环境下的组件实例数,取值范围为[1, 200]。 您可以执行以下操作,批量同步设置组件实例数: 鼠标移动到指定组件“实例数”输入框,单击。 勾选需要同步配置组件实例数的其他组件。 单击“确定”。 操作 单击指定组件“操作”列的,可以取消克隆该组件。 单击指定组件“操作”列的“高级配置”,可以设置组件的高级配置。 请参考11设置组件的公网访问参数。 请参考13设置“微服务引擎”、“分布式缓存”、“云数据库”、“组件配置”、“部署配置”和“运维监控”等参数。 说明: 您可以执行以下操作,批量同步为组件绑定微服务引擎、分布式缓存或云数据库: 单击,展开“高级配置”下“微服务引擎”、“分布式缓存”或“云数据库”。 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击。 勾选需要同步配置的其他组件。 单击“确定”。 您可以执行以下操作,批量为组件同步删除微服务引擎、分布式缓存或云数据库: 单击,展开“高级配置”下“微服务引擎”、“分布式缓存”或“云数据库”。 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击。 单击“同步删除”,勾选需要同步配置的其他组件,单击“确定”。 如果仅为当前组件删除已绑定的微服务引擎、分布式缓存或云数据库,单击“取消”。 您可以执行以下操作,为指定组件重新绑定微服务引擎、分布式缓存或云数据库: 单击,展开“高级配置”下的“微服务引擎”、“分布式缓存”或“云数据库”。 鼠标移动到指定组件已绑定的微服务引擎、分布式缓存或云数据库,单击。 重新选择当前环境下已纳管的微服务引擎、分布式缓存或云数据库,单击“确定”。 (可选)单击“高级设置预检查”,检查各组件的高级配置是否正确。 单击“完成并执行”。 等待组件状态由“初始化”转换为“运行中”,表示已成功完成组件批量克隆。
  • 前提条件 已经创建集群,请参考购买集群操作。 构建任务会在CCE集群节点上启动一个构建容器,执行构建相关的操作。为了确保构建的安全性,建议您对CCE集群节点进行安全加固,请参考禁止容器获取宿主机元数据进行操作。 构建任务依赖预置在构建容器中的JDK、Golang、Maven、Gradle、Ant或Node.js编译工具。 支持同一个账号下的不同IAM用户操作同一个构建集群。如需对特定IAM用户取消构建权限,请参考创建ServiceStage自定义策略为该用户设置自定义策略,将“servicestage:assembling:create”、“servicestage:assembling:modify”和“servicestage:assembling:delete”权限设置为拒绝策略。 已为构建节点绑定弹性公网IP,请参考绑定弹性公网IP。
  • 操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待操作泳道组名称,进入“全链路流量控制”页面。 单击泳道组当前关联的流量入口网关卡片上的“网关路由配置”。 “配置方式”选择“基于流量配置”。 根据您的实际业务需要,输入各泳道的流量配置百分比。 各泳道的流量配置取值范围为[0, 100]之间的整数,全部泳道流量配置百分比之和必须等于100%。 单击“确定”,完成基于流量的网关路由配置。 配置会对泳道组下所有泳道生效。
  • 操作步骤 登录ServiceStage控制台。 在“环境管理”页面,单击待操作虚拟机类型环境名称。 在“资源配置”下左侧列表,选择“计算”资源类型下的“弹性云服务器 ECS”资源名称。 在右侧已纳管的资源列表,找到需要安装Agent的虚拟机,在“Agent 状态”列单击“安装”,弹出Agent安装窗口。 选择“授权模式”。 授权Agent可以使用您的身份认证信息,获取应用的部署、升级、启动、停止等任务,并执行任务。 您可以选择“委托授权”、“AK/SK”模式进行授权,推荐使用“委托授权”。 “授权模式”选择“委托授权”: 单击,选择已经创建的委托后单击。 新创建委托,请参考 如何创建委托?。 创建委托时,您需要委托op_svc_ecs账号或者ECS云服务,并且在相应的区域选择Tenant Administrator策略。 “授权模式”选择“AK/SK”: 安全起见,请获取并使用具有“ServiceStage Development”权限的AK、SK。AK、SK所属账号需和安装虚拟机Agent时使用的账号在同一个用户下。 AK、SK获取请参考访问密钥。 单击“复制命令”,复制窗口下方自动生成的命令,即为Agent安装命令。 “委托授权”模式,命令示例如下: export AGENT_INSTALL_URL=https://${Region_Name}-servicestage-vmapp.obs.${Region_Name}.${Domain_Name}/vmapp/agent/agent-install.sh;if [ -f `which curl` ];then curl -# -O -k ${AGENT_INSTALL_URL};else wget --no-check-certificate ${AGENT_INSTALL_URL};fi;bash agent-install.sh ${Project_ID} ${Version} ${Region_Name} ${Flag} “AK/SK”模式,命令示例如下: export AGENT_INSTALL_URL=https://${Region_Name}-servicestage-vmapp.obs.${Region_Name}.${Domain_Name}/vmapp/agent/agent-install.sh;if [ -f `which curl` ];then curl -# -O -k ${AGENT_INSTALL_URL};else wget --no-check-certificate ${AGENT_INSTALL_URL};fi;bash agent-install.sh ${AK}${SK} ${Project_ID} ${Version} ${Region_Name} ${Flag} AGENT_INSTALL_URL为Agent安装地址。 Region为华北-北京一时,AGENT_INSTALL_URL=https://servicestage-vmapp.obs.cn-north-1.myhwclouds.com/vmapp/agent/agent-install.sh。 如果使用“委托授权”模式,ECS节点有权获取用户的临时AK/SK,命令中不需要输入AK/SK。 ${AK}、${SK}为访问密钥。 ${Region_Name}为区域名称。 ${Domain_Name}为全局域名。 ${Project_ID}为项目ID,如何获取项目ID请参考如何获取项目ID?。 ${Version}为版本号,使用latest,自动去下载最新版本。 ${Flag}为布尔值,表示是否自动添加应用访问端口。true表示是;false表示否。 参照界面提示登录虚拟机,执行安装命令。 如果虚拟机Agent安装失败,请参考如何处理虚拟机Agent安装成功但是界面仍然显示缺少Agent?处理。
  • 后续操作 阈值规则创建完成后,您还可以按照表2中的步骤来管理阈值告警。 表2 管理阈值告警相关操作 操作 说明 修改阈值告警 当您发现当前的阈值规则设置不合理时,您可以参考如下操作对阈值规则进行修改,以便更好的满足您的业务需求。 单击阈值告警列表“操作”列的“修改”。 在“修改阈值规则”页面中根据界面提示修改阈值规则的相关参数。 单击“修改”。 删除阈值告警 随着业务的变动,当您发现当前的阈值规则已不再需要时,您可以参考如下操作删除阈值规则,以便释放更多的阈值规则资源。 删除阈值规则。 删除单个阈值:单击阈值规则列表“操作”列的“删除”。 批量删除阈值规则:选中单个或多个阈值规则前的复选框,单击页面上方的“删除”。 在弹出的对话框中单击“确定”。 搜索阈值告警 在下拉列表框中选择时间段。 在页面右上角的搜索框中输入阈值告警名称或描述的关键字。 单击,或在键盘上按“Enter”键。 也可单击“高级搜索”设置搜索条件,单击“搜索”进行查询。 查看阈值告警 在已设的连续周期内,当指标数据满足阈值条件时,系统会发送阈值告警。 在阈值告警列表中查看该告警。 查看历史告警 单击阈值规则列表“操作”列的“历史记录”,查看历史告警。 查看数据不足事件 在已设的连续周期内,当没有指标数据上报时,系统会发送数据不足事件。 可在“事件”页面查看该事件,请参考查看组件运行事件。
  • 删除组件标签 登录ServiceStage控制台。 选择以下任意方式进入组件“概览”页面。 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式。 单击“标签管理”。 选择待删除的标签,单击“操作”列的“删除标签”。 图4 删除标签 单击“保存”。
  • 添加组件标签 登录ServiceStage控制台。 选择以下任意方式进入组件“概览”页面。 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式。 单击“标签管理”。 图2 管理标签 单击“添加标签”: 输入“键”、“值”。 输入的“键”名称不能和已有标签的“键”名称重复。 单击“保存”。 图3 添加标签
  • 设置弹性伸缩-HPA策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的,开启伸缩策略配置,进入“伸缩策略配置”页签。 CCE集群未安装metrics-server插件,请执行4。 CCE集群已安装metrics-server插件,请执行6。 单击“立即前往配置”,在云容器引擎控制台完成metrics-server插件安装。 为CCE集群安装metrics-server插件,请参考metrics-server。 等待插件安装完成后,返回“伸缩策略配置”页面,刷新页面。 设置伸缩策略参数。 策略名称 输入策略名称。伸缩策略设置完成后,策略名称不支持修改。 冷却时间 根据实际业务需要,输入扩容/缩容冷却时间。 策略成功触发后,在扩容/缩容冷却时间内,不会再次触发扩容/缩容。 实例范围 根据实际业务需要,输入最小实例数和最大实例数。 策略成功触发后,工作负载实例将在此实例范围内伸缩。 触发条件 支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。 “界面配置”方式 根据实际业务需要,设置“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。 策略成功触发后,通过向上取整(当前CPU或内存利用率指标值 / 期望值 × 当前运行实例数)来计算需要伸缩的实例数。 当前CPU或内存利用率的指标值小于缩容阈值时,触发缩容。 当前CPU或内存利用率的指标值大于扩容阈值时,触发扩容。 “YAML配置”方式 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 50 - type: Pods pods: metric: name: packets-per-second target: type: AverageValue averageValue: 1k - type: Object object: metric: name: requests-per-second describedObject: apiVersion: networking.k8s.io/v1beta1 kind: Ingress name: main-route target: type: Value value: 10k 如以上示例所示,使用YAML格式除了使用CPU(cpu)、内存(memory)的利用率(Utilization)作为指标外,还可以自定义指标参数配置,并支持更多指标,如Pods、Object、External等。 使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。 为CCE集群安装prometheus插件,请参考prometheus。 单击“确定”,完成策略设置。 弹性伸缩-HPA策略设置完成后,您可以根据业务需要,执行以下操作: 修改弹性伸缩-HPA策略 查看弹性伸缩-HPA策略运行情况 删除弹性伸缩-HPA策略
  • 修改弹性伸缩-HPA策略 您可以根据实际业务需要,编辑已设置好的弹性伸缩-HPA策略,重新设置策略参数。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面,选择“伸缩策略配置”页签,单击“编辑伸缩策略”,重新设置参数。 冷却时间 根据实际业务需要,修改扩容/缩容冷却时间。 实例范围 根据实际业务需要,修改最小实例数和最大实例数。 触发条件 支持通过“界面配置”、“YAML配置”两种方式修改触发条件参数。 “界面配置”方式 根据实际业务需要,修改“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。 “YAML配置”方式 使用YAML格式可以自定义指标参数配置,并支持更多指标,如pods、Object、External等。 使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。 为CCE集群安装prometheus插件,请参考prometheus。 单击“确定”,完成修改。
  • 设置手动伸缩策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面的“手动伸缩”区域,设置手动伸缩策略。 部署环境为Kubernetes类型的组件,请参考以下操作: 单击,修改“实例数”。 单击,实例伸缩操作即可生效。 图2 设置手动伸缩策略(部署环境为Kubernetes类型的组件) 部署环境为虚拟机类型的组件,请参考以下操作: 在“当前实例数”,单击。 选择“伸缩类型”,根据实际需要增加或者减少组件运行实例。 “伸缩类型”选择“扩容”时,单击“添加弹性云服务器”,可参考购买弹性云服务器创建新的ECS实例,用于运行新增组件实例。 “伸缩类型”选择“缩容”时,可以将当前运行组件实例数缩减到1个为止。 单击“确定”。 图3 设置手动伸缩策略(部署环境为虚拟机类型的组件)
  • 删除弹性伸缩-HPA策略 您可以根据实际业务需要,删除不再使用的弹性伸缩-HPA策略。 删除操作无法恢复,请谨慎操作。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的。 单击“确定”,完成策略删除。
  • 查看弹性伸缩-HPA策略运行情况 ServiceStage支持查看已设置好的弹性伸缩-HPA策略的运行状态和运行事件。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面: 选择“状态”页签,查看策略运行状态。 选择“事件”页签,查看策略运行中发生的事件。
  • 设置优雅缩容策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称或者在组件名称上单击右键选择打开组件“概览”页面的方式,在左侧导航栏单击“伸缩”。 在“伸缩”页面,设置优雅缩容策略。 设置“缩容时间窗”:单击,修改参数,单击生效。 图1 设置优雅缩容策略
  • 操作步骤 登录ServiceStage控制台。 单击“全链路流量控制”。 单击待操作非基线泳道所在泳道组名称,进入“全链路流量控制”页面。 单击待操作非基线泳道卡片上的。 单击切换开关,设置路由规则生效方式。 或:默认生效方式,匹配任意一条路由规则就生效。 且:匹配所有路由规则才生效。 单击“新增匹配规则”,参考下表设置路由匹配规则。 参数 参数说明 匹配类型 支持的路由规则匹配类型。 当前仅支持基于“请求头”类型的匹配。 参数名称 “匹配类型”对应的key值。 条件类型 “条件值”满足的匹配规则。 前缀匹配:以前缀作为匹配条件。 精确匹配:即完全匹配。 正则匹配:以正则表达式作为匹配条件。 条件值 “匹配类型”对应的value值。 单击“确定”,完成基于内容的网关路由配置。 开启泳道流量,使配置生效。 单击。 单击“确定”。 配置会对该非基线泳道下的所有组件生效。如果业务请求无法匹配到该非基线泳道所配置的路由规则,则网关将业务请求转发至基线泳道的组件处理。
  • 治理策略说明 支持负载均衡、限流、容错、降级、熔断、错误注入和黑白名单等策略的配置,具体说明见下表。 名称 说明 负载均衡 应用场景 微服务一般会部署多个实例,负载均衡控制微服务消费者访问微服务提供者的多个实例的策略,以达到流量均衡的目的。策略包括轮询、随机、响应时间权值、会话粘滞等。 该治理策略的配置示例及在POM中添加依赖可参考负载均衡中相关内容。 限流 应用场景 用于控制访问微服务的请求量大小,避免由于流量冲击对系统造成破坏。 该治理策略的配置示例及在POM中添加依赖可参考限流中相关内容。 降级 应用场景 用于控制微服务调用其他微服务的时候,强制返回缺省值或者抛出异常,而不将请求发送到目标微服务,以达到屏蔽对目标微服务的访问和降低其压力的目的。 该治理策略的配置示例及在POM中添加依赖可参考降级中相关内容。 容错 应用场景 当微服务消费者访问提供者出现异常,比如实例网络不通等,需要将请求转发到其他可用的实例。这里的容错,常被称为重试。 该治理策略的配置示例及在POM中添加依赖可参考容错中相关内容。 熔断 应用场景 当微服务消费者访问提供者出现异常,比如实例网络不通、请求超时等,并且异常积累到一定的程度,需要停止访问提供者,返回一个异常或者缺省值,防止雪崩效应。 熔断提供了自动熔断策略。自动熔断需要结合错误率等判断是否熔断。 该治理策略的配置示例及在POM中添加依赖可参考熔断中相关内容。 错误注入 应用场景 错误注入可以模拟一个调用失败,主要用于功能验证、故障场景演示等场景。 Java Chassis开发框架接入的微服务治理,该治理策略的配置示例及在POM中添加依赖可参考错误注入中相关内容。 说明: 该服务治理策略只适用于Java Chassis开发框架接入的微服务。 黑白名单 应用场景 基于公钥认证机制,微服务引擎提供了黑白名单功能。通过黑白名单,可以控制微服务允许其他哪些服务访问。 Java Chassis开发框架接入的微服务治理 只有启用了公钥认证,设置的黑白名单才能生效,请参考公钥认证。 说明: 该服务治理策略只适用于Java Chassis开发框架接入的微服务。
  • 操作步骤 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源配置”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”。 图1 绑定CCE集群 单击“立即绑定”。 已创建CCE集群,在集群下拉列表选择待绑定的CCE集群,单击“确定”。 未创建CCE集群,请根据页面提示前往CCE控制台,参考前提条件创建CCE集群后再次执行绑定操作。 “Kubernetes”类型的环境,如果选择的VPC开启了IPv6且纳管了CCE集群资源时,需选择开启了IPv6开关的CCE集群资源。否则,会导致在该VPC下的开启了安全认证的微服务引擎专享版上注册的Java Chassis微服务在使用IPv6服务注册发现地址时,注册失败。 处理方法,请参考如何处理开启了安全认证的微服务引擎专享版开启IPv6后服务注册失败?。
  • 前提条件 已创建1个环境待绑定的状态为运行中的CCE集群。集群和环境所在的VPC需要一致,且不能被其他环境纳管。 CCE集群用于“Kubernetes”类型环境下部署和运行组件。 创建CCE集群,请参考购买集群。 为CCE集群添加节点,请参考创建节点。 ServiceStage支持使用CCE集群下“弹性云服务器-虚拟机”、“裸金属服务器”类型的节点。 CCE集群节点支持的操作系统,请参考节点操作系统。 CCE集群节点容器引擎当前支持Docker和Containerd。节点操作系统和容器引擎的对应关系,请参考容器引擎。 已创建“Kubernetes”类型的环境,请参考创建环境。
  • 操作步骤 登录云应用模型控制台,选择“实例管理”。 您可选择以下任一种方式进入设计页面。 选择待操作实例,在“操作”栏单击。 单击待操作实例名称,进入实例概览页面。在设计缩略图模块,单击“进入设计”按钮。 单击页面上方“预览”按钮,可以预览实例的架构图。 预览状态下,不能编辑实例,只支持对架构图进行缩放、居中和导出。 图1 预览架构图 (可选)单击可切换架构图显示效果。 图2 3D预览效果 部署成功的实例,可查看部署时参数视图及参数录入详情。 在设计区内双击待查看资源或单击右侧对应的资源图标,可查看部署时参数视图。 图3 部署参数视图 单击,可切换查看参数录入详情。 图4 资源参数录入详情
  • 使用流程 图2 全链路流量控制使用流程 全链路流量控制的使用流程如图2所示。 创建并部署基线版本组件 使用ServiceStage创建并使用Kubernetes类型环境部署基线版本微服务组件,并为所有基线版本组件绑定同一个微服务引擎,请参考创建并部署组件。 创建应用网关 应用网关用于转发打标签组件流量,请参考创建应用网关。 绑定目标服务 将1中已接入微服务引擎的组件对应微服务与2创建的应用网关绑定,以便网关获取组件微服务地址,请参考创建服务。 配置路由 为2创建的应用网关配置路由规则,当应用网关收到访问流量时,会根据已配置的路由规则判断是否匹配并做相应的处理,请参考配置路由。 创建泳道组 泳道组是一组泳道的集合,用于区分不同的组织或场景,请参考创建泳道组。 创建基线泳道 泳道用于为相同版本组件定义一套隔离环境。只有满足了流控路由规则的请求流量才会通过标签控制流量转发到对应泳道的目标服务组件。一个组件只能属于一个泳道,一个泳道可以包含多个组件。 基线泳道包括应用中所有组件的基线版本,当微服务调用链中不存在某个组件的时候,会默认访问基线泳道中的组件,请参考创建基线泳道。 关联基线版本组件到基线泳道 为6创建的基线泳道关联所有应用组件,请参考关联基线版本组件到基线泳道。 创建非基线泳道 非基线泳道用于关联应用的灰度版本组件,请参考创建非基线泳道。 创建并部署灰度版本组件 非基线泳道创建后,需要根据实际业务需要创建灰度版本组件,用于调整流量至非基线泳道验证业务,请参考创建灰度版本组件。 调整非基线泳道流量验证业务 根据实际业务需要修改路由配置,调整流量至非基线泳道验证业务,请参考配置路由。 升级基线泳道组件并调整流量 升级基线泳道组件,并根据业务需要调整流量至基线泳道组件。 升级单个组件,请参考单批发布方式升级或滚动发布方式升级。 批量升级组件,请参考批量升级组件版本配置。
  • 使用限制 使用Kubernetes类型环境部署且绑定了微服务引擎(对应于微服务引擎CSE服务的ServiceComb引擎专享版)的微服务组件,支持使用全链路流量控制。关于创建并部署组件,请参考创建并部署组件。 微服务组件依赖的开发框架为spring-cloud-huawei 1.11.5-2021.0.x及以上版本。 加入全链路流量控制的组件,将不再支持通过灰度发布方式升级组件。关于灰度发布升级组件,请参考灰度发布(金丝雀)方式升级。
共100000条