华为云用户手册

  • 解决方法 租户或用户以正确的AK/SK登录Docker客户端。 向本租户或用户下有操作权限的namespace上传镜像,或者更换到新的namespace。 执行如下命令,向本租户或用户下有操作权限的namespace上传镜像。 docker push 10.125.54.133:20202/test2/busybox:latest 10.125.54.133:20202为租户或用户准备上传仓库的IP和端口号。 test2为该租户或用户下有操作权限的namespace。 执行如下命令,更换到新的namespace。 docker push 10.125.54.133:20202/test3/busybox:latest 10.125.54.133:20202为租户或用户准备上传仓库的IP和端口号。 test3为新的namespace。 上传成功后,显示如下: The push refers to a repository [10.125.54.133:20202/test2/busybox]6a749002dd6a: Pushedlatest: digest: sha256:ecb3f3e96e003af6e02f0f47ac4d25a3b0585db54de0a82bb070f8cb78a79bc7 size: 527 出现异常,请联系技术支持工程师。
  • 微服务和普通应用有什么不同? 微服务是一种架构模式,其核心是将一个单体应用分成多个部分进行开发。所以微服务架构的应用程序,其本质上是一个分布式应用。 基于微服务架构构建的应用程序,可以让业务变化更快,整体系统可靠性更高。 类型 微服务 普通应用 开发 每个微服务的体量相对较小,业界的two pizza团队和“2周即可全部重写全部代码”等都可以作为微服务划分的参考。在开发时期,需注意服务接口的定义以与周边微服务进行配合,“基于契约”的开发方式是非常推荐的。 微服务开发,请参考开发微服务应用。 普通应用逻辑复杂、模块耦合、代码臃肿、修改难度大、版本迭代效率低下。 部署 微服务组成的应用系统通常比较复杂,在一次性部署的时候,需要进行编排部署。 微服务应用部署,请参考部署组件。 普通应用可能会比较大,构建和部署时间也相应地比较长,不利于频繁部署,阻碍持续交付。在移动应用开发中,这个问题会显得尤为严重。 运维 在原来的指标监控、日志收集之外还非常强调治理。其核心理念是在运行时期通过对线上系统的各种调整以达到系统整体健康度要求的效果。 应用运维,请参考应用运维。 普通应用线上问题修复周期长,任何一个线上问题修复都需要对整个应用系统进行全面升级。 父主题: 应用开发问题
  • 为什么一定要定义服务契约? 企业级系统规模普遍较大,微服务组件众多,所以对服务间接口进行统一管理是企业的关键需求。微服务引擎通过契约管理满足这一需求。 管理角度:通过契约管理,企业中的接口管理者可以统一定义微服务的契约文件(符合接口描述标准的接口定义文件),从而做到规范并协调多个开发团队的接口开发,降低沟通成本且避免后期的混乱。 开发角度:在微服务开发的时候,不同团队甚至不同ISV间,可以基于统一的契约文件开发同一应用或系统,从而方便整体系统一致性的维护。具体表现在,单体应用中模间是代码级调用,在编译期就可以解决API不兼容问题,修复成本也极低。微服务解耦后,服务间变为了远程调用,接口不一致通常发现时间较晚,会造成更大的修复成本。有了契约可以保证架构师设计契约,严格审查变更,并反向生成代码,保证兼容性。 另外,对于规模较小、统一管理要求不高的系统,产品支持从接口代码自动生成契约文件。 父主题: 应用开发问题
  • 如何体验ServiceStage的源码部署功能? 如表1所示,ServiceStage基于GitHub提供了一些不同语言的demo。 您可以Fork特定语言的demo源码到自己的GitHub代码仓库中,参考部署组件去体验ServiceStage的源码部署功能。 表1 ServiceStage提供的demo源码及GitHub地址说明 demo名称 语言类型 GitHub代码仓库地址 ServiceComb-SpringMVC Java https://github.com/servicestage-template/ServiceComb-SpringMVC ServiceComb-JAX-RS Java https://github.com/servicestage-template/ServiceComb-JAX-RS ServiceComb-POJO Java https://github.com/servicestage-template/ServiceComb-POJO SpringBoot-WebService Java https://github.com/servicestage-template/SpringBoot-WebService SpringBoot-Webapp-Tomcat Java https://github.com/servicestage-template/SpringBoot-Webapp-Tomcat nodejs-express Node.js https://github.com/servicestage-template/nodejs-express-4-16 nodejs-koa Node.js https://github.com/servicestage-template/nodejs-koa-2-5-2 php-laravel PHP https://github.com/servicestage-template/php-laravel-v5-6-28 php-slim PHP https://github.com/servicestage-template/php-slim-3-10-0 Gosimple Golang https://github.com/servicestage-template/Gosimple 父主题: 应用管理
  • 问题描述 虚机部署组件删除失败,在任务详情界面单击“查看详情”,看到的错误信息示例如下: { "statusCode": 400, "jsonBody": { "error_code": "SV CS TG.VMAPP.4001020", "error_msg": "4001020", "error_detail": "host status is not active: abb3d0a4-f715-4932-b7ec-6dd917f65778,4f68e35b-6e08-48d0-bd3a-1151be19efa5" }} 其中: 错误码为:SVCSTG.VMAPP.4001020。 详细错误信息为:host status is not active: abb3d0a4-f715-4932-b7ec-6dd917f65778 ,“abb3d0a4-f715-4932-b7ec-6dd917f65778,4f68e35b-6e08-48d0-bd3a-1151be19efc6”是部署组件的两个弹性云服务器的ID。
  • 虚机部署的应用组件支持在什么目录写文件? 虚机部署的应用组件只支持在应用组件的运行目录下写文件,比如写日志文件或者解压包等。 应用组件的运行目录为安装虚机应用组件的ECS上的/opt/application/${appName}/${appVersion}/${instanceId}目录路径下。其中: ${appName}为组件实例名。 ${appVersion}为组件实例的版本号。 ${instanceId}为实例id。 同时,虚机部署的应用组件只支持在应用组件的运行目录下写文件只针对新安装的组件实例或者升级后的组件实例生效,对于原先已经部署的组件实例的目录还是维持原来的权限。 父主题: 应用管理
  • 解决方法 登录云服务器控制台,单击“弹性云服务器”。 在弹性云服务器列表选择部署组件的弹性云服务器,单击名称进入“基本信息”。 在“安全组”页签,单击“更改安全组”。 如果该端口规则已经在已有安全组中存在,可直接勾选该安全组。 如果该端口规则在已有安全组中不存在,请单击“新建安全组”,创建安全组,自行配置相关规则后再勾选该新建安全组。 再次使用curl -kv http://${部署应用组件的弹性云服务器节点IP}:${端口}命令访问容器端口,确认问题是否已解决。
  • mesher性能损耗是多少? 服务网格技术实际利用了网络流量劫持的方式来管理服务间流量,除了mesher本身内部的逻辑处理会耗时之外,还会引起额外的用户态和内核态间转换(CPU会有额外消耗),而前者相对于后者性能影响极小,因此性能损耗基本取决于网络中传输的payload大小。以http协议举例,影响传输速度的就是header、body等内容的大小。mesher一次端到端调用中的延迟为1ms,一个典型的用户测试过自己真实的业务调用,加上mesher后,延迟高了4ms,在用户可接受范围内。 以下测试结果为加入mesher前后的性能测试对比,使用的payload很小,就是字符串helloworld,但是加入了一定的代码以增加服务端的计算时间来模仿业务代码执行耗时。 表1 测试结果 指标 使用前 使用后 TPS 1749 1496 Latency 2.8ms 3.34ms CPU 50% 100% Concurrency 5 5 从以上结果可以看出mesher本身性能损耗很低,性能的主要瓶颈是在业务代码,如果增大payload内容,性能将会进一步降低。 建议在初期选型与POC时,使用该技术进行业务间的调用以测试真实性能损耗。 父主题: 服务网格mesher
  • 问题描述 在对微服务引擎专享版执行创建、删除、升级等操作时,可能会遇到非微服务引擎本身的错误。 例如,在创建微服务引擎专享版时,集群部署失败,报错如下: {"error_code":"SVCSTG.00500400","error_message":"{\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"code\":400,\"errorCode\":\"CCE.01400013\",\"errorMessage\":\"Insufficient volume quota.\",\"error_code\":\"CCE_CM.0307\",\"error_msg\":\"Volume quota is not enough\",\"message\":\"volume quota checking failed as [60/240] insufficient volume size quota\",\"reason\":\"QuotaInsufficient\"}"}
  • 出现拉取不到代码的场景 如下图所示: 一般原因可能有三种。 如果是在自己的节点上构建应用,可能是该节点没有绑定弹性ip,如上图所示"192.168.x.x"的节点没有绑定弹性ip,解决方法:去该节点绑定弹性ip。 授权信息过期,代码源的私人令牌权限范围不够,或者授权信息已被移除等,例如:devcloud的代码源,拉取不到代码,可能是创建授权的时候,用户名对应的密码输错了,导致拉取不到代码。解决方法请参考仓库授权重新授权即可。 自己搭建的代码源仓库,和构建的节点网络不通,例如:在集群A的某一个节点上搭建了一个私有的bitbucket,使用集群B构建,但是集群B和集群A不是同一个vpc,内网不通,导致构建拉取不到代码。解决方法:打通网络。
  • 构建的代码依赖自己的私有maven仓库 有以下两种解决方案。 在自己的项目的根目录下增加settings.xml文件,在settings.xml指定自己的私有maven仓库地址(如果自己的私有maven仓库时需要认证的,则需要在settings.xml配置上自己的认证信息,用户名密码等)。 在自己项目的pom.xml文件中,指定自己的私有maven仓库。 settings.xml和pom.xml所在路径示例如下。
  • 解决方法 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行如下命令查看安装虚机Agent时选择的“授权模式”。 cd /opt/servicestage-agent cat servicestage-agent.conf 如果返回结果中AK、SK的值为空,则“授权模式”为“委托授权”,请执行3。 如果返回结果中AK、SK的值不为空,则“授权模式”为“AK/SK”,请执行4。 “授权模式”为“委托授权”,请执行以下操作: 登录云服务器控制台。 在左侧导航栏选择“弹性云服务器”,单击虚机Agent离线的弹性云服务器名称。 在“基本信息”页签的“管理信息”区域,查看该弹性云服务器绑定的 IAM 委托名称。 登录 统一身份认证 服务控制台。 在左侧导航栏选择“委托”,单击3.c获取到的委托名称。 选择“基本信息”页签,查看“云服务”是否为ECS服务。 选择“授权记录”页签,查看“权限”是否为Tenant Administrator。 如果以上全部为是,请执行5。 如果以上任意一项为否,请先修改委托,然后执行3.f。 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行以下命令完成agent的重启,其中x.x.x要替换成环境中servicestage-agent的实际版本。 cd /opt/servicestage-agent/servicestage-agent-x.x.x su agent ./servicestage-agent.sh restart 查看Agent状态是否在线。 是,操作结束。 否,请执行5。 “授权模式”为“AK/SK”,请执行以下操作: 获取权限正确的或者创建新的AK、SK,请参考访问密钥。 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行以下命令修改配置文件中的AK和SK的值,修改完后保存退出。 cd /opt/servicestage-agent vi servicestage-agent.conf 执行以下命令完成agent的重启,其中x.x.x要替换成环境中servicestage-agent的实际版本: cd /opt/servicestage-agent/servicestage-agent-x.x.x su agent ./servicestage-agent.sh restart 查看Agent状态是否在线。 是,操作结束。 否,请执行5。 如果以上方法不能解决问题,请联系技术支持工程师。
  • 解决方法 待查看日志的主机未安装ICAgent ServiceStage的日志查看能力是由 AOM 服务提供的。主机是否安装ICAgent是使用AOM的日志能力的前提,否则将无法查看ServiceStage的日志。ICAgent是AOM的采集器,分别运行在每台主机上用于实时采集指标、日志和应用性能数据。 如何为待查看日志的主机安装ICAgent,请参考安装ICAgent。 用户业务日志输出位置为非标准位置 由于用户配置了日志策略,导致用户程序业务日志未输出到标准的输出位置。需参考如下方法进行排查处理: 虚机部署 排查配置的日志策略,是否把用户程序业务日志输出位置写到ServiceStage默认指定的虚机日志目录(/var/log/application/${组件名}-${环境名}-${随机字符串}/${版本号}/${实例ID}/start_app.log)外的其他目录。 请查询业务代码,对日志策略进行调整。 容器部署 排查配置的日志策略,是否把业务日志输出到出标准输出外的其他地方。请参考配置应用日志策略进行相关配置。
  • 解决方法 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行如下命令查看安装虚机Agent时选择的“授权模式”。 cd /opt/servicestage-agent cat servicestage-agent.conf 如果返回结果中AK、SK的值为空,则“授权模式”为“委托授权”,请执行3。 如果返回结果中AK、SK的值不为空,则“授权模式”为“AK/SK”,请执行4。 “授权模式”为“委托授权”,请执行以下操作: 登录云服务器控制台。 在左侧导航栏选择“弹性云服务器”,单击虚机Agent离线的弹性云服务器名称。 在“基本信息”页签的“管理信息”区域,查看该弹性云服务器绑定的IAM委托名称。 登录统一身份认证服务控制台。 在左侧导航栏选择“委托”,单击3.c获取到的委托名称。 选择“基本信息”页签,查看“云服务”是否为ECS服务。 选择“授权记录”页签,查看“权限”是否为Tenant Administrator。 如果以上全部为是,请执行5。 如果以上任意一项为否,请先修改委托,然后执行3.f。 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行以下命令完成agent的启动,其中x.x.x要替换成环境中servicestage-agent的实际版本。 cd /opt/servicestage-agent/servicestage-agent-x.x.x su agent ./servicestage-agent.sh start 查看Agent状态是否在线。 是,操作结束。 否,请执行5。 “授权模式”为“AK/SK”,请执行以下操作: 获取权限正确的或者创建新的AK、SK,请参考访问密钥。 登录虚机Agent离线的弹性云服务器,请参考登录弹性云服务器。 执行以下命令修改配置文件中的AK和SK的值,修改完后保存退出。 cd /opt/servicestage-agent vi servicestage-agent.conf 执行以下命令完成agent的重启,其中x.x.x要替换成环境中servicestage-agent的实际版本: cd /opt/servicestage-agent/servicestage-agent-x.x.x su agent ./servicestage-agent.sh start 查看Agent状态是否在线。 是,操作结束。 否,请执行5。 如果以上方法不能解决问题,请联系技术支持工程师。
  • 微服务引擎概述 微服务引擎(Cloud Service Engine,CSE)提供服务注册、服务治理、配置管理等全场景能力;帮助用户实现微服务应用的快速开发和高可用运维。支持多语言、多运行时;支持双栈模式,统一接入和管理Spring Cloud、Apache ServiceComb Java Chassis(Java Chassis)、Go Chassis、Dubbo侵入式框架和非侵入式服务网格。 您可以直接使用名称为“Cloud Service Engine”的微服务引擎专业版,也可以创建微服务引擎专享版。 微服务引擎专享版采用物理隔离的方式部署,租户独占微服务引擎。 微服务引擎专业版不支持多可用区(AZ)。 微服务引擎专享版在创建时可以设置多可用区(AZ)。 创建微服务引擎后,可用区不支持修改,请根据需要设置。 不支持创建跨CPU架构的微服务引擎专享版实例。 父主题: 微服务引擎
  • 解决方法 可在开发环境下使用mvn dependency:tree命令查看依赖树,排查微服务开发框架同netty版本是否匹配。 例如,ServiceComb 2.0.1开发框架所匹配的netty依赖版本为4.1.45.Final。 使用maven管理复杂依赖关系,请参考:https://servicecomb.apache.org/cn/docs/maven_dependency_management/。
  • 前提条件 已经创建集群,请参考购买集群操作。 构建任务会在CCE集群节点上启动一个构建容器,执行构建相关的操作。为了确保构建的安全性,建议您对CCE集群节点进行安全加固,请参考禁止容器获取宿主机元数据进行操作。 构建任务依赖预置在构建容器中的JDK、Golang、Maven、Gradle、Ant或Node.js编译工具。 支持同一个帐号下的不同IAM用户操作同一个构建集群。如需对特定IAM用户取消构建权限,请参考创建ServiceStage自定义策略为该用户设置自定义策略,将“servicestage:assembling:create”、“servicestage:assembling:modify”和“servicestage:assembling:delete”权限设置为拒绝策略。 已为构建节点绑定弹性公网IP,请参考绑定弹性公网IP。
  • 前提条件 只能在应用下新增组件,请先创建应用,请参考创建应用。 组件需要部署在指定环境下,请先创建环境并纳管资源,请参考环境管理。 需要根据组织管理组件构建生成的镜像,请先创建组织,请参考创建组织。 (可选)如果基于Kubernetes类型的环境创建并部署组件,请先创建命名空间,请参考创建命名空间。 如果您基于“源码仓库”创建组件,那么您首先需要创建仓库授权,请参考仓库授权。 如果您基于软件包创建组件,那么您首先需要将软件包上传至CodeArts软件发布库、SWR软件仓库或者OBS对象存储中。 将软件包上传至CodeArts软件发布库,请参考上传软件包。 将软件包上传至SWR软件仓库,请参考上传软件包。 将软件包上传至OBS对象存储中,请参考上传文件。 如果上传软件包失败,请参考如何解决上传软件包失败的问题?。
  • 购买套餐包 登录ServiceStage控制台,进入总览界面。 在总览界面右侧,单击“购买套餐包”,选择“套餐包版本”、“应用实例数”和“购买时长”。 图2 购买套餐包 单击“立即购买”,确认套餐包正确无误后,单击“去支付”,完成支付。 购买套餐包的操作,只有“帐号”管理员才能操作,“IAM用户”无权操作。 关于“帐号”及“IAM用户”的概念解释,请参见IAM的基本概念章节。 如果购买了专业版和铂金版套餐,会赠送1个微服务引擎专享版引擎,可以进入到“微服务引擎”界面,创建免费引擎,参数配置请参考创建微服务引擎。 可以多次购买套餐包,但是购买时长不能叠加,到期时间为所有套餐包的最晚到期时间。 单击“我的套餐”,可以查看已购买套餐情况。
  • 操作步骤 登录ServiceStage控制台。 在“环境管理”页面,单击待操作环境名称。 在“资源配置”下左侧列表,选择“计算”资源类型下的资源名称“云容器引擎 CCE”。 单击“立即绑定”。 已创建CCE集群,在集群下拉列表选择待绑定的CCE集群,单击“确定”。 未创建CCE集群,请根据页面提示前往CCE控制台,参考前提条件创建CCE集群后再次执行绑定操作。 “Kubernetes”类型的环境,如果选择的VPC开启了IPv6且纳管了CCE集群资源时,需选择开启了IPv6开关的CCE集群资源。否则,会导致在该VPC下的开启了安全认证的微服务引擎专享版上注册的Java Chassis微服务在使用IPv6服务注册发现地址时,注册失败。 处理方法,请参考如何处理开启了安全认证的微服务引擎专享版开启IPv6后服务注册失败。
  • 操作步骤 登录ServiceStage控制台。 选择以下任意方式进入组件“访问方式”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“访问方式”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“访问方式”。 单击“添加服务”,设置如下参数,其中带“*”标志的参数为必填参数。 参数 参数说明 *服务名称 自定义服务名称,可以与组件名称保持一致。 访问方式 设置访问服务的方式,支持: 集群内访问:提供支持TCP/UDP协议的被同一集群内其他服务访问的入口。 VPC内网访问:提供支持TCP/UDP协议的可被同一VPC下的其他服务访问的入口。 公网访问:提供支持TCP/UDP协议的Internet访问入口,包含弹性公网IP方式。 VPC内网负载均衡 “访问方式”选择“VPC内网访问”时可开启。 *访问类型 “访问方式”选择“VPC内网访问”且开启“VPC内网负载均衡”后可设置。 “访问方式”选择“公网访问”后可设置。 服务亲和 “访问方式”选择“VPC内网访问”或者“公网访问”后可设置。 端口映射 设置访问服务的“协议”、“容器端口”、“访问端口”。 单击“确定”。
  • 操作步骤 登录ServiceStage控制台。 选择以下任意方式进入组件“访问方式”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“访问方式”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“访问方式”。 单击“设置域名”: 输入已获取的“应用域名”。 (可选)开启“HTTPS”。 单击“使用已有”选择已经创建的证书。 单击“新创建”创建新的服务器证书。创建服务器证书请参考创建证书。
  • 设置弹性伸缩-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策略
  • 设置手动伸缩策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“伸缩”页面的“手动伸缩”区域,设置手动伸缩策略。 部署环境为Kubernetes类型的组件,请参考以下操作: 单击,修改“实例数”。 单击,实例伸缩操作即可生效。 部署环境为虚拟机类型的组件,请参考以下操作: 在“当前实例数”,单击。 选择“伸缩类型”。 单击“确定”。
  • 修改弹性伸缩-HPA策略 您可以根据实际业务需要,编辑已设置好的弹性伸缩-HPA策略,重新设置策略参数。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“伸缩”页面,选择“伸缩策略配置”页签,单击“编辑伸缩策略”,重新设置参数。 冷却时间 根据实际业务需要,修改扩容/缩容冷却时间。 实例范围 根据实际业务需要,修改最小实例数和最大实例数。 触发条件 支持通过“界面配置”、“YAML配置”两种方式修改触发条件参数。 “界面配置”方式 根据实际业务需要,修改“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。 “YAML配置”方式 使用YAML格式可以自定义指标参数配置,并支持更多指标,如pods、Object、External等。 使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。 为CCE集群安装prometheus插件,请参考prometheus。 单击“确定”,完成修改。
  • 查看弹性伸缩-HPA策略运行情况 ServiceStage支持查看已设置好的弹性伸缩-HPA策略的运行状态和运行事件。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“伸缩”页面: 选择“状态”页签,查看策略运行状态。 选择“事件”页签,查看策略运行中发生的事件。
  • 删除弹性伸缩-HPA策略 您可以根据实际业务需要,删除不再使用的弹性伸缩-HPA策略。 删除操作无法恢复,请谨慎操作。 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的。 单击“确定”,完成策略删除。
  • 后续操作 阈值规则创建完成后,您还可以按照表2中的步骤来管理阈值告警。 表2 管理阈值告警相关操作 操作 说明 修改阈值告警 当您发现当前的阈值规则设置不合理时,您可以参考如下操作对阈值规则进行修改,以便更好的满足您的业务需求。 单击阈值告警列表“操作”列的“修改”。 在“修改阈值规则”页面中根据界面提示修改阈值规则的相关参数。 单击“修改”。 删除阈值告警 随着业务的变动,当您发现当前的阈值规则已不再需要时,您可以参考如下操作删除阈值规则,以便释放更多的阈值规则资源。 删除阈值规则。 删除单个阈值:单击阈值规则列表“操作”列的“删除”。 批量删除阈值规则:选中单个或多个阈值规则前的复选框,单击页面上方的“删除”。 在弹出的对话框中单击“确定”。 搜索阈值告警 在下拉列表框中选择时间段。 在页面右上角的搜索框中输入阈值告警名称或描述的关键字。 单击,或在键盘上按“Enter”键。 也可单击“高级搜索”设置搜索条件,单击“搜索”进行查询。 查看阈值告警 在已设的连续周期内,当指标数据满足阈值条件时,系统会发送阈值告警。 在阈值告警列表中查看该告警。 查看历史告警 单击阈值规则列表“操作”列的“历史记录”,查看历史告警。 查看数据不足事件 在已设的连续周期内,当没有指标数据上报时,系统会发送数据不足事件。 可在“事件”页面查看该事件,请参考查看组件运行事件。
  • 使用场景 表1 存储项使用场景说明 项目 场景 云硬盘存储 EVS目前支持普通I/O、高I/O、超高I/O三种规格。 普通I/O:后端存储由SATA存储介质提供,适用于大容量、读写速率要求不高、事务处理较少的场景,如:开发测试、企业办公应用。 高I/O:后端存储由SAS存储介质提供,适用于性能相对较高、读写速率要求高、有实时数据存储需求的场景,如:创建文件系统、分布式文件共享。 超高I/O:后端存储SSD存储介质提供,适用于高性能、高读写速率要求、数据密集型的场景,如:NoSQL、关系型数据库、 数据仓库 (如Oracle RAC、SAP HANA)。 文件存储 文件存储适用于 媒体处理 、内容管理、大数据和分析工作负载程序等场景。 对象存储 标准存储: 适用于有大量热点文件或小文件,且需要频繁访问(平均一个月多次)并快速获取数据的业务场景。例如云应用、数据分析、内容分析、热点对象等。 低频访问存储: 适用于不频繁访问(平均一年少于12次),但需要快速获取数据的业务场景。例如静态网站托管、备份/活跃归档、作为云服务的存储资源池或者备份存储等。 主机路径挂载 将应用组件所在宿主机的文件目录挂载到应用指定的挂载点中,如应用组件需要访问/etc/hosts则可以使用HostPath映射/etc/hosts等场景。 须知: 请不要挂载在系统目录下,如“/”、“/var/run”等,会导致应用组件实例异常。建议挂载在空目录下。若目录不为空,请确保目录下无影响应用组件实例启动的文件。否则文件会被替换,导致应用组件实例启动异常。 临时路径挂载 用于临时存储,生命周期与应用组件实例相同。应用实例消亡时,EmptyDir会被删除,数据会永久丢失。 配置项挂载 将配置项中的key映射到应用中,可以用于挂载配置文件到指定应用组件目录。 密钥挂载 将应用认证信息、应用密钥等敏感信息存储在密钥中,并将密钥挂载到应用组件的指定路径中。
  • 亲和性概念阐述 在应用没有容器化之前,原先一个虚拟机上会装多个组件,进程间会有通信。 但在做容器化拆分的时候,通常直接按进程拆分容器。比如业务进程一个容器,监控日志处理或者本地数据放在另一个容器,并且有独立的生命周期。这时如果他们分布在网络中两个较远的点,请求经过多次转发,性能会很差。 亲和性可以实现就近部署,增强网络能力实现通信上的就近路由,减少网络的损耗。 反亲和性主要是出于高可靠性考虑,尽量分散实例,某个节点故障的时候,对应用的影响只是N分之一或者只是一个实例。 应用与可用区的亲和性 亲和:决定应用组件部署在特定的可用区中。 反亲和:决定应用组件不能部署在特定的可用区中。 应用与节点间的亲和性 亲和:决定应用组件部署在某些特定的主机中。 反亲和:决定应用组件不能部署在某些特定的主机中。 应用间的亲和性 决定应用组件部署在相同或不同节点中。 亲和:用户可根据业务需求进行应用组件的就近部署,应用组件间通信就近路由,减少网络消耗。如图1所示,APP1、APP2、APP3和APP4部署在相同节点上,为亲和性部署。 图1 应用间亲和 反亲和:同个应用组件的多个实例反亲和部署,减少宕机影响;互相干扰的应用反亲和部署,避免干扰。 如图2所示,APP1、APP2、APP3和APP4分别部署在不同节点上,这四个应用为反亲和性部署。 图2 应用间反亲和
共100000条