Implanta uma aplicação em um cluster do Container Service for Kubernetes (ACK) ou em um cluster do Serverless Kubernetes (ASK).
Experimente agora
Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.
Testar
Autorização RAM
|
Ação |
Nível de acesso |
Tipo de recurso |
Chave de condição |
Ação dependente |
|
edas:ManageApplication |
update |
*Application
|
Nenhuma | Nenhuma |
Sintaxe da solicitação
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Parâmetros da solicitação
|
Parâmetro |
Tipo |
Obrigatório |
Descrição |
Exemplo |
| PreStop |
string |
Não |
O script a ser executado antes de parar o contêiner. Exemplo: |
{ "exec":{ "command":[ "ls", "/" ] } } |
| Envs |
string |
Não |
As variáveis de ambiente para a implantação. O valor deve ser um array JSON de objetos. Três tipos de variáveis de ambiente são suportados: regulares, ConfigMap do Kubernetes e Secret do Kubernetes. O formato para uma variável de ambiente regular é o seguinte:
Uma variável de ambiente ConfigMap injeta o valor de uma chave especificada de um ConfigMap nas variáveis de ambiente do contêiner. O formato é o seguinte:
Uma variável de ambiente Secret injeta o valor de uma chave especificada de um Secret nas variáveis de ambiente do contêiner. O formato é o seguinte:
Nota
Para limpar esta configuração, defina o parâmetro como um array JSON vazio `[]`. |
[{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
| ImageTag |
string |
Não |
A tag da imagem. |
latest |
| BatchWaitTime |
integer |
Não |
O intervalo mínimo para uma liberação em fases de pods. Para mais informações, consulte minReadySeconds. |
0 |
| Command |
string |
Não |
O comando de inicialização do contêiner. Nota
Para limpar esta configuração, defina o parâmetro como uma string vazia |
ls |
| AppId |
string |
Sim |
O ID da aplicação. Obtenha o ID chamando a operação ListApplication. Para mais informações, consulte ListApplication. |
e83acea6-****-47e1-96ae-c0e953772cdc |
| PostStart |
string |
Não |
O script a ser executado após a inicialização do contêiner. Exemplo: |
{ "exec":{ "command":[ "ls", "/" ] } } |
| Readiness |
string |
Não |
A sondagem de prontidão para o contêiner. Se a sondagem falhar, o tráfego do serviço Kubernetes não será roteado para o contêiner. Exemplo: |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
| Liveness |
string |
Não |
A sondagem de atividade para o contêiner. Exemplo: |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| Args |
string |
Não |
Os argumentos para o comando de inicialização do contêiner. O valor deve ser um array JSON de strings, como |
["args1","args2"] |
| Replicas |
integer |
Não |
O número de instâncias da aplicação. O valor mínimo é 0. |
1 |
| Image |
string |
Não |
A URL completa da imagem. Este parâmetro sobrescreve o parâmetro ImageTag. |
registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 |
| CpuLimit |
integer |
Não |
O limite de CPU para a instância da aplicação durante a execução. Unidade: núcleos. Um valor de 0 significa sem limite. |
1 |
| MemoryLimit |
integer |
Não |
O limite de memória para a instância da aplicação durante a execução. Unidade: MB. Um valor de 0 significa sem limite. |
0 |
| CpuRequest |
integer |
Não |
A cota de CPU a ser solicitada para a instância da aplicação durante a execução. Recomenda-se definir este parâmetro. Unidade: núcleos. Um valor de 0 significa sem limite. Nota
Se você definir este parâmetro, defina também o parâmetro CpuLimit. O valor de CpuRequest deve ser menor ou igual ao valor de CpuLimit. |
0 |
| MemoryRequest |
integer |
Não |
A cota de memória a ser solicitada para a instância da aplicação durante a execução. Recomenda-se definir este parâmetro. Unidade: MB. Um valor de 0 significa sem solicitação. Nota
Se você definir este parâmetro, defina também o parâmetro MemoryLimit. O valor de MemoryRequest deve ser menor ou igual ao valor de MemoryLimit. |
0 |
| NasId |
string |
Não |
O ID do sistema de arquivos do Apsara File Storage NAS (NAS) a ser montado. O sistema de arquivos NAS deve estar na mesma região do cluster. Ele deve ter uma cota de destino de montagem disponível, ou seu destino de montagem deve estar em um vSwitch na VPC. Se você não definir este parâmetro, mas o campo mountDescs existir, um sistema de arquivos NAS será comprado e montado automaticamente em um vSwitch na VPC por padrão. |
dfs23**** |
| MountDescs |
string |
Não |
As configurações de montagem, que são uma string JSON serializada. Exemplo: |
[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
| StorageType |
string |
Não |
O tipo de armazenamento do sistema de arquivos NAS. Valores válidos:
Atualmente, apenas o tipo `Performance` é suportado. |
Performance |
| LocalVolume |
string |
Não |
A configuração para montar um arquivo do host em um contêiner. Exemplo: |
[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
| PackageUrl |
string |
Não |
A URL do pacote de implantação. Configure este parâmetro para aplicações implantadas usando um pacote FatJar ou WAR. Nota
O SDK Java ou Python para a API POP do EDAS deve ser da versão 2.44.0 ou posterior. |
https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
| PackageVersion |
string |
Não |
O número da versão do pacote de implantação. Este parâmetro é obrigatório para pacotes WAR e FatJar. Você pode definir o significado do número da versão. Nota
O SDK Java ou Python para a API POP do EDAS deve ser da versão 2.44.0 ou posterior. |
20200720 |
| JDK |
string |
Não |
A versão do JDK da qual o pacote de implantação depende. Valores válidos: Open JDK 7, Open JDK 8 ou Custom OpenJDK. Este parâmetro não é suportado para implantações baseadas em imagem. Se você usar Custom OpenJDK, também deverá configurar o campo UserBaseImageUrl. |
Open JDK 8 |
| WebContainer |
string |
Não |
A versão do Tomcat da qual o pacote de implantação depende. Este parâmetro se aplica a aplicações Spring Cloud e Dubbo implantadas usando pacotes WAR. Não é suportado para implantações baseadas em imagem. |
apache-tomcat-7.0.91 |
| EdasContainerVersion |
string |
Não |
A versão do EDAS Container da qual o pacote de implantação depende. Este parâmetro se aplica a aplicações HSF implantadas usando pacotes WAR. Não é suportado para implantações baseadas em imagem. |
3.5.9 |
| UriEncoding |
string |
Não |
O formato de codificação URI. Formatos suportados: ISO-8859-1, GBK, GB2312 e UTF-8. Nota
Se você não definir este parâmetro na configuração da aplicação, o valor padrão do Tomcat será usado. |
GBK |
| UseBodyEncoding |
boolean |
Não |
Especifica se deve ativar useBodyEncodingForURI. Nota
Se você não definir este parâmetro na configuração da aplicação, o valor padrão false será usado. |
false |
| UpdateStrategy |
string |
Não |
A política de liberação em fases.
|
{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} |
| McpuRequest |
integer |
Não |
O requisito mínimo de recurso de CPU. Unidade: núcleos. Um valor de 0 significa sem limite. Nota
Se você definir este parâmetro, também deverá definir o parâmetro CpuLimit. O valor deve ser menor ou igual ao valor de CpuLimit. |
4 |
| McpuLimit |
integer |
Não |
A CPU máxima que pode ser usada. Unidade: núcleos. Um valor de 0 significa sem limite. |
0 |
| VolumesStr |
string |
Não |
Os volumes de dados. |
test |
| PackageVersionId |
string |
Não |
O ID da versão do pacote de implantação. |
2bcc******** |
| ChangeOrderDesc |
string |
Não |
A descrição do registro de alteração. |
Upgrade |
| RuntimeClassName |
string |
Não |
O tipo de tempo de execução do contêiner:
Este parâmetro se aplica apenas a clusters que usam contêineres em sandbox. |
runc |
| DeployAcrossZones |
string |
Não |
Especifica se as instâncias da aplicação devem ser distribuídas por várias zonas. true indica sim, e outros valores indicam não. |
true |
| BatchTimeout |
integer |
Não |
O período de tempo limite para uma liberação de lote único. Unidade: segundos. |
60 |
| EnableAhas |
boolean |
Não |
Especifica se deve conectar ao Application High Availability Service (AHAS). |
true |
| WebContainerConfig |
string |
Não |
A configuração do contêiner Tomcat. Defina como
|
{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
| JavaStartUpConfig |
string |
Não |
Os parâmetros de inicialização do Java. Você pode configurar memória, aplicação, política de coleta de lixo (GC), ferramentas, registro e descoberta de serviços e configurações personalizadas. Configurar corretamente esses parâmetros ajuda a reduzir a sobrecarga de GC, encurtar o tempo de resposta do servidor e melhorar a taxa de transferência. O parâmetro é uma string JSON. original é o valor de configuração e startup é o parâmetro de inicialização. O sistema concatena automaticamente todos os valores de startup como os parâmetros de inicialização do Java para a aplicação. Defina como |
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}} |
| SlsConfigs |
string |
Não |
A configuração do Logstore. Defina como
|
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
| DeployAcrossNodes |
string |
Não |
Especifica se as instâncias da aplicação devem ser distribuídas por vários nós. true indica sim, e outros valores indicam não. |
true |
| TrafficControlStrategy |
string |
Não |
A política de controle de tráfego para liberação em fases. |
{"http":{"rules":[{"conditionType":"percent","percent":10}]}} |
| PvcMountDescs |
string |
Não |
Configura as montagens de PersistentVolumeClaim (PVC) do Kubernetes. Isso permite montar um volume PVC do Kubernetes em um diretório de contêiner especificado. Os parâmetros para PvcMountDescs são os seguintes:
|
[{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
| ConfigMountDescs |
string |
Não |
Configura as montagens de ConfigMap e Secret do Kubernetes. Isso permite montar um ConfigMap ou Secret em um diretório de contêiner especificado. Os parâmetros para ConfigMountDescs são os seguintes:
|
[ { "name": "nginx-config", "type": "ConfigMap", "mountPath": "/etc/nginx" }, { "name": "tls-secret", "type": "Secret", "mountPath": "/etc/ssh" } ] |
| EnvFroms |
string |
Não |
Configura variáveis de ambiente do tipo EnvFrom do Kubernetes. Isso monta um ConfigMap ou Secret especificado em um diretório. Cada chave corresponde a um arquivo no diretório, e o conteúdo do arquivo é o valor da chave. Os parâmetros para EnvFroms são os seguintes.
|
[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
| EmptyDirs |
string |
Não |
Configura as montagens emptyDir do Kubernetes. Isso permite montar um volume emptyDir em um diretório de contêiner especificado. Os parâmetros para EmptyDirs são os seguintes:
|
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
| CustomAffinity |
string |
Não |
A configuração de afinidade de pod. Isso entra em vigor apenas quando DeployAcrossNodes e DeployAcrossZones são false. |
{"nodeAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":{"nodeSelectorTerms":[{"matchExpressions":[{"key":"beta.kubernetes.io/arch","operator":"NotIn","values":["arm64","arm32"]}]}]},"preferredDuringSchedulingIgnoredDuringExecution":[{"weight":5,"preference":{"matchExpressions":[{"key":"kubernetes.io/os","operator":"In","values":["linux"]}]}}]},"podAffinity":{"requiredDuringSchedulingIgnoredDuringExecution":[{"namespaces":["default"],"topologyKey":"kubernetes.io/hostname","labelSelector":{"matchExpressions":[{"key":"edas.oam.acname","operator":"NotIn","values":["edas-test-app"]}]}}]},"podAntiAffinity":{"preferredDuringSchedulingIgnoredDuringExecution":[{"podAffinityTerm":{"namespaces":["default"],"topologyKey":"failure-domain.beta.kubernetes.io/zone","labelSelector":{"matchExpressions":[{"key":"edas.oam.acname","operator":"In","values":["edas-test-app-2"]}]}},"weight":15}]}} |
| CustomTolerations |
string |
Não |
A configuração de tolerância de agendamento de pod. Isso entra em vigor apenas quando DeployAcrossNodes e DeployAcrossZones são false. |
[{"key":"edas-taint-key2","operator":"Exists","effect":"NoExecute","tolerationSeconds":50},{"key":"edas-taint-key","operator":"Equal","value":"edas-taint-value","effect":"PreferNoSchedule"}] |
| BuildPackId |
string |
Não |
O número do pacote de compilação para o EDAS Container:
Você pode obter o número de duas maneiras:
|
59 |
| Annotations |
string |
Não |
As anotações para o pod da aplicação. |
{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
| Labels |
string |
Não |
Os rótulos para o pod da aplicação. |
{"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
| EnableEmptyPushReject |
boolean |
Não |
Especifica se deve ativar a proteção contra push vazio:
|
false |
| EnableLosslessRule |
boolean |
Não |
Especifica se deve ativar a regra de inicialização graceful:
|
true |
| LosslessRuleWarmupTime |
integer |
Não |
A duração do prefetch do serviço. Unidade: segundos. O valor varia de 0 a 86400. |
120 |
| LosslessRuleDelayTime |
integer |
Não |
A latência de registro do serviço. Unidade: segundos. O valor varia de 0 a 86400. |
0 |
| LosslessRuleFuncType |
integer |
Não |
A curva de prefetch do serviço. O valor varia de 0 a 20. O padrão é 2, o que é adequado para cenários gerais de prefetch. Isso indica que a curva de recebimento de tráfego do provedor de serviços segue uma curva quadrática durante o período de prefetch. |
2 |
| LosslessRuleAligned |
boolean |
Não |
Especifica se deve ativar o modo de implantação rolling graceful para concluir o registro do serviço antes que a sondagem de prontidão seja bem-sucedida:
Nota
Se LosslessRuleRelated também estiver definido como true, esta interface verifica se o prefetch do serviço foi concluído.
|
false |
| LosslessRuleRelated |
boolean |
Não |
Especifica se deve ativar o modo de implantação rolling graceful para concluir o prefetch do serviço antes que a sondagem de prontidão seja bem-sucedida:
|
false |
| LimitEphemeralStorage |
integer |
Não |
O limite superior do requisito de recurso de armazenamento temporário. Unidade: GB. Um valor de 0 significa sem limite. |
4 |
| RequestsEphemeralStorage |
integer |
Não |
O requisito mínimo de recurso de armazenamento temporário. Unidade: GB. Um valor de 0 significa sem limite. |
2 |
| Sidecars |
string |
Não |
Define um contêiner sidecar para o pod da aplicação. A configuração do contêiner está no formato YAML. O valor é a configuração YAML do contêiner sidecar codificada em base64. |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHRhaWwKICAtICctZicKICAtIC9kZXYvbnVsbAppbWFnZTogJ2J1c3lib3g6bGF0ZXN0JwpuYW1lOiBidXN5Ym94Cg==" } ] |
| InitContainers |
string |
Não |
Define um contêiner de inicialização para o pod da aplicação. A configuração do contêiner está no formato YAML. O valor é a configuração YAML do contêiner de inicialização codificada em base64. |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHNsZWVwCiAgLSAnNjAnCmltYWdlOiAnYnVzeWJveDpsYXRlc3QnCm5hbWU6IGluaXQtYnVzeWJveAo=" } ] |
| UserBaseImageUrl |
string |
Não |
Ao usar um tempo de execução JDK personalizado, você deve configurar o endereço da imagem base. Este endereço deve ser acessível publicamente. O servidor EDAS extrai esta imagem para compilar a imagem da aplicação. |
openjdk:8u302 |
| CanaryRuleId |
string |
Não |
O ID da política de regra de liberação canary. |
a8daf22e-****-968c7ff2ea34 |
| TerminateGracePeriod |
integer |
Não |
O período de tempo limite para parada graceful da aplicação. Unidade: segundos. |
120 |
| ImagePlatforms |
string |
Não |
A arquitetura da plataforma de destino para a imagem. Isso é válido ao implantar com um arquivo WAR ou JAR. Exemplos:
|
linux/arm64,linux/amd64 |
| Startup |
string |
Não |
A sondagem de inicialização pode ser usada para realizar verificações de atividade em contêineres de inicialização lenta para evitar que sejam encerrados antes de estarem prontos e em execução. Exemplo: {"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}}. Para excluir esta configuração, defina o parâmetro como "" ou {}. Se você não definir este parâmetro, a configuração será ignorada. |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| CustomAgentVersion |
string |
Não |
Define a versão do agente personalizado do Application Real-Time Monitoring Service (ARMS) a ser montado na aplicação. Nota
Este recurso está disponível apenas para usuários na lista de permissões. Para usar este recurso, envie um ticket para ser adicionado à lista de permissões. |
3.1.4 |
| SecurityContext |
string |
Não |
Define a propriedade SecurityContext para o contêiner do pod da aplicação. O valor é a configuração YAML do SecurityContext codificada em base64. |
{"yamlEncoded":"cnVuQXNVc2VyOiAwCnJ1bkFzR3JvdXA6IDA="} |
Elementos de resposta
|
Elemento |
Tipo |
Descrição |
Exemplo |
|
object |
O objeto de resposta. |
||
| ChangeOrderId |
string |
O ID do processo de alteração. Você pode chamar a operação GetChangeOrderInfo para obtê-lo. Para mais informações, consulte GetChangeOrderInfo. |
cd65b247-****-475b-ad4b-7039040d625c |
| Code |
integer |
O status da interface ou um código de erro POP. |
200 |
| Message |
string |
Informações adicionais. |
success |
| RequestId |
string |
O ID da solicitação. |
a5281053-08e4-47a5-b2ab-5c0323de***** |
Exemplos
Resposta de sucesso
JSON formato
{
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200,
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****"
}
Códigos de erro
Consulte Códigos de ErroCódigos de Erro para uma lista completa.
Notas de versão
Consulte Notas de VersãoNotas de Versão para uma lista completa.