Déploie une application dans un cluster Container Service for Kubernetes (ACK) ou un cluster Serverless Kubernetes (ASK).
Testez maintenant
Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale. Testez cette API dans OpenAPI Explorer, sans signature manuelle. Les appels réussis génèrent automatiquement du code SDK correspondant à vos paramètres. Téléchargez-le avec une sécurité intégrée des identifiants pour une utilisation locale.
Test
Autorisation RAM
|
edas:ManageApplication |
update |
*Application
|
Aucune | Aucune |
Syntaxe de la requête
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
Paramètres de requête
|
Paramètre |
Type |
Requis |
Description |
Exemple |
| PreStop |
string |
Non |
Le script à exécuter avant l'arrêt du conteneur. Exemple : |
{ |
| Envs |
string |
Non |
Les variables d'environnement pour le déploiement. La valeur doit être un tableau JSON d'objets. Trois types de variables d'environnement sont pris en charge : standard, Kubernetes ConfigMap et Kubernetes Secret. Le format d'une variable d'environnement standard est le suivant : |
[{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
| ImageTag |
string |
Non |
Le tag de l'image. |
latest |
| BatchWaitTime |
integer |
Non |
L'intervalle minimum pour un déploiement progressif des pods. Pour plus d'informations, consultez minReadySeconds. |
0 |
| Command |
string |
Non |
La commande de démarrage du conteneur. |
ls |
| AppId |
string |
Oui |
L'identifiant de l'application. Obtenez l'identifiant en appelant l'opération ListApplication. Pour plus d'informations, consultez ListApplication. |
e83acea6-****-47e1-96ae-c0e953772cdc |
| PostStart |
string |
Non |
Le script à exécuter après le démarrage du conteneur. Exemple : |
{ |
| Readiness |
string |
Non |
La sonde de disponibilité pour le conteneur. Si la sonde échoue, le trafic provenant du service Kubernetes n'est pas routé vers le conteneur. Exemple : |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
| Liveness |
string |
Non |
La sonde de vivacité pour le conteneur. Exemple : |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| Args |
string |
Non |
Les arguments pour la commande de démarrage du conteneur. La valeur doit être un tableau JSON de chaînes, tel que |
["args1","args2"] |
| Replicas |
integer |
Non |
Le nombre d'instances d'application. La valeur minimale est 0. |
1 |
| Image |
string |
Non |
L'URL complète de l'image. Ce paramètre remplace le paramètre ImageTag. |
registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 |
| CpuLimit |
integer |
Non |
La limite de CPU pour l'instance d'application pendant l'exécution. Unité : cœurs. Une valeur de 0 signifie aucune limite. |
1 |
| MemoryLimit |
integer |
Non |
La limite de mémoire pour l'instance d'application pendant l'exécution. Unité : Mo. Une valeur de 0 signifie aucune limite. |
0 |
| CpuRequest |
integer |
Non |
Le quota de CPU à demander pour l'instance d'application pendant l'exécution. Il est recommandé de définir ce paramètre. |
0 |
| MemoryRequest |
integer |
Non |
Le quota de mémoire à demander pour l'instance d'application pendant l'exécution. Il est recommandé de définir ce paramètre. Unité : Mo. Une valeur de 0 signifie aucune demande. |
0 |
| NasId |
string |
Non |
L'identifiant du système de fichiers Apsara File Storage NAS (NAS) à monter. Le système de fichiers NAS doit se trouver dans la même région que le cluster. Il doit disposer d'un quota de cible de montage disponible, ou sa cible de montage doit se trouver sur un vSwitch dans le VPC. Si vous ne définissez pas ce paramètre mais que le champ |
dfs23**** |
| MountDescs |
string |
Non |
Les configurations de montage, qui sont une chaîne JSON sérialisée. Exemple : |
[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
| StorageType |
string |
Non |
Le type de stockage du système de fichiers NAS. Valeurs valides : |
Performance |
| LocalVolume |
string |
Non |
La configuration pour le montage d'un fichier hôte sur un conteneur. Exemple : |
[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
| PackageUrl |
string |
Non |
L'URL du package de déploiement. Configurez ce paramètre pour les applications déployées à l'aide d'un package FatJar ou WAR. |
https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
| PackageVersion |
string |
Non |
Le numéro de version du package de déploiement. Ce paramètre est requis pour les packages WAR et FatJar. Vous pouvez définir la signification du numéro de version. |
20200720 |
| JDK |
string |
Non |
La version du JDK dont dépend le package de déploiement. Valeurs valides : Open JDK 7, Open JDK 8 ou Custom OpenJDK. Ce paramètre n'est pas pris en charge pour les déploiements basés sur des images. Si vous utilisez Custom OpenJDK, vous devez également configurer le champ |
Open JDK 8 |
| WebContainer |
string |
Non |
La version de Tomcat dont dépend le package de déploiement. Ce paramètre s'applique aux applications Spring Cloud et Dubbo déployées à l'aide de packages WAR. Il n'est pas pris en charge pour les déploiements basés sur des images. |
apache-tomcat-7.0.91 |
| EdasContainerVersion |
string |
Non |
La version d'EDAS Container dont dépend le package de déploiement. Ce paramètre s'applique aux applications HSF déployées à l'aide de packages WAR. Il n'est pas pris en charge pour les déploiements basés sur des images. |
3.5.9 |
| UriEncoding |
string |
Non |
Le format d'encodage de l'URI. Formats pris en charge : ISO-8859-1, GBK, GB2312 et UTF-8. |
GBK |
| UseBodyEncoding |
boolean |
Non |
Indique si |
false |
| UpdateStrategy |
string |
Non |
La stratégie de déploiement progressif. |
{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} |
| McpuRequest |
integer |
Non |
L'exigence minimale en ressources CPU. Unité : cœurs. Une valeur de 0 signifie aucune limite. |
4 |
| McpuLimit |
integer |
Non |
Le CPU maximum pouvant être utilisé. Unité : cœurs. Une valeur de 0 signifie aucune limite. |
0 |
| VolumesStr |
string |
Non |
Les volumes de données. |
test |
| PackageVersionId |
string |
Non |
L'identifiant de la version du package de déploiement. |
2bcc******** |
| ChangeOrderDesc |
string |
Non |
La description de l'enregistrement de modification. |
Mise à niveau |
| RuntimeClassName |
string |
Non |
Le type d'exécution du conteneur : |
runc |
| DeployAcrossZones |
string |
Non |
Indique si les instances d'application doivent être réparties sur plusieurs zones. |
true |
| BatchTimeout |
integer |
Non |
Le délai d'expiration pour le déploiement d'un lot unique. Unité : secondes. |
60 |
| EnableAhas |
boolean |
Non |
Indique s'il faut se connecter à Application High Availability Service (AHAS). |
true |
| WebContainerConfig |
string |
Non |
La configuration du conteneur Tomcat. Définissez sur |
{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
| JavaStartUpConfig |
string |
Non |
Les paramètres de démarrage Java. Vous pouvez configurer la mémoire, l'application, la stratégie de ramasse-miettes (GC), les outils, l'enregistrement et la découverte de services, ainsi que les paramètres personnalisés. Une configuration correcte de ces paramètres permet de réduire la surcharge du GC, de raccourcir le temps de réponse du serveur et d'améliorer le débit. Le paramètre est une chaîne JSON. |
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}} |
| SlsConfigs |
string |
Non |
La configuration du Logstore. Définissez sur |
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
| DeployAcrossNodes |
string |
Non |
Indique si les instances d'application doivent être réparties sur plusieurs nœuds. |
true |
| TrafficControlStrategy |
string |
Non |
La stratégie de contrôle du trafic pour le déploiement progressif. |
{"http":{"rules":[{"conditionType":"percent","percent":10}]}} |
| PvcMountDescs |
string |
Non |
Configure les montages Kubernetes PersistentVolumeClaim (PVC). Cela vous permet de monter un volume PVC Kubernetes sur un répertoire de conteneur spécifié. Les paramètres pour |
[{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
| ConfigMountDescs |
string |
Non |
Configure les montages Kubernetes ConfigMap et Secret. Cela vous permet de monter un ConfigMap ou un Secret sur un répertoire de conteneur spécifié. Les paramètres pour |
[ |
| EnvFroms |
string |
Non |
Configure les variables d'environnement de type Kubernetes |
[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
| EmptyDirs |
string |
Non |
Configure les montages Kubernetes |
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
| CustomAffinity |
string |
Non |
La configuration d'affinité des pods. Ce paramètre ne prend effet que lorsque DeployAcrossNodes et DeployAcrossZones sont tous deux définis sur |
{"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 |
Non |
La configuration de tolérance de planification des pods. Ce paramètre ne prend effet que lorsque DeployAcrossNodes et DeployAcrossZones sont tous deux définis sur |
[{"key":"edas-taint-key2","operator":"Exists","effect":"NoExecute","tolerationSeconds":50},{"key":"edas-taint-key","operator":"Equal","value":"edas-taint-value","effect":"PreferNoSchedule"}] |
| BuildPackId |
string |
Non |
Le numéro de package de build pour EDAS Container : |
59 |
| Annotations |
string |
Non |
Les annotations du pod de l'application. |
{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
| Labels |
string |
Non |
Les labels du pod de l'application. |
{"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
| EnableEmptyPushReject |
boolean |
Non |
Indique si la protection contre les pushs vides doit être activée : |
false |
| EnableLosslessRule |
boolean |
Non |
Indique si la règle de démarrage progressif doit être activée : |
true |
| LosslessRuleWarmupTime |
integer |
Non |
La durée de préchargement du service. Unité : secondes. La valeur est comprise entre 0 et 86400. |
120 |
| LosslessRuleDelayTime |
integer |
Non |
La latence d'enregistrement du service. Unité : secondes. La valeur est comprise entre 0 et 86400. |
0 |
| LosslessRuleFuncType |
integer |
Non |
La courbe de préchargement du service. La valeur est comprise entre 0 et 20. La valeur par défaut est 2, ce qui convient aux scénarios de préchargement généraux. Cela indique que la courbe de réception du trafic du fournisseur de services suit une courbe quadratique pendant la période de préchargement. |
2 |
| LosslessRuleAligned |
boolean |
Non |
Indique si le mode de déploiement progressif sans interruption doit être activé pour terminer l'enregistrement du service avant que la sonde de disponibilité ne réussisse : |
false |
| LosslessRuleRelated |
boolean |
Non |
Indique si le mode de déploiement progressif sans interruption doit être activé pour terminer le préchargement du service avant que la sonde de disponibilité ne réussisse : |
false |
| LimitEphemeralStorage |
integer |
Non |
La limite supérieure de l'exigence en ressources de stockage temporaire. Unité : Go. Une valeur de 0 signifie qu'il n'y a aucune limite. |
4 |
| RequestsEphemeralStorage |
integer |
Non |
L'exigence minimale en ressources de stockage temporaire. Unité : Go. Une valeur de 0 signifie qu'il n'y a aucune limite. |
2 |
| Sidecars |
string |
Non |
Définit un conteneur sidecar pour le pod de l'application. La configuration du conteneur est au format YAML. La valeur correspond à la configuration YAML du conteneur sidecar encodée en base64. |
[ |
| InitContainers |
string |
Non |
Définit un conteneur d'initialisation pour le pod de l'application. La configuration du conteneur est au format YAML. La valeur correspond à la configuration YAML du conteneur d'initialisation encodée en base64. |
[ |
| UserBaseImageUrl |
string |
Non |
Lors de l'utilisation d'un environnement d'exécution JDK personnalisé, l'adresse de l'image de base doit être configurée. Cette adresse doit être accessible publiquement. Le serveur EDAS récupère cette image pour construire l'image de l'application. |
openjdk:8u302 |
| CanaryRuleId |
string |
Non |
L'identifiant de la stratégie de règle de déploiement canari. |
a8daf22e-****-968c7ff2ea34 |
| TerminateGracePeriod |
integer |
Non |
Le délai d'expiration de l'arrêt progressif pour l'application. Unité : secondes. |
120 |
| ImagePlatforms |
string |
Non |
L'architecture de la plateforme cible pour l'image. Ce paramètre est valide lors du déploiement avec un fichier WAR ou JAR. Exemples : |
linux/arm64,linux/amd64 |
| Startup |
string |
Non |
La sonde de démarrage peut être utilisée pour effectuer des vérifications de vivacité sur les conteneurs à démarrage lent afin d'éviter qu'ils ne soient terminés avant d'être opérationnels. Exemple : {"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}} |
| CustomAgentVersion |
string |
Non |
Définit la version de l'agent Application Real-Time Monitoring Service (ARMS) personnalisé à monter sur l'application. |
3.1.4 |
| SecurityContext |
string |
Non |
Définit la propriété |
{"yamlEncoded":"cnVuQXNVc2VyOiAwCnJ1bkFzR3JvdXA6IDA="} |
Éléments de réponse
|
Élément |
Type |
Description |
Exemple |
|
object |
L'objet de réponse. |
||
| ChangeOrderId |
string |
L'identifiant du processus de modification. Vous pouvez appeler l'opération GetChangeOrderInfo pour l'obtenir. Pour plus d'informations, consultez GetChangeOrderInfo. |
cd65b247-****-475b-ad4b-7039040d625c |
| Code |
integer |
L'état de l'interface ou un code d'erreur POP. |
200 |
| Message |
string |
Informations supplémentaires. |
success |
| RequestId |
string |
L'identifiant de la requête. |
a5281053-08e4-47a5-b2ab-5c0323de***** |
Exemples
JSON format
{
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200,
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****"
}
Codes d'erreur
Consultez Codes d'erreurCodes d'erreur pour la liste complète.
Notes de version
Consultez Notes de versionNotes de version pour la liste complète.