调用DeployK8sApplication接口在容器服务K8s集群或Serverless K8s集群中部署应用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求头
该接口使用公共请求头,无特殊请求头。请参见公共请求参数文档。
请求语法
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
请求参数
名称 | 类型 | 位置 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|---|
AppId | String | Query | 是 | e83acea6-****-47e1-96ae-c0e953772cdc |
应用ID,可通过调用ListApplication接口获取,详情请参见ListApplication。 |
PreStop | String | Query | 否 | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
停止前执行脚本,示例格式: 如果设置为 |
Envs | String | Query | 否 | [{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
部署环境变量,格式需要符合JSON对象数组。支持三种类型的环境变量,分别是普通环境变量,K8s ConfigMap环境变量,K8s Secret环境变量。普通环境变量格式如下所示: {"name":"x", "value": "y"}
ConfigMap环境变量配置可以将指定的ConfigMap中对应的key的值注入到容器的环境变量中,配置的格式如下所示: {
"name": "x2",
"valueFrom": {
"configMapKeyRef": {
"name": "my-config",
"key": "y2"
}
}
}
Secret环境变量配置可以将指定的Secret中对应的key的值注入到容器的环境变量中,配置的格式如下所示: {
"name": "x3",
"valueFrom": {
"secretKeyRef": {
"name": "my-secret",
"key": "y3"
}
}
}
说明 如果要取消该配置,需设置一个空JSON数组“”来表示不做配置。
|
ImageTag | String | Query | 否 | latest |
镜像Tag。 |
BatchWaitTime | Integer | Query | 否 | 0 |
Pod分批发布的最小间隔时间,详细信息请参见minReadySeconds。 |
Command | String | Query | 否 | ls |
容器启动命令。 说明 如果要取消该配置,需设置一个空字符串
"" 来表示不做配置。
|
PostStart | String | Query | 否 | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
启动后执行脚本,格式如: |
Readiness | String | Query | 否 | {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
容器业务状态检查,如果检查失败,经过K8s service的流量将不转入到该容器,格式如: |
Liveness | String | Query | 否 | {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
容器存活状态监测,格式如 |
Args | String | Query | 否 | ["args1","args2"] |
容器启动Args命令参数,格式必须符合JSON数组 |
Replicas | Integer | Query | 否 | 1 |
应用实例数,最小为0。 |
Image | String | Query | 否 | registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 |
镜像完整URL,覆盖镜像Tag参数。 |
CpuLimit | Integer | Query | 否 | 1 |
应用运行过程中,应用实例的CPU限制。 单位:核数,设置为0表示不限制。 |
MemoryLimit | Integer | Query | 否 | 0 |
应用运行过程中,应用实例的内存限制。单位:MB,设置为0表示不限制。 |
CpuRequest | Integer | Query | 否 | 0 |
应用运行过程中,应用实例需要申请的CPU配额,推荐设置。 单位:核数,设置为0表示不限制。 说明 设置该参数时,还需要设置CpuLimit参数,且需要小于等于CpuLimit的参数值。
|
MemoryRequest | Integer | Query | 否 | 0 |
应用运行过程中,应用实例需要申请的内存配额,推荐设置。单位:MB。设置为0表示不申请。 说明 设置该参数时,还需要设置MemoryLimit参数,且需要小于等于MemoryLimit的参数值。
|
NasId | String | Query | 否 | dfs23**** |
挂载的NAS的ID,必须与集群在同一个地域。它必须有可用的挂载点创建额度,或者它的挂载点已经在VPC内的交换机上。如果不填,且存在mountDescs字段,则默认将自动购买一个NAS并挂载到VPC内的交换机上。 |
MountDescs | String | Query | 否 | [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
挂载配置描述,为一个序列化的JSON。例如: |
StorageType | String | Query | 否 | Performance |
目前只支持SSD型 |
LocalVolume | String | Query | 否 | [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
宿主机文件挂载到容器内的配置。例如: |
PackageUrl | String | Query | 否 | 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 | Query | 否 | 20200720 |
部署包的版本号,WAR和FatJar类型必填。请自定义它的含义。 说明 EDAS POP API的Java或者Python SDK需要2.44.0或以上版本。
|
JDK | String | Query | 否 | Open JDK 8 |
部署包依赖的JDK版本,JDK支持版本为Open JDK 7和Open JDK 8。镜像不支持此参数。 |
WebContainer | String | Query | 否 | apache-tomcat-7.0.91 |
部署包依赖的Tomcat版本。适用于通过WAR包部署的Spring Cloud和Dubbo应用,镜像不支持此参数。 |
EdasContainerVersion | String | Query | 否 | 3.5.9 |
部署包依赖的EDAS Container版本。适用于通过WAR包部署的HSF应用,镜像不支持此参数。 |
UriEncoding | String | Query | 否 | GBK |
URI编码方式,支持ISO-8859-1、GBK、GB2312和UTF-8。 说明 应用配置不设置该参数,使用Tomcat默认值。
|
UseBodyEncoding | Boolean | Query | 否 | false |
useBodyEncodingForURI是否启用。 说明 应用配置不设置该参数,使用默认值false。
|
UpdateStrategy | String | Query | 否 | {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} |
分批发布策略
|
McpuRequest | Integer | Query | 否 | 4 |
CPU最小资源需求,单位:核数。设置为0表示不限制。 说明 设置该参数时,还需要设置CpuLimit参数,且需要小于等于CpuLimit的参数值。
|
McpuLimit | Integer | Query | 否 | 0 |
CPU能使用的最大值,单位:核数。设置为0表示不做限制。 |
VolumesStr | String | Query | 否 | test |
数据卷。 |
PackageVersionId | String | Query | 否 | 2bcc******** |
部署包版本ID。 |
ChangeOrderDesc | String | Query | 否 | 升级 |
变更记录描述。 |
RuntimeClassName | String | Query | 否 | runc |
容器运行时类型,仅适用于使用安全沙箱容器的集群。 |
DeployAcrossZones | String | Query | 否 | true |
是否将应用实例分布到多可用区。true为是,其他值为否。 |
BatchTimeout | Integer | Query | 否 | 60 |
单批发布超时时间,单位:秒。 |
EnableAhas | Boolean | Query | 否 | true |
是否接入AHAS。 |
WebContainerConfig | String | Query | 否 | {"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
Tomcat容器配置,设置为
|
JavaStartUpConfig | String | Query | 否 | {"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}} |
Java启动参数用于在Java应用启动时配置启动参数。可配置:内存配置、应用、GC策略、工具、服务注册和发现配置和自定义等配置,正确配置这些参数有助于降低垃圾回收(GC)开销,从而缩短服务器响应时间并提高吞吐量。参数格式为JSON字符串:original为配置值,startup为启动参数,系统将自动拼接所有的startup作为应用程序的Java启动参数。设置为 |
SlsConfigs | String | Query | 否 | [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
Logstore配置,设置为
|
DeployAcrossNodes | String | Query | 否 | true |
是否将应用实例分布到多个节点。true为是,其他值为否。 |
TrafficControlStrategy | String | Query | 否 | {"http":{"rules":[{"conditionType":"percent","percent":10}]}} |
灰度发布流量控制策略。 |
PvcMountDescs | String | Query | 否 | [{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
配置K8s PVC(PersistentVolumeClaim)挂载,支持将K8s PVC卷挂载到指定的容器目录。PvcMountDescs的配置参数说明如下:
|
ConfigMountDescs | String | Query | 否 | [{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] |
配置K8s ConfigMap和Secret挂载,支持将ConfigMap和Secret挂载到指定的容器目录。ConfigMountDescs的配置参数说明如下:
|
EnvFroms | String | Query | 否 | [{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
配置K8s EnvFrom类型的环境变量,将指定的ConfigMap或Secret挂载到指定目录,每个key对应目录下的一个文件,文件的内容为该key对应的value。 EnvFroms的配置参数说明如下。
|
EmptyDirs | String | Query | 否 | [{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
配置K8s emptyDir挂载,支持将emptyDir卷挂载到指定的容器目录。EmptyDirs的配置参数说明如下:
|
返回数据
名称 | 类型 | 示例值 | 描述 |
---|---|---|---|
ChangeOrderId | String | cd65b247-****-475b-ad4b-7039040d625c |
变更流程ID,可调用GetChangeOrderInfo接口获取,详情请参见GetChangeOrderInfo。 |
Code | Integer | 200 |
接口状态或POP错误码。 |
Message | String | success |
附加信息 。 |
RequestId | String | a5281053-08e4-47a5-b2ab-5c0323de***** |
请求ID。 |
示例
请求示例
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
公共请求头
{
"AppId": "e83acea6-****-47e1-96ae-c0e953772cdc"
}
正常返回示例
XML
格式
<DeployK8sApplicationResponse>
<Message>success</Message>
<RequestId>a5281053-08e4-47a5-b2ab-5c0323de*****</RequestId>
<ChangeOrderId>cd65b247-****-475b-ad4b-7039040d625c</ChangeOrderId>
<Code>200</Code>
</DeployK8sApplicationResponse>
JSON
格式
{
"DeployK8sApplicationResponse": {
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****",
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200
}
}
错误码
访问错误中心查看更多错误码。