云服务器内容精选

  • 健康检查方式 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": [] }
  • 请求消息 表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个字符。 deploy_mode 否 String 环境类型。 virtualmachine:虚拟机。 container:Kubernetes。 mixed :虚拟机和Kubernetes。 description 否 String 环境描述。 最大长度为128个字符。 enterprise_project_id 否 String 企业项目ID。 vpc_id 是 String 虚拟私有云ID。 labels 否 Array of objects 标签,可使用标签管理服务通过标签过滤资源,请参考表4。 同一个环境下最多可以添加20个标签。 说明: “华东-上海一”、“华东二”区域支持设置“标签”参数。 表4 labels 参数 是否必选 参数类型 描述 key 是 String 标签名称。 标签用于标识资源,当您拥有相同类型的许多资源时,可以使用标签按各种维度(例如用途、所有者或环境)对资源进行分类。 长度为1到36个字符,只能包含数字、英文字母、下划线(_)、中划线(-)或中文。 value 是 String 标签值。 长度为2到43个字符,只能包含数字、英文字母、下划线(_)、点(.)、中划线(-)或中文。
  • 请求示例 创建名称为env-test的“虚拟机”类型环境,环境所在VPC的id为0c72428b-cd6c-4283-a560-210d3edb49f7。 { "name": "env-test", "description": "", "enterprise_project_id": "0", "vpc_id": "0c72428b-cd6c-4283-a560-210d3edb49f7", "labels": [ { "key": "aaaaa", "value": "a5" } ], "deploy_mode": "virtualmachine" }
  • 功能介绍 环境是用于组件部署和运行的计算(如云容器引擎 CCE、弹性云服务器 ECS等)、网络(如弹性负载均衡 ELB、弹性IP EIP等)和中间件(如分布式缓存 DCS、云数据库 RDS等)等基础资源的集合。ServiceStage把多种基础资源组合为一个环境,如:开发环境、测试环境、预生产环境和生产环境。按环境维度来管理资源、部署组件,可以减少具体基础资源运维管理的复杂性。 此API用于创建环境。
  • 请求示例 创建Sermant Injector插件,并为插件管理id为b4e49ad5-5142-437d-8a6b-1de66b1af0db的微服务引擎和id为02f9a523-cefe-11ee-afc1-0255ac100045的CCE集群。 { "name": "sermantInjector", "cse_id": "b4e49ad5-5142-437d-8a6b-1de66b1af0db", "cce_id": "02f9a523-cefe-11ee-afc1-0255ac100045" }