Despliega una aplicación en un clúster de Container Service for Kubernetes (ACK) o en un clúster serverless de Kubernetes.
Depuración
Encabezados de solicitud
Esta operación utiliza únicamente encabezados de solicitud comunes. Para obtener más información, consulte el tema sobre parámetros de solicitud comunes.
Sintaxis de solicitud
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Parámetros de solicitud
| Parámetro | Tipo | Posición | Obligatorio | Ejemplo | Descripción |
| AppId | String | Query | Sí | e83acea6-****-47e1-96ae-c0e953772cdc | ID de la aplicación. Puede llamar a la operación ListApplication para consultar el ID de la aplicación. |
| PreStop | String | Query | No | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" | Script previo a la detención. Ejemplo: Para cancele esta configuración, establezca este parámetro en |
| 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"}}}] | Variables de entorno utilizadas para desplegar la aplicación. El valor debe ser un arreglo JSON. Puede establecer este parámetro para especificar variables de entorno regulares, variables de entorno de ConfigMap de Kubernetes o variables de entorno de Secret de Kubernetes. Especifique las variables de entorno regulares con el siguiente formato: {"name":"x", "value": "y"}
Especifique las variables de entorno de ConfigMap de Kubernetes con el siguiente formato para hacer referencia a valores de ConfigMaps: {
"name": "x2",
"valueFrom": {
"configMapKeyRef": {
"name": "my-config",
"key": "y2"
}
}
}
Especifique las variables de entorno de Secret de Kubernetes con el siguiente formato para hacer referencia a valores de Secrets: {
"name": "x3",
"valueFrom": {
"secretKeyRef": {
"name": "my-secret",
"key": "y3"
}
}
}
Nota Para cancele esta configuración, establezca este parámetro en un arreglo JSON vacío, cuyo formato es "". |
| ImageTag | String | Query | No | latest | Etiqueta de la imagen. |
| BatchWaitTime | Integer | Query | No | 0 | Intervalo de tiempo mínimo para el despliegue por fases de pods. Para obtener más información, consulte minReadySeconds. |
| Command | String | Query | No | ls | Comando utilizado para iniciar el contenedor. Nota Para cancele esta configuración, establezca este parámetro en una cadena vacía con el formato "". |
| PostStart | String | Query | No | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" | Script posterior al inicio. Ejemplo: |
| Readiness | String | Query | No | null | Configuración de la comprobación de preparación del contenedor. Si la comprobación falla, el tráfico que pasa por el servicio de Kubernetes no se transmite al contenedor. Ejemplo: |
| Liveness | String | Query | No | null | Configuración de la comprobación de actividad del contenedor. Ejemplo: |
| Args | String | Query | No | ["args1","args2"] | Arreglo de argumentos en el comando de inicio del contenedor. Establezca este parámetro como un arreglo JSON con el formato |
| Replicas | Integer | Query | No | 1 | Número de instancias de la aplicación. Valor mínimo: 0. |
| Image | String | Query | No | registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 | URL absoluta de la imagen. Esta configuración sobrescribe la del parámetro ImageTag. |
| CpuLimit | Integer | Query | No | 1 | Número máximo de núcleos de CPU permitidos para cada instancia de la aplicación durante su ejecución. Unidad: núcleo. Un valor de 0 indica que no hay límite. |
| MemoryLimit | Integer | Query | No | 0 | Cantidad máxima de memoria permitida para cada instancia de la aplicación durante su ejecución. Unidad: MB. Un valor de 0 indica que no hay límite. |
| CpuRequest | Integer | Query | No | 0 | Número de núcleos de CPU solicitados para cada instancia de la aplicación durante su ejecución. Se recomienda establecer este parámetro. Unidad: núcleo. Un valor de 0 indica que no hay límite. Nota Debe establecer este parámetro junto con CpuLimit. Asegúrese de que el valor de este parámetro no exceda el de CpuLimit. |
| MemoryRequest | Integer | Query | No | 0 | Cantidad de memoria solicitada para cada instancia de la aplicación durante su ejecución. Se recomienda establecer este parámetro. Unidad: MB. Si no desea solicitar una cuota de memoria, establezca este parámetro en 0. Nota Debe establecer este parámetro junto con MemoryLimit. Asegúrese de que el valor de este parámetro no exceda el de MemoryLimit. |
| NasId | String | Query | No | dfs23**** | ID del sistema de archivos NAS de Apsara File Storage montado en el contenedor donde se ejecuta la aplicación. El sistema de archivos NAS debe estar en la misma región que el clúster y tener un destino de montaje available, ya sea general o en el vSwitch de la nube privada virtual (VPC) donde se encuentra la aplicación. Si no especifique este parámetro pero sí especifique MountDescs, se adquiere y monta automáticamente un sistema de archivos NAS en el vSwitch de la VPC. |
| MountDescs | String | Query | No | [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] | Descripción de la configuración de montaje de NAS. Establezca este parámetro como una cadena JSON serializada. Ejemplo: |
| StorageType | String | Query | No | Performance | Tipo de almacenamiento. Solo es compatible con SSD. |
| LocalVolume | String | Query | No | [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] | Configuración para montar archivos del host en el contenedor donde se ejecuta la aplicación. Ejemplo: |
| PackageUrl | String | Query | No | https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar | URL del paquete de despliegue. Este parámetro es obligatorio si utiliza un paquete FatJar o WAR para desplegar la aplicación. Nota La versión del SDK de Enterprise Distributed Application Service (EDAS) para Java o Python debe ser V2.44.0 o posterior. |
| PackageVersion | String | Query | No | 20200720 | Versión del paquete de despliegue. Este parámetro es obligatorio si utiliza un paquete FatJar o WAR para desplegar la aplicación. Debe especificar una versión. Nota La versión del SDK de EDAS para Java o Python debe ser V2.44.0 o posterior. |
| JDK | String | Query | No | Open JDK 8 | Versión del Java Development Kit (JDK) de la que depende el paquete de despliegue de la aplicación. Son compatibles Open JDK 7 y Open JDK 8. Este parámetro no está disponible si despliega aplicaciones mediante imágenes. |
| WebContainer | String | Query | No | apache-tomcat-7.0.91 | Versión del contenedor Tomcat de la que depende el paquete de despliegue de la aplicación. Este parámetro aplica a aplicaciones de Spring Cloud y Dubbo desplegadas mediante paquetes WAR. No está disponible si despliega aplicaciones mediante imágenes. |
| EdasContainerVersion | String | Query | No | 3.5.9 | Versión de EDAS Container de la que depende el paquete de despliegue de la aplicación. Este parámetro aplica a aplicaciones de High-Speed Service Framework (HSF) desplegadas mediante paquetes WAR. No está disponible si despliega aplicaciones mediante imágenes. |
| UriEncoding | String | Query | No | GBK | Esquema de codificación del identificador uniforme de recursos (URI). Valores válidos: ISO-8859-1, GBK, GB2312 y UTF-8. Nota Si no especifique este parámetro en la configuración de la aplicación, se aplica el esquema de codificación URI predeterminado del contenedor Tomcat. |
| UseBodyEncoding | Boolean | Query | No | false | Especifica si se usa el esquema de codificación indicado en el cuerpo de la solicitud para los parámetros de consulta del URI. Nota Si no especifique este parámetro en la configuración de la aplicación, se aplica el valor predeterminado false. |
| UpdateStrategy | String | Query | No | null | Política de despliegue por fases.
|
| McpuRequest | Integer | Query | No | 4 | Número mínimo de núcleos de CPU requeridos. Unidad: núcleo. Un valor de 0 indica que no hay límite. Nota Debe establecer este parámetro junto con CpuLimit. Asegúrese de que el valor de este parámetro no exceda el de CpuLimit. |
| McpuLimit | Integer | Query | No | 0 | Número máximo de núcleos de CPU permitidos. Unidad: núcleo. Un valor de 0 indica que no hay límite. |
| VolumesStr | String | Query | No | test | Volumen de datos. |
| PackageVersionId | String | Query | No | 2bcc******** | ID de versión del paquete de despliegue. |
| ChangeOrderDesc | String | Query | No | Upgrade | Descripción del proceso de cambio. |
| RuntimeClassName | String | Query | No | runc | Tipo de entorno de ejecución del contenedor. Este parámetro aplica únicamente a clústeres que usan contenedores en sandbox. |
| DeployAcrossZones | String | Query | No | true | Especifica si se distribuyen las instancias de la aplicación en varias zonas. Un valor true indica que sí; otros valores indican que no. |
| BatchTimeout | Integer | Query | No | 60 | Tiempo de espera para el despliegue por lotes. Unidad: segundos. |
| EnableAhas | Boolean | Query | No | true | Especifica si se habilite el acceso a Application High Availability Service (AHAS). |
| WebContainerConfig | String | Query | No | null | Configuración del contenedor Tomcat. Para cancele esta configuración, establezca este parámetro en
|
| JavaStartUpConfig | String | Query | No | null | Configuración de parámetros de inicio de Java para una aplicación Java. Estos parámetros abarcan memoria, aplicación, política de recolección de basura (GC), herramientas, registro y descubrimiento de servicios, y configuraciones personalizadas. Una configuración adecuada ayuda a reducir la sobrecarga de GC, acortar el tiempo de respuesta del servidor y mejorar el rendimiento. Establezca este parámetro como una cadena JSON. En el ejemplo, original indica el valor de configuración y startup indica un parámetro de inicio. El sistema concatena automáticamente todos los valores de inicio como la configuración de parámetros de inicio de Java para la aplicación. Para cancele esta configuración, establezca este parámetro en |
| SlsConfigs | String | Query | No | [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] | Configuración del logstore. Para cancele esta configuración, establezca este parámetro en
|
| DeployAcrossNodes | String | Query | No | true | Especifica si se distribuyen las instancias de la aplicación en varios nodos. Un valor true indica que sí; otros valores indican que no. |
| TrafficControlStrategy | String | Query | No | null | Política de ajuste de tráfico para un despliegue canary. |
| PvcMountDescs | String | Query | No | [{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] | Configuración para montar un volumen PersistentVolumeClaim (PVC) de Kubernetes en un directorio especificado en una instancia de contenedor elástico. La configuración incluye los siguientes parámetros:
|
| ConfigMountDescs | String | Query | No | [{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] | Configuración para montar un ConfigMap o Secret de Kubernetes en un directorio especificado en una instancia de contenedor elástico. La configuración incluye los siguientes parámetros:
|
| EnvFroms | String | Query | No | [{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] | Variables de entorno de Kubernetes configuradas en modo EnvFrom. Un ConfigMap o Secret especificado se monta en un directorio determinado. Cada clave corresponde a un archivo en dicho directorio, y el contenido del archivo es el valor correspondiente a la clave. Este parámetro contiene los siguientes elementos:
|
| EmptyDirs | String | Query | No | [{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] | Configuración para montar un volumen emptyDir de Kubernetes en un directorio especificado en una instancia de contenedor elástico. La configuración incluye los siguientes parámetros:
|
Parámetros de respuesta
|
Parámetro |
Tipo |
Ejemplo |
Descripción |
|
ChangeOrderId |
String |
cd65b247-****-475b-ad4b-7039040d625c |
ID del proceso de cambio. Puede llamar a la operación GetChangeOrderInfo para consultar el ID del proceso de cambio. |
|
Code |
Integer |
200 |
Código de estado HTTP. |
|
Message |
String |
success |
Mensaje devuelto que indica si la llamada fue exitosa. |
|
RequestId |
String |
a5281053-08e4-47a5-b2ab-5c0323de* |
ID de la solicitud. |
Ejemplos
Solicitudes de ejemplo
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Common request headers
{
"AppId": "e83acea6-****-47e1-96ae-c0e953772cdc"
}
Respuestas exitosas de ejemplo
Formato XML
<DeployK8sApplicationResponse>
<Message>success</Message>
<RequestId>a5281053-08e4-47a5-b2ab-5c0323de*****</RequestId>
<ChangeOrderId>cd65b247-****-475b-ad4b-7039040d625c</ChangeOrderId>
<Code>200</Code>
</DeployK8sApplicationResponse>
Formato JSON
{
"DeployK8sApplicationResponse": {
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****",
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200
}
}
Códigos de error
Visite el Centro de errores para ver más códigos de error.
Para obtener una lista de códigos de error, visite el Centro de errores de API.