调用DeployK8sApplication在容器服务K8s集群或Serverless K8s集群中部署应用。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

请求头

该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。

请求语法

POST /pop/v5/k8s/acs/k8s_apps HTTPS|HTTP

请求参数

名称 类型 是否必选 示例值 描述
AppId String e83acea6-****-47e1-96ae-c0e953772cdc

应用ID,可通过调用ListApplication接口获取,详情请参见ListApplication

PreStop String {\"exec\":{\"command\":[\"ls\",\"/\"]}}"

停止前执行脚本,示例格式:{"tcpSocket":{"host":"", "port":8080}}。

如果设置为“”或者{}代表删除,不设置表示忽略。

Envs String [{"name":"x","value":"y"},{"name":"x2","value":"y2"}]

部署环境变量,格式必须符合JSON对象数组

[{"name":"x","value":"y"},{"name":"x2","value":"y2"}],其中key固定为name和value。

说明 如果要取消该配置,需设置一个空JSON数组"[]"来表示不做配置。
ImageTag String latest

镜像Tag

BatchWaitTime Integer 0

Pod分批发布的最小间隔时间,详细信息请参见minReadySeconds

Command String ls

容器启动命令。

说明 如果要取消该配置,需设置一个空字符串""来表示不做配置。
PostStart String {\"exec\":{\"command\":[\"ls\",\"/\"]}}"

启动后执行脚本,格式如:{"exec":{"command":["cat","/etc/group"]}}。如果设置为“”或者{}表示删除,不设置表示忽略。

Readiness String {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}

容器业务状态检查,如果检查失败,经过K8s service的流量将不转入到该容器,格式如:{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}。如果设置为“”或者{}表示删除,不设置表示忽略。

Liveness String {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}}

容器存活状态监测,格式如{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}}。如果设置为“”或者{}表示删除,不设置表示忽略。

Args String ["args1","args2"]

容器启动Args命令参数,格式必须符合JSON数组["参数1","参数2"],其中key固定为字符串,清空需设置为空JSON数组"[]"。

Replicas Integer 1

应用实例数,最小为0。

Image String registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1

镜像完整URL,覆盖镜像Tag参数。

CpuLimit Integer 1

应用运行过程中,应用实例的CPU限制。 单位:核数,设置为0表示不限制。

MemoryLimit Integer 0

应用运行过程中,应用实例的内存限制。单位:MB,设置为0表示不限制。

CpuRequest Integer 0

应用运行过程中,应用实例需要申请的CPU配额,推荐设置。

单位:核数,设置为0表示不限制。

说明 设置该参数时,还需要设置CpuLimit参数,且需要小于等于CpuLimit的参数值。
MemoryRequest Integer 0

应用运行过程中,应用实例需要申请的内存配额,推荐设置。单位:MB。设置为0表示不申请。

说明 设置该参数时,还需要设置MemoryLimit参数,且需要小于等于MemoryLimit的参数值。
NasId String dfs23****

挂载的NAS的ID,必须与集群在同一个地域。它必须有可用的挂载点创建额度,或者它的挂载点已经在VPC内的交换机上。如果不填,且存在mountDescs字段,则默认将自动购买一个NAS并挂载到VPC内的交换机上。

MountDescs String [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}]

挂载配置描述,为一个序列化的JSON。例如:[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}]。其中,nasPath是指文件储存路径;mountPath是指挂载到容器内的路径。

StorageType String Performance

目前只支持SSD型

LocalVolume String [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}]

宿主机文件挂载到容器内的配置。例如:[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}]。其中,nodePath为宿主机路径;mountPath为容器内的路径;type为挂载类型。

PackageUrl String https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar

部署包地址。通过FatJar或WAR包部署的应用需要配置部署包地址。

说明 EDAS POP API的Java或者Python SDK需要2.44.0或以上版本。
PackageVersion String 20200720

部署包的版本号,WAR和FatJar类型必填。请自定义它的含义。

说明 EDAS POP API的Java或者Python SDK需要2.44.0或以上版本。
JDK String Open JDK 8

部署包依赖的JDK版本,JDK支持版本为Open JDK 7和Open JDK 8。镜像不支持此参数。

WebContainer String apache-tomcat-7.0.91

部署包依赖的Tomcat版本。适用于通过WAR包部署的Spring Cloud和Dubbo应用,镜像不支持此参数。

EdasContainerVersion String 3.5.9

部署包依赖的EDAS Container版本。适用于通过WAR包部署的HSF应用,镜像不支持此参数。

UriEncoding String GBK

URI编码方式,支持ISO-8859-1、GBK、GB2312和UTF-8。

说明 应用配置不设置该参数,使用Tomcat默认值。
UseBodyEncoding Boolean false

useBodyEncodingForURI是否启用。

说明 应用配置不设置该参数,使用默认值false。
UpdateStrategy String {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}}

分批发布策略

  • 例1:灰度1台+后续分2批+自动分批+分批间隔1分钟。{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}}
  • 例2:灰度1台+后续分2批+手动分批。{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"manual"},"grayUpdate":{"gray":1}}
  • 例3:分2批+自动分批+分批间隔0分钟。{"type":"BatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":0}}
McpuRequest Integer 4

CPU最小资源需求,单位:核数。设置为0表示不限制。

说明 设置该参数时,还需要设置CpuLimit参数,且需要小于等于CpuLimit的参数值。
McpuLimit Integer 0

CPU能使用的最大值,单位:核数。设置为0表示不做限制。

VolumesStr String test

数据卷。

PackageVersionId String 2bcc********

部署包版本ID。

ChangeOrderDesc String 升级

变更记录描述。

RuntimeClassName String runc

容器运行时类型,仅适用于使用安全沙箱容器的集群。

DeployAcrossZones String true

是否将应用实例分布到多可用区。“true”为是,其他值为否。

BatchTimeout Integer 60

单批发布超时时间,单位:秒。

EnableAhas Boolean true

是否接入AHAS。

WebContainerConfig String {"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false}

Tomcat容器配置,设置为""或"{}"表示删除配置:

  • useDefaultConfig:是否使用自定义配置,若为true,则表示不使用自定义配置,若为false,则表示使用自定义配置。若不使用自定义配置,则下面的参数配置将不会生效。
  • contextInputType:选择应用的访问路径。
    • war:无需填写自定义路径,应用的访问路径是WAR包名称。
    • root:无需填写自定义路径,应用的访问路径是/。
    • custom:需要在下面的自定义路径中填写自定义的路径。
  • contextPath:自定义路径,当contextInputType类型为custom时,才需要配置此参数。
  • httpPort:端口范围为1024~65535,小于1024的端口需要Root权限才能操作。因为容器配置的是Admin权限,所以请填写大于1024的端口。如果不配置,则默认为8080。
  • maxThreads:配置连接池的连接数大小,默认大小是400。
    说明 此项配置对应用性能有很大影响,请由专业人士配置。
  • uriEncoding:Tomcat的编码格式,包括UTF-8、ISO-8859-1、GBK和GB2312。如果不设置则默认为ISO-8859-1。
  • useBodyEncoding:是否使用BodyEncoding for URL。
  • useAdvancedServerXml:是否使用高级配置自定义设置server.xml文件,当上述参数类型和具体参数无法满足您的需求时,可以选中使用高级设置,直接编辑Tomcat的Server.xml文件。
  • serverXml:高级配置中自定义设置的server.xml文本文件内容,当useAdvancedServerXml为true时生效。
JavaStartUpConfig String {"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}}

Java启动参数用于在Java应用启动时配置启动参数。可配置:内存配置、应用、GC策略、工具、服务注册和发现配置和自定义等配置,正确配置这些参数有助于降低垃圾回收(GC)开销,从而缩短服务器响应时间并提高吞吐量。参数格式为JSON字符串:original为配置值,startup为启动参数,系统将自动拼接所有的startup作为应用程序的Java启动参数。设置为""或"{}"表示删除配置。

SlsConfigs String [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}]

Logstore配置,设置为""或"{}"表示删除配置:

  • Configs:
    • type:采集类型,文件类型为file,标准输出类型为stdout。
    • Logstore:logstore名称。请确保Logstore名称在同一个集群中不重复,其命名应符合规则:
      • Logstore名称仅支持小写字母、数字、短划线(-)和下划线(_)。
      • 必须以小写字母和数字开头和结尾。
      • 名称长度为3~63个字符。若为空,则由系统自动生成。
    • LogDir:若为标准输出类型,则采集路径为stdout.log,若为文件类型,则为采集的文件路径,支持通配,采集路径应符合正则:^/(.+)/(.*)^/$。
DeployAcrossNodes String true

是否将应用实例分布到多个节点。“true”为是,其他值为否。

TrafficControlStrategy String {"http":{"rules":[{"conditionType":"percent","percent":10}]}}

灰度发布流量控制策略。

返回数据

名称 类型 示例值 描述
ChangeOrderId String cd65b247-****-475b-ad4b-7039040d625c

变更流程ID,可调用GetChangeOrderInfo接口获取,详情请参见GetChangeOrderInfo

Code Integer 200

接口状态或POP错误码

Message String success

附加信息

RequestId String a5281053-08e4-47a5-b2ab-5c0323de7b5a

请求ID

示例

请求示例

POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
公共请求头
{
"AppId": "e83acea6-****-47e1-96ae-c0e953772cdc"
}

正常返回示例

XML 格式

<RequestId>a5281053-08e4-47a5-b2ab-5c0323de7b5a</RequestId>
<Message>success</Message>
<ChangeOrderId>cd65b247-****-475b-ad4b-7039040d625c</ChangeOrderId>
<Code>200</Code>

JSON 格式

{
    "RequestId": "a5281053-08e4-47a5-b2ab-5c0323de7b5a",
    "Message": "success",
    "ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
    "Code": 200
}

错误码

访问错误中心查看更多错误码。