Implanta uma aplicação em um cluster do Container Service for Kubernetes (ACK) ou em um cluster serverless do Kubernetes.
Depuração
Cabeçalhos da requisição
Esta operação utiliza apenas cabeçalhos de requisição comuns. Para mais informações, consulte o tópico sobre parâmetros de requisição comuns.
Sintaxe da requisição
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Parâmetros da requisição
| Parâmetro | Tipo | Posição | Obrigatório | Exemplo | Descrição |
| AppId | String | Query | Sim | e83acea6-****-47e1-96ae-c0e953772cdc | ID da aplicação. Chame a operação ListApplication para consultar o ID da aplicação. |
| PreStop | String | Query | Não | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" | Script de pré-parada. Exemplo: Para cancele essa configuração, defina este parâmetro como |
| Envs | String | Query | Não | [{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] | Variáveis de ambiente usadas na implantação da aplicação. O valor deve ser um array JSON. Defina este parâmetro para especifique variáveis de ambiente padrão, variáveis de ambiente do ConfigMap do Kubernetes ou variáveis de ambiente do Secret do Kubernetes. Especifique variáveis de ambiente padrão no seguinte formato: {"name":"x", "value": "y"}
Especifique variáveis de ambiente do ConfigMap do Kubernetes no seguinte formato para referenciar valores de ConfigMaps: {
"name": "x2",
"valueFrom": {
"configMapKeyRef": {
"name": "my-config",
"key": "y2"
}
}
}
Especifique variáveis de ambiente do Secret do Kubernetes no seguinte formato para referenciar valores de Secrets: {
"name": "x3",
"valueFrom": {
"secretKeyRef": {
"name": "my-secret",
"key": "y3"
}
}
}
Nota Para cancele essa configuração, defina este parâmetro como um array JSON vazio, no formato "". |
| ImageTag | String | Query | Não | latest | Tag da imagem. |
| BatchWaitTime | Integer | Query | Não | 0 | Intervalo mínimo de tempo para a liberação faseada de pods. Para mais informações, consulte minReadySeconds. |
| Command | String | Query | Não | ls | Comando usado para iniciar o contêiner. Nota Para cancele essa configuração, defina este parâmetro como uma string vazia no formato "". |
| PostStart | String | Query | Não | {\"exec\":{\"command\":[\"ls\",\"/\"]}}" | Script pós-início. Exemplo: |
| Readiness | String | Query | Não | null | Configuração da verificação de prontidão do contêiner. Se a verificação falhar, o tráfego que passa pelo serviço do Kubernetes não será transmitido ao contêiner. Exemplo: |
| Liveness | String | Query | Não | null | Configuração da verificação de atividade do contêiner. Exemplo: |
| Args | String | Query | Não | ["args1","args2"] | Array de argumentos no comando de inicialização do contêiner. Defina este parâmetro como um array JSON no formato |
| Replicas | Integer | Query | Não | 1 | Número de instâncias da aplicação. Valor mínimo: 0. |
| Image | String | Query | Não | registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 | URL absoluta da imagem. Esta definição de parâmetro substitui a definição do parâmetro ImageTag. |
| CpuLimit | Integer | Query | Não | 1 | Número máximo de núcleos de CPU permitidos para cada instância da aplicação durante a execução. Unidade: núcleo. Um valor de 0 indica que não há limite. |
| MemoryLimit | Integer | Query | Não | 0 | Quantidade máxima de memória permitida para cada instância da aplicação durante a execução. Unidade: MB. Um valor de 0 indica que não há limite. |
| CpuRequest | Integer | Query | Não | 0 | Número de núcleos de CPU solicitados para cada instância da aplicação durante a execução. Recomendamos defina este parâmetro. Unidade: núcleo. Um valor de 0 indica que não há limite. Nota Defina este parâmetro juntamente com o parâmetro CpuLimit. Certifique-se de que o valor deste parâmetro não exceda o valor do parâmetro CpuLimit. |
| MemoryRequest | Integer | Query | Não | 0 | Quantidade de memória solicitada para cada instância da aplicação durante a execução. Recomendamos defina este parâmetro. Unidade: MB. Se não desejar solicitar uma cota de memória, defina este parâmetro como 0. Nota Defina este parâmetro juntamente com o parâmetro MemoryLimit. Certifique-se de que o valor deste parâmetro não exceda o valor do parâmetro MemoryLimit. |
| NasId | String | Query | Não | dfs23**** | ID do sistema de arquivos Apsara File Storage NAS montado no contêiner onde a aplicação está em execução. O sistema de arquivos NAS deve estar na mesma região do cluster e ter um destino de montagem disponível ou possuir um destino de montagem no vSwitch da Virtual Private Cloud (VPC) onde a aplicação está localizada. Se você não especifique este parâmetro, mas especifique o parâmetro MountDescs, um sistema de arquivos NAS será adquirido e montado automaticamente no vSwitch da VPC. |
| MountDescs | String | Query | Não | [{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] | Descrição da configuração de montagem do NAS. Defina este parâmetro como uma string JSON serializada. Exemplo: |
| StorageType | String | Query | Não | Performance | Tipo de armazenamento. Apenas SSD é suportado. |
| LocalVolume | String | Query | Não | [{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] | Configuração para montar arquivos do host no contêiner onde a aplicação está em execução. Exemplo: |
| PackageUrl | String | Query | Não | https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar | URL do pacote de implantação. Este parâmetro é obrigatório se você usar um pacote FatJar ou WAR para implantar a aplicação. Nota A versão do Enterprise Distributed Application Service (EDAS) SDK para Java ou Python deve ser V2.44.0 ou posterior. |
| PackageVersion | String | Query | Não | 20200720 | Versão do pacote de implantação. Este parâmetro é obrigatório se você usar um pacote FatJar ou WAR para implantar a aplicação. É necessário especifique uma versão. Nota A versão do EDAS SDK para Java ou Python deve ser V2.44.0 ou posterior. |
| JDK | String | Query | Não | Open JDK 8 | Versão do Java Development Kit (JDK) da qual o pacote de implantação da aplicação depende. Open JDK 7 e Open JDK 8 são suportados. Este parâmetro não está disponível se você implantar aplicações usando imagens. |
| WebContainer | String | Query | Não | apache-tomcat-7.0.91 | Versão do contêiner Tomcat da qual o pacote de implantação da aplicação depende. Este parâmetro aplica-se a aplicações Spring Cloud e Dubbo implantadas com pacotes WAR. Este parâmetro não está disponível se você implantar aplicações usando imagens. |
| EdasContainerVersion | String | Query | Não | 3.5.9 | Versão do EDAS Container da qual o pacote de implantação da aplicação depende. Este parâmetro aplica-se a aplicações High-Speed Service Framework (HSF) implantadas com pacotes WAR. Este parâmetro não está disponível se você implantar aplicações usando imagens. |
| UriEncoding | String | Query | Não | GBK | Esquema de codificação do Uniform Resource Identifier (URI). Valores válidos: ISO-8859-1, GBK, GB2312 e UTF-8. Nota Se você não especifique este parâmetro nas configurações da aplicação, o esquema de codificação URI padrão do contêiner Tomcat será aplicado. |
| UseBodyEncoding | Boolean | Query | Não | false | Define se deve ser usado o esquema de codificação especificado no corpo da requisição para parâmetros de consulta URI. Nota Se você não especifique este parâmetro nas configurações da aplicação, o valor padrão false será aplicado. |
| UpdateStrategy | String | Query | Não | null | Política de liberação faseada.
|
| McpuRequest | Integer | Query | Não | 4 | Número mínimo de núcleos de CPU necessários. Unidade: núcleo. Um valor de 0 indica que não há limite. Nota Defina este parâmetro juntamente com o parâmetro CpuLimit. Certifique-se de que o valor deste parâmetro não exceda o valor do parâmetro CpuLimit. |
| McpuLimit | Integer | Query | Não | 0 | Número máximo de núcleos de CPU permitidos. Unidade: núcleo. Um valor de 0 indica que não há limite. |
| VolumesStr | String | Query | Não | test | Volume de dados. |
| PackageVersionId | String | Query | Não | 2bcc******** | ID da versão do pacote de implantação. |
| ChangeOrderDesc | String | Query | Não | Upgrade | Descrição do processo de alteração. |
| RuntimeClassName | String | Query | Não | runc | Tipo de runtime do contêiner. Este parâmetro aplica-se apenas a clusters que usam contêineres em sandbox. |
| DeployAcrossZones | String | Query | Não | true | Define se as instâncias da aplicação devem ser distribuídas por múltiplas zonas. O valor true indica sim, enquanto outros valores indicam não. |
| BatchTimeout | Integer | Query | Não | 60 | Tempo limite para uma liberação em lote. Unidade: segundos. |
| EnableAhas | Boolean | Query | Não | true | Define se o acesso ao Application High Availability Service (AHAS) deve ser ativado. |
| WebContainerConfig | String | Query | Não | null | Configuração do contêiner Tomcat. Para cancele essa configuração, defina este parâmetro como
|
| JavaStartUpConfig | String | Query | Não | null | Configuração dos parâmetros de inicialização Java para uma aplicação Java. Esses parâmetros envolvem memória, aplicação, política de coleta de lixo (GC), ferramentas, registro e descoberta de serviços e configurações personalizadas. Definições adequadas ajudam a reduzir a sobrecarga de GC, diminuir o tempo de resposta do servidor e melhorar o throughput. Defina este parâmetro como uma string JSON. No exemplo, original indica o valor da configuração e startup indica um parâmetro de inicialização. O sistema concatena automaticamente todos os valores de startup como as definições dos parâmetros de inicialização Java da aplicação. Para cancele essa configuração, defina este parâmetro como |
| SlsConfigs | String | Query | Não | [{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] | Configuração do Logstore. Para cancele essa configuração, defina este parâmetro como
|
| DeployAcrossNodes | String | Query | Não | true | Define se as instâncias da aplicação devem ser distribuídas por múltiplos nós. O valor true indica sim, enquanto outros valores indicam não. |
| TrafficControlStrategy | String | Query | Não | null | Política de ajuste de tráfego para uma liberação canário. |
| PvcMountDescs | String | Query | Não | [{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] | Configuração para montar um volume PersistentVolumeClaim (PVC) do Kubernetes em um diretório especificado em uma instância de contêiner elástica. A configuração inclui os seguintes parâmetros:
|
| ConfigMountDescs | String | Query | Não | [{"name":"nginx-config","type":"ConfigMap","mountPath":"/etc/nginx"},{"name":"tls-secret","type":"secret","mountPath":"/etc/ssh"}] | Configuração para montar um ConfigMap ou Secret do Kubernetes em um diretório especificado em uma instância de contêiner elástica. A configuração inclui os seguintes parâmetros:
|
| EnvFroms | String | Query | Não | [{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] | Variáveis de ambiente do Kubernetes configuradas no modo EnvFrom. Um ConfigMap ou Secret especificado é montado em um diretório específico. Cada chave corresponde a um arquivo no diretório, e o conteúdo do arquivo é o valor correspondente à chave. Este parâmetro contém os seguintes parâmetros:
|
| EmptyDirs | String | Query | Não | [{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] | Configuração para montar um volume emptyDir do Kubernetes em um diretório especificado em uma instância de contêiner elástica. A configuração inclui os seguintes parâmetros:
|
Parâmetros de resposta
|
Parâmetro |
Tipo |
Exemplo |
Descrição |
|
ChangeOrderId |
String |
cd65b247-****-475b-ad4b-7039040d625c |
ID do processo de alteração. Chame a operação GetChangeOrderInfo para consultar o ID do processo de alteração. |
|
Code |
Integer |
200 |
Código de status HTTP. |
|
Message |
String |
success |
Mensagem retornada que indica se a chamada foi bem-sucedida. |
|
RequestId |
String |
a5281053-08e4-47a5-b2ab-5c0323de* |
ID da requisição. |
Exemplos
Exemplos de requisições
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Common request headers
{
"AppId": "e83acea6-****-47e1-96ae-c0e953772cdc"
}
Exemplos de respostas de sucesso
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 erro
Acesse o Centro de Erros para ver mais códigos de erro.
Para obter uma lista de códigos de erro, visite o API Error Center.