云服务器内容精选

  • 前提条件 只能在应用下新增组件,需要先创建应用,请参考创建应用。 组件需要部署在指定环境下,需要先创建Kubernetes类型环境并纳管资源,请参考环境管理。 需要根据组织管理组件构建生成的镜像,需要先创建组织,请参考创建组织。 需要根据命名空间隔离构建数据和组件实例,需要先创建命名空间,请参考创建命名空间。 如果您基于“源码仓库”创建组件,那么您首先需要创建仓库授权,请参考创建仓库授权。 如果您基于软件包创建组件,那么您首先需要将软件包上传至CodeArts软件发布库、SWR软件仓库或者OBS对象存储中。 将软件包上传至CodeArts软件发布库,请参考上传软件包。 将软件包上传至SWR软件仓库,请参考上传软件包。 将软件包上传至OBS对象存储中,请参考流式上传(PUT上传)。 如果组件来源为软件包且需要使用例如JFrog(制品仓库)作为软件包存储仓库,支持自定义HTTP/HTTPS协议的文件地址下载。您需要提前将软件包上传至对应的自定义文件地址下。 如果上传软件包失败,请参考如何解决上传软件包失败的问题?。 如果您基于镜像包创建组件,请参考组件来源说明准备镜像。 如果您需要基于组件草稿创建组件,请参考本章节保存组件草稿。
  • 背景信息 在虚拟机环境下,组件实例表现为组件在虚拟机中的运行进程;在Kubernetes环境下,组件实例即Pod,是CCE部署应用或服务的最小基本单位。 虚拟机环境 创建并部署组件时,输入的“组件名称”长度不超过54个字符,则组件实例名称长度不超过61个字符。实例名称命名格式为: {组件名称全部字符}-{所属环境名称全部或部分字符}_{系统生成的5位随机字符串} 创建并部署组件时,输入的“组件名称”长度超过54个字符,则组件实例名称长度为60个字符。实例名称命名格式为: {组件名称的前54个字符}_{系统生成的5位随机字符串} Kubernetes环境 创建并部署组件时,“工作负载类型”选择“有状态”且“工作负载名称”自定义,则组件实例名称长度不超过52个字符。 创建并部署组件时,“工作负载类型”选择“无状态”且“工作负载名称”自定义,则组件实例名称长度不超过63个字符。 创建并部署组件时,“工作负载名称”默认由系统自动生成,则组件实例名称长度不超过52个字符。 虚拟机环境下部署组件的实例数量,即部署组件时所选择的虚拟机数量;Kubernetes环境下部署组件的实例数量,即部署组件时所设置的实例数,也就是Pod的数量。
  • 管理组件实例 登录ServiceStage控制台。 选择以下任意方式进入组件“实例列表”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称。 在“组件管理”页面,单击待操作组件名称。 在“实例列表”页面,您可执行如下表所示操作。 操作名称 操作说明 重启单个实例 对于部署环境为Kubernetes类型的组件,如果某个实例运行异常,可以通过删除该实例来进行实例重启。 选择待删除实例,单击“操作”列的“删除”。 在弹出对话框,单击“确定”。 查看实例运行监控 通过查看实例运行监控信息,可以了解单个实例运行中的CPU、内存利用率。 单击实例列表待操作实例名称前的。 选择“监控”页签,查看该实例运行监控信息。 查看实例运行事件 ServiceStage支持查看指定实例运行过程中发生的事件详情。 单击实例列表待操作实例名称前的。 选择“事件”页签,查看该实例运行过程中发生的事件详情。 查看实例运行容器 对于部署环境为Kubernetes类型的组件,ServiceStage支持查看指定实例运行容器信息,包括容器名称、运行状态、挂载镜像等。 单击实例列表待操作实例名称前的。 选择“容器”页签,查看该实例运行容器信息。
  • 前提条件 只能在应用下新增组件,需要先创建应用,请参考创建应用。 组件需要部署在指定环境下,需要先创建Kubernetes类型环境并纳管资源,请参考环境管理。 需要根据组织管理组件构建生成的镜像,需要先创建组织,请参考创建组织。 需要根据命名空间隔离构建数据和组件实例,需要先创建命名空间,请参考创建命名空间。 如果您基于“源码仓库”创建组件,那么您首先需要创建仓库授权,请参考创建仓库授权。 如果您基于软件包创建组件,那么您首先需要将软件包上传至CodeArts软件发布库、SWR软件仓库或者OBS对象存储中。 将软件包上传至CodeArts软件发布库,请参考上传软件包。 将软件包上传至SWR软件仓库,请参考上传软件包。 将软件包上传至OBS对象存储中,请参考流式上传(PUT上传)。 如果组件来源为软件包且需要使用例如JFrog(制品仓库)作为软件包存储仓库,支持自定义HTTP/HTTPS协议的文件地址下载。您需要提前将软件包上传至对应的自定义文件地址下。 如果上传软件包失败,请参考如何解决上传软件包失败的问题?。 如果您基于镜像包创建组件,请参考组件来源说明准备镜像。 如果您需要基于组件草稿创建组件,请参考本章节保存组件草稿。
  • 健康检查方式 HTTP请求检查 HTTP请求方式针对的是提供HTTP/HTTPS服务的应用组件,集群周期性地对该应用发起HTTP/HTTPS GET请求,如果HTTP/HTTPS response返回码属于200~399范围,则证明探测成功,否则探测失败。使用HTTP请求探测必须指定应用监听的端口和HTTP/HTTPS的请求路径。 例如:提供HTTP服务的应用组件,端口为80,HTTP检查路径为/health-check,主机地址为containerIP,那么集群会周期性地对应用发起如下请求: GET http://containerIP:80/health-check HTTP请求检查中的主机地址,如果不填写,默认为实例IP。 TCP端口检查 对于提供TCP通信服务的应用,集群周期性地对该应用建立TCP连接。如果连接成功,则证明探测成功,否则探测失败。选择TCP端口探测方式,必须指定应用监听的端口。比如有一个nginx应用组件,它的服务端口是80,对该应用组件配置了TCP端口探测,指定探测端口为80,那么集群会周期性地对该应用组件的80端口发起TCP连接,如果连接成功则证明检查成功,否则检查失败。 执行命令检查 命令检查方式要求用户指定一个应用组件内的可执行命令,集群会周期性地在应用组件内执行该命令,如果命令的返回结果是0则检查成功,否则检查失败。 对于上面提到的TCP端口检查和HTTP请求检查,都可以通过执行命令检查的方式来替代: 对于TCP端口探测,可以使用程序来对应用组件的端口进行connect,如果connect成功,脚本返回0,否则返回-1。 对于HTTP请求探测,可以使用脚本来对应用组件进行wget: wget http://127.0.0.1:80/health-check 并检查response的返回码,如果返回码在200~399的范围,脚本返回0,否则返回-1。 必须把要执行的程序放在应用组件的镜像里面,否则会因找不到程序而执行失败。 如果执行的命令是一个shell脚本,由于集群在执行应用组件里的程序时,不在终端环境下,因此不能直接指定脚本为执行命令,需要加上脚本解释器。比如脚本是/data/scripts/health_check.sh,那么使用执行命令检查时,指定的程序应该是sh /data/scripts/health_check.sh。究其原因是集群在执行应用组件里的程序时,不在终端环境下。
  • 修改弹性伸缩-HPA策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“伸缩”页面,选择“伸缩策略配置”页签,单击“编辑伸缩策略”,重新设置参数。 实例范围 根据实际业务需要,修改最小实例数和最大实例数。 伸缩配置 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。 自定义:可以自定义稳定窗口、步长、优先级等策略实现更灵活的配置,未配置的参数将采用K8s社区推荐的默认值。 触发条件 支持通过“界面配置”、“YAML配置”两种方式修改触发条件参数。 “界面配置”方式 根据实际业务需要,修改“CPU利用率”、“内存利用率”指标的“期望值”和“阈值”(缩容阈值、扩容阈值)。 “YAML配置”方式 使用YAML格式可以自定义指标参数配置,并支持更多指标,如pods、Object、External等。 使用“YAML配置”方式配置自定义指标参数,CCE集群需要已安装prometheus插件。 为CCE集群安装prometheus插件,请参考prometheus。 单击“确定”,完成修改。
  • 设置弹性伸缩-HPA策略 登录ServiceStage控制台。 选择以下任意方式进入组件“伸缩”页面: 在“应用管理”页面,单击组件所属应用名称,在“组件列表”单击待操作组件名称,在左侧导航栏单击“伸缩”。 在“组件管理”页面,单击待操作组件名称,在左侧导航栏单击“伸缩”。 使用使用导入CCE工作负载创建组件方法创建的组件,如果未启用组件: 在弹出的对话框单击“确认”。 在“启用组件”页面,单击“启用”,等待组件完成重启。 在“伸缩”页面,单击“弹性伸缩 - HPA”右侧的,开启伸缩策略配置,进入“伸缩策略配置”页签。 CCE集群未安装metrics-server插件,请执行4。 CCE集群已安装metrics-server插件,请执行6。 单击“立即前往配置”,在云容器引擎控制台完成metrics-server插件安装。 为CCE集群安装metrics-server插件,请参考安装Metrics Server。 等待插件安装完成后,返回“伸缩策略配置”页面,刷新页面。 设置伸缩策略参数。 策略名称 输入策略名称。伸缩策略设置完成后,策略名称不支持修改。 长度为4到63个字符,可以包含英文小写字母、数字或中划线(-),必须以英文小写字母开头、以英文小写字母或数字结尾。 实例范围 根据实际业务需要,输入最小实例数和最大实例数。其中,最小实例数取值范围为1到299之间的整数;最大实例数取值范围为1到1500之间的整数,且必须大于最小实例数取值。 策略成功触发后,工作负载实例将在此实例范围内伸缩。 伸缩配置 系统默认:采用K8s社区推荐的默认行为进行负载伸缩。 自定义:可以自定义稳定窗口、步长、优先级等策略实现更灵活的配置,未配置的参数将采用K8s社区推荐的默认值。 触发条件 支持通过“界面配置”、“YAML配置”两种方式设置触发条件参数。 以“CPU利用率”、“内存利用率”为指标设置触发条件,需要已设置组件的“CPU配额”、“内存配额”。如果没有设置,请单击“去修改申请配额”,参考5设置组件“资源”参数后升级组件。 “界面配置”方式 根据实际业务需要,设置“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。 单击“确定”,完成策略设置。
  • 安装Metrics Server 登录ServiceStage控制台。 选择“环境管理”,进入“环境管理”页面。 单击待操作环境名称,进入环境“概览”页面。 选择“插件管理”。 选择“插件”下的“Metrics Server”插件。 非高可用环境,单击“立即安装”,然后执行6。 高可用环境,请先选择待安装Metrics Server插件的CCE集群所在的可用区,然后执行6。 参考下表设置安装参数。 参数 参数说明 选择CCE集群 默认选择当前环境下已纳管的CCE集群。 机器类型 CCE集群的CPU架构。 x86_64 aarch64 单击“确定”。 Metrics Server插件安装成功后,会创建如下表所示内容。 名称 说明 工作负载 在6选择的CCE集群的kube-system命名空间下,创建名为metrics-server的工作负载。 服务 在6选择的CCE集群的kube-system命名空间下,创建名为metrics-server的服务(Service)。 Metrics Server插件安装失败,请参考安装Metrics Server重试。
  • 响应消息 表5 响应参数 参数 参数类型 描述 id String 应用ID。 name String 应用名称。 description String 应用描述。 creator String 应用创建人。 project_id String 项目ID。 enterprise_project_id String 企业项目ID。 create_time Integer 应用创建时间。 update_time Integer 应用修改时间。 labels Array of objects 标签,可使用标签管理服务通过标签过滤资源,请参考表6。 表6 labels 参数 参数类型 描述 key String 标签名称。 value String 标签值。
  • 请求示例 创建名称为app-xpmtii的应用,描述信息输入test,标签键值对设置为"key":"var"。 { "name": "app-xpmtii", "description": "test", "labels": [ { "key": "key", "value": "var" } ] }
  • 响应示例 { "id": "dae29983-c1e9-437d-a6be-5256076fe605", "name": "app-xpmtii", "description": "test", "project_id": "063a3158b1a34710b36ad208b9497d00", "enterprise_project_id": "0", "creator": "ss-test", "create_time": 1679468852302, "update_time": 1679468852302, "labels": [ { "key": "key", "value": "var" } ] }
  • 请求消息 表2 请求Header参数 参数 是否必选 参数类型 描述 Content-Type 是 String 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 X-Auth-Token 是 String 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。 表3 请求Body参数 参数 是否必选 参数类型 描述 name 是 String 应用名称。 由英文字母、数字、中划线(-)或下划线(_)组成,并以英文字母开头,英文字母或者数字结尾,长度为2~64个字符。 description 否 String 应用描述。 最大长度为128个字符。 enterprise_project_id 否 String 企业项目ID。 labels 否 Array of objects 标签,可使用标签管理服务通过标签过滤资源,请参考表4。 同一个应用下最多可以添加20个标签。 说明: “华东-上海一”、“华东二”区域支持设置“标签”参数。 表4 labels 参数 是否必选 参数类型 描述 key 是 String 标签名称。 标签用于标识资源,当您拥有相同类型的许多资源时,可以使用标签按各种维度(例如用途、所有者或环境)对资源进行分类。 长度为1到36个字符,只能包含数字、英文字母、下划线(_)、中划线(-)或中文。 value 是 String 标签值。 长度为2到43个字符,只能包含数字、英文字母、下划线(_)、点(.)、中划线(-)或中文。
  • 请求示例 场景一:CCE容器环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为fd92bfab-73b3-11ee-90f0-0255ac1001b3的云容器引擎。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17105", "environment_id": "b489f7b4-2539-45a1-ba71-4728961434ca", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "container" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "fd92bfab-73b3-11ee-90f0-0255ac1001b3", "type": "cce", } ], "replica": 1, "limit_cpu": 0.25, "limit_memory": 0.5, "request_cpu": 0.25, "request_memory": 0.5 } 场景二:E CS 虚拟机环境下创建组件 创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为67835bb3-1235-4cc9-be71-becbb2b4ca0d的弹性云服务器。 { "name": "mycomponent", "description": "", "labels": [ { "key": "com-key", "value": "com-value" } ], "version": "2023.1102.17540", "environment_id": "9a075df5-104f-4e21-9dbf-ffc3572effdf", "runtime_stack": { "name": "OpenJDK8", "version": "1.2.0", "type": "Java", "deploy_mode": "virtualmachine" }, "source": { "kind": "package", "url": "obs://bucket0001/weather-1.0.0.jar", "version": "", "storage": "obs" }, "tomcat_opts": { "server_xml": "" }, "refer_resources": [ { "id": "23598aa9-7a6b-43c7-a53a-39ca5e7290fb", "type": "ecs" } ], "replica": 1, "external_accesses": [ { "protocol": "http", "address": "192.168.0.169", "forward_port": 80 } ] }
  • 响应消息 表5 响应参数 参数 参数类型 描述 id String 环境ID。 name String 环境名称。 description String 环境描述。 project_id String 项目ID。 enterprise_project_id String 企业项目ID。 deploy_mode String 环境类型。 vpc_id String 虚拟私有云ID。 creator String 环境创建人。 create_time Integer 环境创建时间。 update_time Integer 环境修改时间。 labels Array of objects 标签,可使用标签管理服务通过标签过滤查询资源信息,请参考表6。 表6 labels 参数 参数类型 描述 key String 标签名称。 value String 标签值。
  • 响应示例 { "id": "c93a5313-d141-4b9f-97ce-b4ce2b3988bd", "name": "test", "description": "", "project_id": "13ae26238d724e54947af3e0fcbef9c3", "enterprise_project_id": "0", "vpc_id": "0c72428b-cd6c-4283-a560-210d3edb49f7", "creator": "ss-test", "create_time": 1681384236023, "update_time": 1681384236023, "deploy_mode": "virtualmachine", "labels": [] }