在容器服务K8s集群或Serverless K8s集群中创建应用。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
授权信息
请求语法
POST /pop/v5/k8s/acs/create_k8s_app
请求参数
名称 | 类型 | 必填 | 描述 | 示例值 |
---|---|---|---|---|
IntranetTargetPort | integer | 否 | 内网SLB后端端口,也是应用的服务端口,范围为1~65535。 | 80 |
IntranetSlbPort | integer | 否 | 内网SLB前端端口,范围为1~65535。 | 80 |
ImageUrl | string | 否 | 镜像地址,当设置 | registry.cn-beijing.aliyuncs.com/****_test/****-cons****:1.0 |
ApplicationDescription | string | 否 | 应用描述信息。 | 生产环境应用 |
RepoId | string | 否 | 镜像的仓库ID。 | ced******** |
Replicas | integer | 否 | 应用实例数。 | 4 |
LimitCpu | integer | 否 | 应用运行过程中,应用实例的CPU限额,单位:核数。如果LimitmCpu不为空,则忽略该参数。 | 4 |
LimitMem | integer | 否 | 应用运行过程中,应用实例的内存限额,单位:MB。LimitMem取值要不小于RequestsMem。 | 2 |
RequestsCpu | integer | 否 | 应用创建时,应用实例的CPU限额,单位:核数。设置为0时表示不限制。如果RequestsmCpu,则使用RequestsmCpu,忽略该参数。 | 0 |
RequestsMem | integer | 否 | 应用创建时,应用实例的内存限额,单位:MB。设置为0时表示不限制。RequestsMem的取值不能大于LimitMem的取值。 | 0 |
Command | string | 否 | 应用启动命令。如果设置该参数,镜像在启动时,会替代镜像中的原有的启动命令。 | ls |
CommandArgs | string | 否 | 与命令组合使用,命令的参数是JsonArray字符串,格式如: | [{"argument":"-lh"}] |
AppName | string | 是 | 应用名称。必须以字母开头,支持数字、字母和短划线(-),最多支持36个字符。 | doc-test |
IntranetSlbProtocol | string | 否 | 私网SLB协议,支持TCP、HTTP和HTTPS协议。 | TCP |
IntranetSlbId | string | 否 | 私网SLB ID,不配置时,EDAS会自动为用户新购SLB。 | ae93******** |
ClusterId | string | 是 | 集群ID,可调用ListCluster接口获取,详情请参见ListCluster。 | c9cd**** |
InternetSlbId | string | 否 | 公网SLB ID,不配置时,EDAS会自动为用户新购SLB。 | a3d4******** |
InternetSlbProtocol | string | 否 | 公网SLB协议,支持TCP、HTTP和HTTPS协议。 | TCP |
InternetSlbPort | integer | 否 | 公网SLB前端端口,范围为1~65535。 | 80 |
InternetTargetPort | integer | 否 | 私网SLB后端端口,也是应用的服务端口,范围为1~65535。 | 8080 |
Envs | string | 否 | 部署环境变量,格式需要符合JSON对象数组。支持三种类型的环境变量,分别是普通环境变量,K8s ConfigMap环境变量,K8s Secret环境变量。普通环境变量格式如下所示:
ConfigMap环境变量配置可以将指定的ConfigMap中对应的key的值注入到容器的环境变量中,配置的格式如下所示:
Secret环境变量配置可以将指定的Secret中对应的key的值注入到容器的环境变量中,配置的格式如下所示:
说明
如果要取消该配置,需设置一个空JSON数组“[]”来表示不做配置。
| [{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
PreStop | string | 否 | 停止前执行脚本,示例格式: 如果设置为 | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
PostStart | string | 否 | 启动后执行脚本,格式如: 如果设置为 | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
Liveness | string | 否 | 容器存活状态监测 ,格式如 如果设置为 | {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
Readiness | string | 否 | 容器业务状态检查,如果检查失败,经过K8s Service的流量将不转入到该容器,格式如: 如果设置为 | {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
NasId | string | 否 | 挂载的NAS的ID。如果不填,且存在mountDescs字段,则默认将自动购买一个NAS并挂载到VPC内的交换机上。 | dfs23**** |
MountDescs | string | 否 | 挂载配置描述,为一个序列化的JSON。例如: | [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
StorageType | string | 否 | NAS存储类型,包括:
目前只支持Performance类型。 | Performance |
LocalVolume | string | 否 | 宿主机文件挂载到容器内的配置。例如:
| [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
Namespace | string | 否 | K8s集群的命名空间,它将决定您的应用部署在哪个K8s命名空间。默认为default。 | default |
LogicalRegionId | string | 否 | EDAS命名空间对应ID,非默认命名空间须填写。 | cn-shenzhen:beta**** |
PackageType | string | 否 | 应用包类型。可选参数值包含:FatJar、WAR和Image。 | WAR |
PackageUrl | string | 否 | 部署包地址。通过FatJar或WAR包部署的应用需要配置部署包地址。 说明
EDAS POP API的Java或者Python SDK需要2.44.0或以上版本。
| https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
PackageVersion | string | 否 | 部署包的版本号,WAR和FatJar类型必填。请自定义它的含义。 说明
EDAS POP API的Java或者Python SDK需要2.44.0或以上版本。
| 20200720 |
JDK | string | 否 | 部署的包依赖的JDK版本。可选的参数值为Open JDK 7、Open JDK 8或Custom OpenJDK。镜像部署方式不支持此参数。当使用Custom OpenJDK时,还需配置UserBaseImageUrl字段。 | Open JDK 8 |
WebContainer | string | 否 | 部署包依赖的Tomcat版本。适用于通过WAR包部署的Spring Cloud和Dubbo应用,镜像不支持此参数。 | apache-tomcat-7.0.91 |
EdasContainerVersion | string | 否 | 部署的包依赖的 说明
使用镜像部署时不支持此参数。
| 3.5.9 |
UriEncoding | string | 否 | URI编码方式,支持ISO-8859-1、GBK、GB2312和UTF-8。 说明
应用配置不设置该参数,使用Tomcat默认值。
| GBK |
UseBodyEncoding | boolean | 否 | useBodyEncodingForURI是否启用。 说明
应用配置不设置该参数,使用默认值false。
| false |
RequestsmCpu | integer | 否 | 应用创建时,应用实例的CPU限额,单位:毫核数。 | 500 |
LimitmCpu | integer | 否 | 应用运行过程中,应用实例的CPU限额。 单位:毫核数,设置为0表示不限制。 | 1000 |
RuntimeClassName | string | 否 | 容器运行时类型,仅适用于使用安全沙箱容器的集群。 | runc |
DeployAcrossZones | string | 否 | 是否将应用实例分布到多可用区。 | true |
Timeout | integer | 否 | 变更流程超时时间,单位:秒。取值范围为1~1800秒,不填默认为1800秒。 | 60 |
EnableAhas | boolean | 否 | 是否接入AHAS:
| true |
WebContainerConfig | string | 否 | Tomcat容器配置,设置为""或"{}"表示删除配置:
| {"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
JavaStartUpConfig | string | 否 | Java启动参数用于在Java应用启动时配置启动参数。可配置:内存配置、应用、GC策略、工具、服务注册和发现配置和自定义等配置,正确配置这些参数有助于降低垃圾回收(GC)开销,从而缩短服务器响应时间并提高吞吐量。参数格式为JSON字符串:original为配置值,startup为启动参数,系统将自动拼接所有的startup作为应用程序的Java启动参数。设置为
| {"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"},"CustomParams":{"original":"-Dcustom.property.sample=false","startup":"-Dcustom.property.sample=false"}} |
SlsConfigs | string | 否 | Logstore配置,设置为
| [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
IsMultilingualApp | boolean | 否 | 是否为多语言应用。 | true |
DeployAcrossNodes | string | 否 | 是否将应用实例分布到多个节点。 | true |
PvcMountDescs | string | 否 | 配置K8s PVC(PersistentVolumeClaim)挂载,支持将K8s PVC卷挂载到指定的容器目录。PvcMountDescs的配置参数说明如下:
| [{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
ConfigMountDescs | string | 否 | 配置K8s ConfigMap和Secret挂载,支持将ConfigMap和Secret挂载到指定的容器目录。ConfigMountDescs的配置参数说明如下:
| [{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] |
CsClusterId | string | 否 | 只有在用户使用一个从未导入的集群来创建应用时,才需要指定csClusterId。 | abcdefg |
EnableAsm | boolean | 否 | 只有在用户使用一个从未导入的集群来创建应用,同时开启ASM时,才需要设置这个值为true。 | false |
EnvFroms | string | 否 | 配置K8s EnvFrom类型的环境变量,将指定的ConfigMap或Secret挂载到指定目录,每个key对应目录下的一个文件,文件的内容为该key对应的value。 EnvFroms的配置参数说明如下:
| [{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
EmptyDirs | string | 否 | 配置K8s emptyDir挂载,支持将emptyDir卷挂载到指定的容器目录。EmptyDirs的配置参数说明如下:
| [{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
BuildPackId | string | 否 | 配置 | -1 |
CustomAffinity | string | 否 | 自定义关联。 | demo |
CustomTolerations | string | 否 | 自定义公差。 | demo |
ResourceGroupId | string | 否 | 资源组ID。 | 461 |
Annotations | string | 否 | 应用Pod注解。 | {"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
Labels | string | 否 | 应用Pod标签。 | {"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
EnableEmptyPushReject | boolean | 否 | 是否开启推空保护:
| false |
EnableLosslessRule | boolean | 否 | 是否启用无损上线规则:
| true |
LosslessRuleWarmupTime | integer | 否 | 服务预热时长,单位:秒。取值范围为0~86400秒。 | 120 |
LosslessRuleDelayTime | integer | 否 | 服务延迟注册时长,单位:秒。取值范围为0~86400秒。 | 0 |
LosslessRuleFuncType | integer | 否 | 服务预热曲线。取值范围0~20。默认为2(适合于一般预热场景),表示在预热周期内服务提供者的流量接收曲线形状呈2次曲线形状。 | 2 |
LosslessRuleAligned | boolean | 否 | 是否启用无损滚动发布模式配置通过就绪检查前完成服务注册:
| false |
LosslessRuleRelated | boolean | 否 | 是否启用无损滚动发布模式配置通过就绪检查前完成服务预热:
| false |
ServiceConfigs | string | 否 | K8s服务Service配置。 | [{"name": "test-svc-create","serviceType":"ClusterIP","portMappings":[{"servicePort": {"targetPort":8080,"port":80,"protocol":"TCP"}}]}] |
AppTemplateName | string | 否 | 创建应用使用的应用模版名称,若创建应用时指定应用模版,则将优先使用应用模版和AppConfig参数确定应用配置,忽略其他配置。 | app-template001 |
AppConfig | string | 否 | 使用应用模版时的应用配置,JSON格式字符串。 | {} |
LimitEphemeralStorage | integer | 否 | 临时存储资源需求上限,单位:GB。设置0表示不限制。 | 4 |
RequestsEphemeralStorage | integer | 否 | 临时存储最小资源需求,单位:GB。设置0表示不限制。 | 2 |
SecretName | string | 否 | 用户指定的镜像拉取凭证名,需要自行创建相关Secret配置。 | edas-app-01-image-secret |
ContainerRegistryId | string | 否 | 构建镜像仓库使用的仓库ID,留空表示使用EDAS提供的默认仓库。当前只支持EDAS提供的默认仓库。 | 留空 |
WorkloadType | string | 否 | 创建应用时Workload的类型,目前仅支持Deployment类型。 | Deployment |
Sidecars | string | 否 | 为应用Pod设置Sidecar容器。支持设置容器配置的格式YAML,其值为Sidecar容器YAML配置base64编码后的值。 | [{"yamlEncoded":"Y29tbWFuZDoKICAtIHRhaWwKICAtICctZicKICAtIC9kZXYvbnVsbAppbWFnZTogJ2J1c3lib3g6bGF0ZXN0JwpuYW1lOiBidXN5Ym94Cg=="}] |
InitContainers | string | 否 | 为应用Pod设置初始化容器。支持设置容器配置的格式YAML,其值为Init容器YAML配置base64编码后的值。 | [ { "yamlEncoded": "Y29tbWFuZDoKICAtIHNsZWVwCiAgLSAnNjAnCmltYWdlOiAnYnVzeWJveDpsYXRlc3QnCm5hbWU6IGluaXQtYnVzeWJveAo=" } ] |
UserBaseImageUrl | string | 否 | 使用自定义JDK运行时,需要配置基础镜像地址。该地址需要可公开访问,EDAS服务端会拉取该镜像,用于构建应用镜像。 | openjdk:8u302 |
TerminateGracePeriod | integer | 否 | 设置应用优雅停止超时时间。单位:秒。 | 120 |
ImagePlatforms | string | 否 | 镜像目标平台架构,当使用war、jar部署时有效,输入样例:
| |
Startup | string | 否 | 启动探针可以用于对慢启动容器进行存活性检测,避免它们在启动运行之前就被杀掉,格式如:{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}。 如果设置为""或者{}表示删除,不设置表示忽略。 | {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
返回参数
示例
正常返回示例
JSON
格式
{
"Code": 200,
"Message": "success",
"RequestId": "b197-40ab-9155-****",
"ApplicationInfo": {
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"AppName": "test",
"Dockerize": true,
"Owner": "zp",
"EdasId": "1172****6608****",
"ClusterType": 5,
"AppId": "e83acea6-****-47e1-96ae-c0e95377****",
"UserId": "edas_test****@aliyun****.com",
"RegionId": "cn-beijing"
}
}
错误码
访问错误中心查看更多错误码。
变更历史
变更时间 | 变更内容概要 | 操作 | ||||||
---|---|---|---|---|---|---|---|---|
2023-10-10 | OpenAPI 入参发生变更 | 看变更集 | ||||||
| ||||||||
2023-06-02 | OpenAPI 入参发生变更 | 看变更集 | ||||||
| ||||||||
2023-03-27 | OpenAPI 入参发生变更 | 看变更集 | ||||||
| ||||||||
2023-03-24 | OpenAPI 入参发生变更 | 看变更集 | ||||||
|