在Container ServiceK8s叢集或Serverless K8s叢集中部署應用。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
|
操作 |
存取層級 |
資源類型 |
條件關鍵字 |
關聯操作 |
|
edas:ManageApplication |
update |
*Application
|
無 | 無 |
請求文法
POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| PreStop |
string |
否 |
停止前執行指令碼,樣本格式: |
{ "exec":{ "command":[ "ls", "/" ] } } |
| Envs |
string |
否 |
部署環境變數,格式需要符合 JSON 對象數組。支援三種類型的環境變數,分別是普通環境變數,K8s ConfigMap 環境變數,K8s Secret 環境變數。普通環境變數格式如下所示:
ConfigMap 環境變數配置可以將指定的 ConfigMap 中對應的 key 的值注入到容器的環境變數中,配置的格式如下所示:
Secret 環境變數配置可以將指定的 Secret 中對應的 key 的值注入到容器的環境變數中,配置的格式如下所示:
說明
如果要取消該配置,需設定一個空 JSON 數組“[]”來表示不做配置。 |
[{"name":"x1","value":"y1"},{"name":"x2","valueFrom":{"configMapKeyRef":{"name":"my-config","key":"y2"}}},{"name":"x3","valueFrom":{"secretKeyRef":{"name":"my-secret","key":"y3"}}}] |
| ImageTag |
string |
否 |
鏡像 Tag。 |
latest |
| BatchWaitTime |
integer |
否 |
Pod 分批發布的最小間隔時間,詳細資料請參見 minReadySeconds 。 |
0 |
| Command |
string |
否 |
容器啟動命令。 說明
如果要取消該配置,需設定一個Null 字元串 |
ls |
| AppId |
string |
是 |
應用 ID,可通過調用 ListApplication 介面擷取,詳情請參見 ListApplication 。 |
e83acea6-****-47e1-96ae-c0e953772cdc |
| PostStart |
string |
否 |
啟動後執行指令碼,格式如: |
{ "exec":{ "command":[ "ls", "/" ] } } |
| Readiness |
string |
否 |
容器業務狀態檢查,如果檢查失敗,經過 K8s service 的流量將不轉入到該容器,格式如: |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
| Liveness |
string |
否 |
容器存活狀態監測,格式如 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| Args |
string |
否 |
容器啟動 Args 命令參數,格式必須符合 JSON 數組 |
["args1","args2"] |
| Replicas |
integer |
否 |
應用執行個體數,最小為 0。 |
1 |
| Image |
string |
否 |
鏡像完整 URL,覆蓋鏡像 Tag 參數。 |
registry-vpc.cn-beijing.aliyuncs.com/t****/app:v1 |
| CpuLimit |
integer |
否 |
應用運行過程中,應用執行個體的 CPU 限制。 單位:核心數,設定為 0 表示不限制。 |
1 |
| MemoryLimit |
integer |
否 |
應用運行過程中,應用執行個體的記憶體限制。單位:MB,設定為 0 表示不限制。 |
0 |
| CpuRequest |
integer |
否 |
應用運行過程中,應用執行個體需要申請的 CPU 配額,推薦設定。 單位:核心數,設定為 0 表示不限制。 說明
設定該參數時,還需要設定 CpuLimit 參數,且需要小於等於 CpuLimit 的參數值。 |
0 |
| MemoryRequest |
integer |
否 |
應用運行過程中,應用執行個體需要申請的記憶體配額,推薦設定。單位:MB。設定為 0 表示不申請。 說明
設定該參數時,還需要設定 MemoryLimit 參數,且需要小於等於 MemoryLimit 的參數值。 |
0 |
| NasId |
string |
否 |
掛載的 NAS 的 ID,必須與叢集在同一個地區。它必須有可用的掛載點建立額度,或者它的掛載點已經在 VPC 內的交換器上。如果不填,且存在 mountDescs 欄位,則預設將自動購買一個 NAS 並掛載到 VPC 內的交換器上。 |
dfs23**** |
| MountDescs |
string |
否 |
掛載配置描述,為一個序列化的 JSON。例如: |
[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}] |
| StorageType |
string |
否 |
NAS 儲存類型,包括:
目前只支援 Performance 類型。 |
Performance |
| LocalVolume |
string |
否 |
宿主機檔案掛載到容器內的配置。例如: |
[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}] |
| PackageUrl |
string |
否 |
部署套件地址。通過 FatJar 或 WAR 包部署的應用需要配置部署套件地址。 說明
EDAS POP API 的 Java 或者 Python SDK 需要 2.44.0 或以上版本。 |
https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar |
| PackageVersion |
string |
否 |
部署套件的版本號碼,WAR 和 FatJar 類型必填。請自訂它的含義。 說明
EDAS POP API 的 Java 或者 Python SDK 需要 2.44.0 或以上版本。 |
20200720 |
| JDK |
string |
否 |
部署的包依賴的 JDK 版本。可選的參數值為 Open JDK 7、Open JDK 8 或 Custom OpenJDK。鏡像部署方式不支援此參數。當使用 Custom OpenJDK 時,還需配置 UserBaseImageUrl 欄位。 |
Open JDK 8 |
| WebContainer |
string |
否 |
部署套件依賴的 Tomcat 版本。適用於通過 WAR 包部署的 Spring Cloud 和 Dubbo 應用,鏡像不支援此參數。 |
apache-tomcat-7.0.91 |
| EdasContainerVersion |
string |
否 |
部署套件依賴的 EDAS Container 版本。適用於通過 WAR 包部署的 HSF 應用,鏡像不支援此參數。 |
3.5.9 |
| UriEncoding |
string |
否 |
URI 編碼方式,支援 ISO-8859-1、GBK、GB2312 和 UTF-8。 說明
應用配置不設定該參數,使用 Tomcat 預設值。 |
GBK |
| UseBodyEncoding |
boolean |
否 |
useBodyEncodingForURI 是否啟用。 說明
應用配置不設定該參數,使用預設值 false。 |
false |
| UpdateStrategy |
string |
否 |
分批發布策略
|
{"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}} |
| McpuRequest |
integer |
否 |
CPU 最小資源需求,單位:核心數。設定為 0 表示不限制。 說明
設定該參數時,還需要設定 CpuLimit 參數,且需要小於等於 CpuLimit 的參數值。 |
4 |
| McpuLimit |
integer |
否 |
CPU 能使用的最大值,單位:核心數。設定為 0 表示不做限制。 |
0 |
| VolumesStr |
string |
否 |
資料卷。 |
test |
| PackageVersionId |
string |
否 |
部署套件版本 ID。 |
2bcc******** |
| ChangeOrderDesc |
string |
否 |
變更記錄描述。 |
Upgrade |
| RuntimeClassName |
string |
否 |
容器運行時類型:
該參數僅適用於使用安全沙箱容器的叢集。 |
runc |
| DeployAcrossZones |
string |
否 |
是否將應用執行個體分布到多可用性區域。true 為是,其他值為否。 |
true |
| BatchTimeout |
integer |
否 |
單批發布逾時時間,單位:秒。 |
60 |
| EnableAhas |
boolean |
否 |
是否接入 AHAS。 |
true |
| WebContainerConfig |
string |
否 |
Tomcat 容器配置,設定為
|
{"useDefaultConfig":false,"contextInputType":"custom","contextPath":"hello","httpPort":8088,"maxThreads":400,"uriEncoding":"UTF-8","useBodyEncoding":true,"useAdvancedServerXml":false} |
| JavaStartUpConfig |
string |
否 |
Java 啟動參數用於在 Java 應用啟動時配置啟動參數。可配置:記憶體配置、應用、GC 策略、工具、服務註冊和發現配置和自訂等配置,正確配置這些參數有助於降低記憶體回收(GC)開銷,從而縮短伺服器回應時間並提高輸送量。參數格式為 JSON 字串:original 為配置值,startup 為啟動參數,系統將自動拼接所有的 startup 作為應用程式的 Java 啟動參數。設定為 |
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}} |
| SlsConfigs |
string |
否 |
Logstore 配置,設定為
|
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
| DeployAcrossNodes |
string |
否 |
是否將應用執行個體分布到多個節點。true 為是,其他值為否。 |
true |
| TrafficControlStrategy |
string |
否 |
灰階發布流量控制策略。 |
{"http":{"rules":[{"conditionType":"percent","percent":10}]}} |
| PvcMountDescs |
string |
否 |
配置 K8s PVC(PersistentVolumeClaim)掛載,支援將 K8s PVC 卷掛載到指定的容器目錄。PvcMountDescs 的配置參數說明如下:
|
[{"pvcName":"nas-pvc-1","mountPaths":[{"mountPath":"/usr/share/nginx/data"},{"mountPath":"/usr/share/nginx/html","readOnly":true}]}] |
| ConfigMountDescs |
string |
否 |
配置 K8s ConfigMap 和 Secret 掛載,支援將 ConfigMap 和 Secret 掛載到指定的容器目錄。ConfigMountDescs 的配置參數說明如下:
|
[ { "name": "nginx-config", "type": "ConfigMap", "mountPath": "/etc/nginx" }, { "name": "tls-secret", "type": "Secret", "mountPath": "/etc/ssh" } ] |
| EnvFroms |
string |
否 |
配置 K8s EnvFrom 類型的環境變數,將指定的 ConfigMap 或 Secret 掛載到指定目錄,每個 key 對應目錄下的一個檔案,檔案的內容為該 key 對應的 value。 EnvFroms 的配置參數說明如下。
|
[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}] |
| EmptyDirs |
string |
否 |
配置 K8s emptyDir 掛載,支援將 emptyDir 卷掛載到指定的容器目錄。EmptyDirs 的配置參數說明如下:
|
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}] |
| CustomAffinity |
string |
否 |
Pod 親和性配置,若且唯若 DeployAcrossNodes 與 DeployAcrossZones 都為 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 |
否 |
Pod 調度容忍配置,若且唯若 DeployAcrossNodes 與 DeployAcrossZones 都為 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 |
否 |
EDAS-Container 構建包號:
有以下兩種擷取方式:
|
59 |
| Annotations |
string |
否 |
應用 Pod 註解。 |
{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"} |
| Labels |
string |
否 |
應用 Pod 標籤。 |
{"label-name-1":"label-value-1","label-name-2":"label-value-2"} |
| EnableEmptyPushReject |
boolean |
否 |
是否開啟推空保護:
|
false |
| EnableLosslessRule |
boolean |
否 |
是否啟用無損上線規則:
|
true |
| LosslessRuleWarmupTime |
integer |
否 |
服務預熱時間長度,單位:秒。取值範圍為 0~86400 秒。 |
120 |
| LosslessRuleDelayTime |
integer |
否 |
服務延遲註冊時間長度,單位:秒。取值範圍為 0~86400 秒。 |
0 |
| LosslessRuleFuncType |
integer |
否 |
服務預熱曲線。取值範圍 0~20。預設為 2(適合於一般預熱情境),表示在預熱周期內服務提供者的流量接收曲線形狀呈 2 次曲線形狀。 |
2 |
| LosslessRuleAligned |
boolean |
否 |
是否啟用無損滾動發布模式配置通過就緒檢查前完成服務註冊:
說明
若同時配置
|
false |
| LosslessRuleRelated |
boolean |
否 |
是否啟用無損滾動發布模式配置通過就緒檢查前完成服務預熱:
|
false |
| LimitEphemeralStorage |
integer |
否 |
臨時儲存資源需求上限,單位:GB。設定 0 表示不限制。 |
4 |
| RequestsEphemeralStorage |
integer |
否 |
臨時儲存最小資源需求,單位:GB。設定 0 表示不限制。 |
2 |
| Sidecars |
string |
否 |
為應用 Pod 設定 Sidecar 容器。支援設定容器配置的格式 YAML,其值為 Sidecar 容器 YAML 配置 base64 編碼後的值。 |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHRhaWwKICAtICctZicKICAtIC9kZXYvbnVsbAppbWFnZTogJ2J1c3lib3g6bGF0ZXN0JwpuYW1lOiBidXN5Ym94Cg==" } ] |
| InitContainers |
string |
否 |
為應用 Pod 設定初始化容器。支援設定容器配置的格式 YAML,其值為 Init 容器 YAML 配置 base64 編碼後的值。 |
[ { "yamlEncoded": "Y29tbWFuZDoKICAtIHNsZWVwCiAgLSAnNjAnCmltYWdlOiAnYnVzeWJveDpsYXRlc3QnCm5hbWU6IGluaXQtYnVzeWJveAo=" } ] |
| UserBaseImageUrl |
string |
否 |
使用自訂 JDK 運行時,需要配置基礎鏡像地址。該地址需要可公開訪問,EDAS 服務端會拉取該鏡像,用於構建應用鏡像。 |
openjdk:8u302 |
| CanaryRuleId |
string |
否 |
金絲雀規則策略 ID。 |
a8daf22e-****-968c7ff2ea34 |
| TerminateGracePeriod |
integer |
否 |
設定應用優雅停止逾時時間。單位:秒。 |
120 |
| ImagePlatforms |
string |
否 |
鏡像目標平台架構,當使用 war、jar 部署時有效,輸入範例:
|
linux/arm64,linux/amd64 |
| Startup |
string |
否 |
啟動探針可以用於對慢啟動容器進行存活性檢測,避免它們在啟動運行之前就被殺掉,格式如:{"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 |
否 |
設定應用掛載的自訂 ArmsAgent 探針版本。 說明
該功能為白名單開放。如有需求,請提交工單申請加入白名單。 |
3.1.4 |
| SecurityContext |
string |
否 |
為應用 Pod 容器設定 SecurityContext 屬性。其值為 SecurityContext YAML 配置 base64 編碼後的值。 |
{"yamlEncoded":"cnVuQXNVc2VyOiAwCnJ1bkFzR3JvdXA6IDA="} |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
介面響應。 |
||
| ChangeOrderId |
string |
變更流程 ID,可調用 GetChangeOrderInfo 介面擷取,詳情請參見 GetChangeOrderInfo 。 |
cd65b247-****-475b-ad4b-7039040d625c |
| Code |
integer |
介面狀態或 POP 錯誤碼。 |
200 |
| Message |
string |
附加資訊 。 |
success |
| RequestId |
string |
請求 ID。 |
a5281053-08e4-47a5-b2ab-5c0323de***** |
樣本
正常返回樣本
JSON格式
{
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"Code": 200,
"Message": "success",
"RequestId": "a5281053-08e4-47a5-b2ab-5c0323de*****"
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。