在Container ServiceK8s叢集或Serverless K8s叢集中建立應用。
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
|
操作 |
存取層級 |
資源類型 |
條件關鍵字 |
關聯操作 |
|
edas:CreateApplication |
create |
*全部資源
|
無 | 無 |
請求文法
POST /pop/v5/k8s/acs/create_k8s_app HTTP/1.1
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| IntranetTargetPort |
integer |
否 |
內網 SLB 後端連接埠,也是應用的服務連接埠,範圍為 1~65535。 |
80 |
| IntranetSlbPort |
integer |
否 |
內網 SLB 前端連接埠,範圍為 1~65535。 |
80 |
| ImageUrl |
string |
否 |
鏡像地址,當設定 |
registry.cn-beijing.aliyuncs.com/****_test/****-cons****:1.0 |
| ApplicationDescription |
string |
否 |
應用描述資訊。 |
Production Environment |
| RepoId |
string |
否 |
鏡像的倉庫 ID。 |
ced******** |
| Replicas |
integer |
否 |
應用執行個體數。 |
4 |
| LimitCpu |
integer |
否 |
應用運行過程中,應用執行個體的 CPU 限額,單位:核心數。如果 LimitmCpu 不為空白,則忽略該參數。 |
4 |
| LimitMem |
integer |
否 |
應用運行過程中,應用執行個體的記憶體限額,單位:MB。LimitMem 取值要不小於 RequestsMem。 |
2 |
| RequestsCpu |
integer |
否 |
應用建立時,應用執行個體的 CPU 限額,單位:核心數。設定為 0 時表示不限制。如果 RequestsmCpu,則使用 RequestsmCpu,忽略該參數。 |
0 |
| RequestsMem |
integer |
否 |
應用建立時,應用執行個體的記憶體限額,單位:MB。設定為 0 時表示不限制。RequestsMem 的取值不能大於 LimitMem 的取值。 |
0 |
| Command |
string |
否 |
應用啟動命令。如果設定該參數,鏡像在啟動時,會替代鏡像中的原有的啟動命令。 |
ls |
| CommandArgs |
string |
否 |
與命令組合使用,命令的參數是 JsonArray 字串,格式如: |
[{"argument":"-lh"}] |
| AppName |
string |
是 |
應用程式名稱。必須以字母開頭,支援數字、字母和短劃線(-),最多支援 36 個字元。 |
doc-test |
| IntranetSlbProtocol |
string |
否 |
私網 SLB 協議,支援 TCP、HTTP 和 HTTPS 協議。 |
TCP |
| IntranetSlbId |
string |
否 |
私網 SLB ID,不配置時,EDAS 會自動為使用者新購 SLB。 |
ae93******** |
| ClusterId |
string |
是 |
叢集 ID,可調用 ListCluster 介面擷取,詳情請參見 ListCluster 。 |
c9cd**** |
| InternetSlbId |
string |
否 |
公網 SLB ID,不配置時,EDAS 會自動為使用者新購 SLB。 |
a3d4******** |
| InternetSlbProtocol |
string |
否 |
公網 SLB 協議,支援 TCP、HTTP 和 HTTPS 協議。 |
TCP |
| InternetSlbPort |
integer |
否 |
公網 SLB 前端連接埠,範圍為 1~65535。 |
80 |
| InternetTargetPort |
integer |
否 |
私網 SLB 後端連接埠,也是應用的服務連接埠,範圍為 1~65535。 |
8080 |
| 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"}}}] |
| PreStop |
string |
否 |
停止前執行指令碼,樣本格式: 如果設定為 |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
| PostStart |
string |
否 |
啟動後執行指令碼,格式如: 如果設定為 |
{\"exec\":{\"command\":[\"ls\",\"/\"]}}" |
| Liveness |
string |
否 |
容器存活狀態監測 ,格式如 如果設定為 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}} |
| Readiness |
string |
否 |
容器業務狀態檢查,如果檢查失敗,經過 K8s Service 的流量將不轉入到該容器,格式如: 如果設定為 |
{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"httpGet": {"path": "/consumer","port": 8080,"scheme": "HTTP","httpHeaders": [{"name": "test","value": "testvalue"}]}} |
| NasId |
string |
否 |
掛載的 NAS 的 ID。如果不填,且存在 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"}] |
| Namespace |
string |
否 |
K8s 叢集的命名空間,它將決定您的應用部署在哪個 K8s 命名空間。預設為 default。 |
default |
| LogicalRegionId |
string |
否 |
EDAS 命名空間對應 ID,非預設命名空間須填寫。 |
cn-shenzhen:beta**** |
| PackageType |
string |
否 |
應用程式套件類型。選擇性參數值包含:FatJar、WAR 和 Image。 |
WAR |
| 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 |
否 |
部署的包依賴的 說明
使用鏡像部署時不支援此參數。 |
3.5.9 |
| UriEncoding |
string |
否 |
URI 編碼方式,支援 ISO-8859-1、GBK、GB2312 和 UTF-8。 說明
應用配置不設定該參數,使用 Tomcat 預設值。 |
GBK |
| UseBodyEncoding |
boolean |
否 |
useBodyEncodingForURI 是否啟用。 說明
應用配置不設定該參數,使用預設值 false。 |
false |
| RequestsmCpu |
integer |
否 |
應用建立時,應用執行個體的 CPU 限額,單位:毫核心數。 |
500 |
| LimitmCpu |
integer |
否 |
應用運行過程中,應用執行個體的 CPU 限額。 單位:毫核心數,設定為 0 表示不限制。 |
1000 |
| RuntimeClassName |
string |
否 |
容器運行時類型,僅適用於使用安全沙箱容器的叢集。 |
runc |
| DeployAcrossZones |
string |
否 |
是否將應用執行個體分布到多可用性區域。 |
true |
| Timeout |
integer |
否 |
變更流程逾時時間,單位:秒。取值範圍為 1~1800 秒,不填預設為 1800 秒。 |
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"},"CustomParams":{"original":"-Dcustom.property.sample=false","startup":"-Dcustom.property.sample=false"}} |
| SlsConfigs |
string |
否 |
Logstore 配置,設定為
|
[{"logstore":"thisisanotherfilelog","type":"file","logDir":"/var/log/*"},{"logstore":"","type":"stdout","logDir":"stdout.log"},{"logstore":"thisisafilelog","type":"file","logDir":"/tmp/log/*"}] |
| IsMultilingualApp |
boolean |
否 |
是否為多語言應用。 |
true |
| DeployAcrossNodes |
string |
否 |
是否將應用執行個體分布到多個節點。 |
true |
| 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"}] |
| CsClusterId |
string |
否 |
只有在使用者使用一個從未匯入的叢集來建立應用時,才需要指定 csClusterId。 |
abcdefg |
| EnableAsm |
boolean |
否 |
只有在使用者使用一個從未匯入的叢集來建立應用,同時開啟 ASM 時,才需要設定這個值為 true。 |
false |
| 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"}] |
| BuildPackId |
string |
否 |
配置 |
-1 |
| CustomAffinity |
string |
否 |
自訂關聯。 |
demo |
| CustomTolerations |
string |
否 |
自訂公差。 |
demo |
| ResourceGroupId |
string |
否 |
資源群組 ID。 |
461 |
| 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 |
| ServiceConfigs |
string |
否 |
K8s 服務 Service 配置。 |
[{"name": "test-svc-create","serviceType":"ClusterIP","portMappings":[{"servicePort": {"targetPort":8080,"port":80,"protocol":"TCP"}}]}] |
| AppTemplateName |
string |
否 |
建立應用使用的應用模版名稱,若建立應用時指定應用模版,則將優先使用應用模版和 AppConfig 參數確定應用配置,忽略其他配置。 |
app-template001 |
| AppConfig |
string |
否 |
使用應用模版時的應用配置,JSON 格式字串。 |
{} |
| LimitEphemeralStorage |
integer |
否 |
臨時儲存資源需求上限,單位:GB。設定 0 表示不限制。 |
4 |
| RequestsEphemeralStorage |
integer |
否 |
臨時儲存最小資源需求,單位:GB。設定 0 表示不限制。 |
2 |
| SecretName |
string |
否 |
使用者指定的鏡像拉取憑證名,需要自行建立相關 Secret 配置。 |
edas-app-01-image-secret |
| ContainerRegistryId |
string |
否 |
構建鏡像倉庫使用的倉庫 ID,留空表示使用 EDAS 提供的預設倉庫。當前只支援 EDAS 提供的預設倉庫。 |
leave empty |
| WorkloadType |
string |
否 |
建立應用時 Workload 的類型,目前僅支援 Deployment 類型。 |
Deployment |
| 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 |
| 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}} |
| FeatureConfig |
string |
否 |
自訂監控與治理方案配置 |
{"features":[{"name":"base.combination.arms","enable":true},{"name":"base.combination.mse","enable":true}]} |
| CustomAgentVersion |
string |
否 |
支援指定 Agent 版本 |
2.8.3,3.2.10,4.3.1 |
| SecurityContext |
string |
否 |
為應用 Pod 容器設定 SecurityContext 屬性。其值為 SecurityContext YAML 配置 base64 編碼後的值。 |
{"yamlEncoded":"cnVuQXNVc2VyOiAwCnJ1bkFzR3JvdXA6IDA="} |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
object |
介面響應。 |
||
| Code |
integer |
介面狀態或 POP 錯誤碼。 |
200 |
| Message |
string |
附加資訊。 |
success |
| RequestId |
string |
請求 ID。 |
b197-40ab-9155-**** |
| ApplicationInfo |
object |
應用詳情。 |
|
| ChangeOrderId |
string |
變更流程 ID,可調用 GetChangeOrderInfo 介面擷取,詳情請參見 GetChangeOrderInfo 。 |
cd65b247-****-475b-ad4b-7039040d625c |
| AppName |
string |
應用程式名稱。 |
test |
| Dockerize |
boolean |
是否為 Docker 應用。
|
true |
| Owner |
string |
負責人。 |
zp |
| EdasId |
string |
使用者帳號 ID。 |
1172****6608**** |
| ClusterType |
integer |
應用叢集環境類型如下:
|
5 |
| AppId |
string |
應用 ID,可通過調用 ListApplication 介面擷取,詳情請參見 ListApplication 。 |
e83acea6-****-47e1-96ae-c0e95377**** |
| UserId |
string |
使用者主帳號。 |
edas_test****@aliyun****.com |
| RegionId |
string |
地區 ID。 |
cn-beijing |
樣本
正常返回樣本
JSON格式
{
"Code": 200,
"Message": "success",
"RequestId": "b197-40ab-9155-****",
"ApplicationInfo": {
"ChangeOrderId": "cd65b247-****-475b-ad4b-7039040d625c",
"AppName": "test",
"Dockerize": true,
"Owner": "zp",
"EdasId": "1172****6608****",
"ClusterType": 5,
"AppId": "e83acea6-****-47e1-96ae-c0e95377****",
"UserId": "edas_test****@aliyun****.com",
"RegionId": "cn-beijing"
}
}
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。