Deploys an application in a Container Service for Kubernetes (ACK) cluster or a serverless Kubernetes cluster.
Debugging
Request headers
This operation uses only common request headers. For more information, see the topic about common request parameters.
Request syntax
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Request parameters
Parameter | Type | Position | Required | Example | Description |
---|---|---|---|---|---|
AppId | String | Query | Yes | e83acea6-****-47e1-96ae-c0e953772cdc |
The ID of the application. You can call the ListApplication operation to query the application ID. |
PreStop | String | Query | No | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
The pre-stop script. Example: If you want to cancel this configuration, set this parameter to |
Envs | String | Query | No | [{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
The environment variables that are used to deploy the application. The value must be a JSON array. You can set this parameter to specify regular environment variables, Kubernetes ConfigMap environment variables, or Kubernetes Secret environment variables. Specify regular environment variables in the following format: {"name":"x", "value": "y"}
Specify Kubernetes ConfigMap environment variables in the following format to reference values from ConfigMaps: {
"name": "x2",
"valueFrom": {
"configMapKeyRef": {
"name": "my-config",
"key": "y2"
}
}
}
Specify Kubernetes Secret environment variables in the following format to reference values from Secrets: {
"name": "x3",
"valueFrom": {
"secretKeyRef": {
"name": "my-secret",
"key": "y3"
}
}
}
Note If you want to cancel this configuration, set this parameter to an empty JSON array,
which is in the format of "".
|
ImageTag | String | Query | No | latest |
The tag of the image. |
BatchWaitTime | Integer | Query | No | 0 |
The minimum time interval for the phased release of pods. For more information, see minReadySeconds. |
Command | String | Query | No | ls |
The command that is used to start the container. Note If you want to cancel this configuration, set this parameter to an empty string in
the format of
"" .
|
PostStart | String | Query | No | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
The post-start script. Example: |
Readiness | String | Query | No | null |
The configuration for the readiness check on the container. If the check fails, the
traffic that passes through the Kubernetes service is not transmitted to the container.
Example: |
Liveness | String | Query | No | null |
The configuration for the liveness check on the container. Example: |
Args | String | Query | No | ["args1","args2"] |
The argument array in the container start-up command. Set this parameter to a JSON
array in the format of |
Replicas | Integer | Query | No | 1 |
The number of application instances. Minimum value: 0. |
Image | String | Query | No | registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 |
The absolute URL of the image. This parameter setting overwrites the setting of the ImageTag parameter. |
CpuLimit | Integer | Query | No | 1 |
The maximum number of CPU cores allowed for each application instance when the application is running. Unit: core. A value of 0 indicates no limit. |
MemoryLimit | Integer | Query | No | 0 |
The maximum amount of memory allowed for each application instance when the application is running. Unit: MB. A value of 0 indicates no limit. |
CpuRequest | Integer | Query | No | 0 |
The number of CPU cores requested for each application instance when the application is running. We recommend that you set this parameter. Unit: core. A value of 0 indicates no limit. Note You must set this parameter together with the CpuLimit parameter. Make sure that the
value of this parameter does not exceed that of the CpuLimit parameter.
|
MemoryRequest | Integer | Query | No | 0 |
The amount of memory requested for each application instance when the application is running. We recommend that you set this parameter. Unit: MB. If you do not want to apply for a memory quota, set this parameter to 0. Note You must set this parameter together with the MemoryLimit parameter. Make sure that
the value of this parameter does not exceed that of the MemoryLimit parameter.
|
NasId | String | Query | No | dfs23**** |
The ID of the Apsara File Storage NAS file system mounted to the container where the application is running. The NAS file system must be in the same region as the cluster. The NAS file system must have an available mount target, or have a mount target on the vSwitch in the virtual private cloud (VPC) where the application is located. If you do not specify this parameter, but specify the MountDescs parameter, a NAS file system is automatically purchased and mounted to the vSwitch in the VPC. |
MountDescs | String | Query | No | [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
The description of the NAS mounting configuration. Set this parameter to a serialized
JSON string. Example: |
StorageType | String | Query | No | Performance |
The type of the storage. Only SSD is supported. |
LocalVolume | String | Query | No | [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
The configuration for mounting host files to the container where the application is
running. Example: |
PackageUrl | String | Query | No | https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
The URL of the deployment package. This parameter is required if you use a FatJar or WAR package to deploy the application. Note The version of Enterprise Distributed Application Service (EDAS) SDK for Java or Python
must be V2.44.0 or later.
|
PackageVersion | String | Query | No | 20200720 |
The version of the deployment package. This parameter is required if you use a FatJar or WAR package to deploy the application. You must specify a version. Note The version of EDAS SDK for Java or Python must be V2.44.0 or later.
|
JDK | String | Query | No | Open JDK 8 |
The version of the Java Development Kit (JDK) on which the deployment package of the application depends. Open JDK 7 and Open JDK 8 are supported. This parameter is unavailable if you deploy applications by using images. |
WebContainer | String | Query | No | apache-tomcat-7.0.91 |
The version of the Tomcat container on which the deployment package of the application depends. This parameter is applicable to Spring Cloud and Dubbo applications that you deploy by using WAR packages. This parameter is unavailable if you deploy applications by using images. |
EdasContainerVersion | String | Query | No | 3.5.9 |
The version of EDAS Container on which the deployment package of the application depends. This parameter is applicable to High-Speed Service Framework (HSF) applications that you deploy by using WAR packages. This parameter is unavailable if you deploy applications by using images. |
UriEncoding | String | Query | No | GBK |
The uniform resource identifier (URI) encoding scheme. Valid values: ISO-8859-1, GBK, GB2312, and UTF-8. Note If you do not specify this parameter in the application configurations, the default
URI encoding scheme in the Tomcat container is applied.
|
UseBodyEncoding | Boolean | Query | No | false |
Specifies whether to use the encoding scheme specified in the request body for URI query parameters. Note If you do not specify this parameter in the application configurations, the default
value false is applied.
|
UpdateStrategy | String | Query | No | null |
The phased release policy.
|
McpuRequest | Integer | Query | No | 4 |
The minimum number of CPU cores required. Unit: core. A value of 0 indicates no limit. Note You must set this parameter together with the CpuLimit parameter. Make sure that the
value of this parameter does not exceed that of the CpuLimit parameter.
|
McpuLimit | Integer | Query | No | 0 |
The maximum number of CPU cores allowed. Unit: core. A value of 0 indicates no limit. |
VolumesStr | String | Query | No | test |
The data volume. |
PackageVersionId | String | Query | No | 2bcc******** |
The version ID of the deployment package. |
ChangeOrderDesc | String | Query | No | Upgrade |
The description of the change process. |
RuntimeClassName | String | Query | No | runc |
The type of the container runtime. This parameter is applicable only to clusters that use sandboxed containers. |
DeployAcrossZones | String | Query | No | true |
Specifies whether to distribute application instances to multiple zones. A value of true indicates yes, whereas other values indicate no. |
BatchTimeout | Integer | Query | No | 60 |
The timeout period for an at-a-time release. Unit: seconds. |
EnableAhas | Boolean | Query | No | true |
Specifies whether to enable access to Application High Availability Service (AHAS). |
WebContainerConfig | String | Query | No | null |
The Tomcat container configuration. If you want to cancel this configuration, set
this parameter to
|
JavaStartUpConfig | String | Query | No | null |
The configuration of Java startup parameters for a Java application. These startup
parameters involve the memory, application, garbage collection (GC) policy, tools,
service registration and discovery, and custom configurations. Proper parameter settings
help reduce the GC overhead, shorten the server response time, and improve the throughput.
Set this parameter to a JSON string. In the example, original indicates the configuration
value, and startup indicates a startup parameter. The system automatically concatenates
all startup values as the settings of Java startup parameters for the application.
If you want to cancel this configuration, set this parameter to |
SlsConfigs | String | Query | No | [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
The Logstore configuration. If you want to cancel this configuration, set this parameter
to
|
DeployAcrossNodes | String | Query | No | true |
Specifies whether to distribute application instances to multiple nodes. A value of true indicates yes, whereas other values indicate no. |
TrafficControlStrategy | String | Query | No | null |
The traffic adjustment policy for a canary release. |
PvcMountDescs | String | Query | No | [{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
The configuration for mounting a Kubernetes PersistentVolumeClaim (PVC) volume to a specified directory in an elastic container instance. The following parameters are included in the configuration:
|
ConfigMountDescs | String | Query | No | [{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] |
The configuration for mounting a Kubernetes ConfigMap or Secret to a specified directory in an elastic container instance. The following parameters are included in the configuration:
|
EnvFroms | String | Query | No | [{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
The Kubernetes environment variables that are configured in EnvFrom mode. A specified ConfigMap or Secret is mounted to a specified directory. Each key corresponds to a file in the directory, and the content of the file is the value that corresponds to the key. This parameter contains the following parameters:
|
EmptyDirs | String | Query | No | [{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
The configuration for mounting a Kubernetes emptyDir volume to a specified directory in an elastic container instance. The following parameters are included in the configuration:
|
Response parameters
Parameter | Type | Example | Description |
---|---|---|---|
ChangeOrderId | String | cd65b247-****-475b-ad4b-7039040d625c |
The ID of the change process. You can call the GetChangeOrderInfo operation to query the change process ID. |
Code | Integer | 200 |
The HTTP status code. |
Message | String | success |
The returned message that indicates whether the call is successful. |
RequestId | String | a5281053-08e4-47a5-b2ab-5c0323de***** |
The ID of the request. |
Examples
Sample requests
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Common request headers
{
"AppId": "e83acea6-****-47e1-96ae-c0e953772cdc"
}
Sample success responses
XML
format
<DeployK8sApplicationResponse>
<Message>success</Message>
<RequestId>a5281053-08e4-47a5-b2ab-5c0323de*****</RequestId>
<ChangeOrderId>cd65b247-****-475b-ad4b-7039040d625c</ChangeOrderId>
<Code>200</Code>
</DeployK8sApplicationResponse>
JSON
format
{
"DeployK8sApplicationResponse": {
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****",
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200
}
}
Error codes
For a list of error codes, visit the API Error Center.