全部產品
Search
文件中心

:DeployK8sApplication - 部署K8s應用

更新時間:Oct 29, 2025

在Container ServiceK8s叢集或Serverless K8s叢集中部署應用。

調試

您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。

調試

授權資訊

下表是API對應的授權資訊,可以在RAM權限原則語句的Action元素中使用,用來給RAM使用者或RAM角色授予調用此API的許可權。具體說明如下:

  • 操作:是指具體的許可權點。

  • 存取層級:是指每個操作的存取層級,取值為寫入(Write)、讀取(Read)或列出(List)。

  • 資源類型:是指操作中支援授權的資源類型。具體說明如下:

    • 對於必選的資源類型,用前面加 * 表示。

    • 對於不支援資源級授權的操作,用全部資源表示。

  • 條件關鍵字:是指雲產品自身定義的條件關鍵字。

  • 關聯操作:是指成功執行操作所需要的其他許可權。操作者必須同時具備關聯操作的許可權,操作才能成功。

操作

存取層級

資源類型

條件關鍵字

關聯操作

edas:ManageApplication

update

*Application

acs:edas:{#regionId}:{#accountId}:namespace/{#NameSpaceId}/application/{#AppId}

請求文法

POST /pop/v5/k8s/acs/k8s_apps HTTP/1.1

請求參數

名稱

類型

必填

描述

樣本值

PreStop

string

停止前執行指令碼,樣本格式:{"tcpSocket":{"host":"", "port":8080}}。 如果設定為{}代表刪除,不設定表示忽略。

{ "exec":{ "command":[ "ls", "/" ] } }

Envs

string

部署環境變數,格式需要符合 JSON 對象數組。支援三種類型的環境變數,分別是普通環境變數,K8s ConfigMap 環境變數,K8s Secret 環境變數。普通環境變數格式如下所示:

{"name":"x", "value": "y"}

ConfigMap 環境變數配置可以將指定的 ConfigMap 中對應的 key 的值注入到容器的環境變數中,配置的格式如下所示:

{ "name": "x2", "valueFrom": { "configMapKeyRef": { "name": "my-config", "key": "y2" } } }

Secret 環境變數配置可以將指定的 Secret 中對應的 key 的值注入到容器的環境變數中,配置的格式如下所示:

{ "name": "x3", "valueFrom": { "secretKeyRef": { "name": "my-secret", "key": "y3" } } }

說明

如果要取消該配置,需設定一個空 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":\["cat","/etc/group"\]}}。如果設定為{}表示刪除,不設定表示忽略。

{ "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"}\]}}。如果設定為""或者{}表示刪除,不設定表示忽略。

{"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}}。如果設定為""或者{}表示刪除,不設定表示忽略。

{"failureThreshold": 3,"initialDelaySeconds": 5,"successThreshold": 1,"timeoutSeconds": 1,"tcpSocket":{"host":"", "port":8080}}

Args

string

容器啟動 Args 命令參數,格式必須符合 JSON 數組\["參數 1","參數 2"\],其中 key 固定為字串,清空需設定為空白 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"}\]。其中,nasPath 是指檔案儲存路徑;mountPath 是指掛載到容器內的路徑。

[{"nasPath": "/k8s","mountPath": "/mnt"},{"nasPath": "/files","mountPath": "/app/files"}]

StorageType

string

NAS 儲存類型,包括:

  • 通用型 NAS:Capacity(容量型)、Performance(效能型)

  • 極速型 NAS:standard(標準型)、advance(進階型)

目前只支援 Performance 類型。

Performance

LocalVolume

string

宿主機檔案掛載到容器內的配置。例如:\[{"type":"","nodePath":"/localfiles","mountPath":"/app/files"},{"type":"Directory","nodePath":"/mnt","mountPath":"/app/storage"}\]。其中,nodePath 為宿主機路徑;mountPath 為容器內的路徑;type 為掛載類型。

[{"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

分批發布策略

  • 例 1:灰階 1 台+後續分 2 批+自動分批+分批間隔 1 分鐘。 {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":1},"grayUpdate":{"gray":1}}

  • 例 2:灰階 1 台+後續分 2 批+手動分批。 {"type":"GrayBatchUpdate","batchUpdate":{"batch":2,"releaseType":"manual"},"grayUpdate":{"gray":1}}

  • 例 3:分 2 批+自動分批+分批間隔 0 分鐘。 {"type":"BatchUpdate","batchUpdate":{"batch":2,"releaseType":"auto","batchWaitTime":0}}

{"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:普通容器運行時。

  • runv:安全沙箱容器。

該參數僅適用於使用安全沙箱容器的叢集。

runc

DeployAcrossZones

string

是否將應用執行個體分布到多可用性區域。true 為是,其他值為否。

true

BatchTimeout

integer

單批發布逾時時間,單位:秒。

60

EnableAhas

boolean

是否接入 AHAS。

true

WebContainerConfig

string

Tomcat 容器配置,設定為"""{}"表示刪除配置:

  • useDefaultConfig:是否使用自訂配置,若為 true,則表示不使用自訂配置,若為 false,則表示使用自訂配置。若不使用自訂配置,則下面的參數配置將不會生效。

  • contextInputType:選擇應用的訪問路徑。

    • war:無需填寫自訂路徑,應用的訪問路徑是 WAR 包名稱。

    • root:無需填寫自訂路徑,應用的訪問路徑是/。

    • custom:需要在下面的自訂路徑中填寫自訂的路徑。

  • contextPath:自訂路徑,當 contextInputType 類型為 custom 時,才需要配置此參數。

  • httpPort:連接埠範圍為 1024~65535,小於 1024 的連接埠需要 Root 許可權才能操作。因為容器配置的是 Admin 許可權,所以請填寫大於 1024 的連接埠。如果不配置,則預設為 8080。

  • maxThreads:配置串連池的串連數大小,預設大小是 400。

    說明

    此項配置對應用效能有很大影響,請由專業人士配置。

  • uriEncoding:Tomcat 的編碼格式,包括 UTF-8、ISO-8859-1、GBK 和 GB2312。如果不設定則預設為 ISO-8859-1。

  • useBodyEncoding:是否使用 BodyEncoding for URL。

  • useAdvancedServerXml:是否使用進階配置自訂設定server.xml檔案,當上述參數類型和具體參數無法滿足您的需求時,可以選中使用進階設定,直接編輯 Tomcat 的Server.xml檔案。

  • serverXml:進階配置中自訂設定的server.xml文字檔內容,當 useAdvancedServerXml 為 true 時生效。

{"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 配置,設定為"""{}"表示刪除配置:

  • Configs:

    • type:採集類型,檔案類型為 file,標準輸出類型為 stdout。

    • Logstore:logstore 名稱。請確保 Logstore 名稱在同一個叢集中不重複,其命名應符合規則:

      • Logstore 名稱僅支援小寫字母、數字、短劃線(-)和底線(_)。

      • 必須以小寫字母和數字開頭和結尾。

      • 名稱長度為 3~63 個字元。若為空白,則由系統自動產生。

    • LogDir:若為標準輸出類型,則採集路徑為 stdout.log,若為檔案類型,則為採集的檔案路徑,支援通配,採集路徑應符合正則:^/(.+)/(.*)^/$

[{"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:PVC 卷名稱,PVC 卷必須已經存在,且處於 Bound 狀態。

  • mountPaths:掛載目錄列表,支援配置多個掛載目錄。每個掛載目錄支援以下兩個配置參數:
    • mountPath:掛載路徑,以正斜線(/)開頭的容器絕對路徑。

    • readOnly:掛載模式,true 為唯讀,false 為可讀寫,預設為 false。

[{"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:ConfigMap 或 Secret 的名稱。

  • type:配置類型,支援 ConfigMap 和 Secret 兩種類型。

  • mountPath:掛載路徑,以正斜線(/)開頭的容器絕對路徑。

[ { "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 的配置參數說明如下。

  • configMapRef:ConfigMap 引用,該欄位包括以下參數:
    • name:ConfigMap 名稱。

  • secretRef:Secret 引用,該欄位包括以下參數:
    • name:Secret 名稱。

[{"name":"appname","valueFrom":{"configMapKeyRef":{"name":"appconf","key":"name"}}}]

EmptyDirs

string

配置 K8s emptyDir 掛載,支援將 emptyDir 卷掛載到指定的容器目錄。EmptyDirs 的配置參數說明如下:

  • mountPath:容器掛載路徑,必填。

  • readOnly:是否唯讀,可選,true 為唯讀,false 為讀寫,預設為 false。

  • subPathExpr:子目錄運算式,可選。

[{"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 構建包號:

  • 如果部署時不需要更改 EDAS-Container 版本,則該參數可不設定。

  • 如果需要在本次部署時,更新目標應用的 EDAS-Container 版本,則需要設定。

有以下兩種擷取方式:

  • 可通過查詢容器版本列表介面 ListBuildPack 擷取,請參見 ListBuildPack

  • 容器版本說明表格中的構建包序號列擷取。例如59表示EDAS-Container 3.5.8 版本

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

是否開啟推空保護:

  • true:開啟推空保護。

  • false:不開啟推空保護。

false

EnableLosslessRule

boolean

是否啟用無損上線規則:

  • true:啟用無損上線規則。

  • false:不啟用無損上線規則。

true

LosslessRuleWarmupTime

integer

服務預熱時間長度,單位:秒。取值範圍為 0~86400 秒。

120

LosslessRuleDelayTime

integer

服務延遲註冊時間長度,單位:秒。取值範圍為 0~86400 秒。

0

LosslessRuleFuncType

integer

服務預熱曲線。取值範圍 0~20。預設為 2(適合於一般預熱情境),表示在預熱周期內服務提供者的流量接收曲線形狀呈 2 次曲線形狀。

2

LosslessRuleAligned

boolean

是否啟用無損滾動發布模式配置通過就緒檢查前完成服務註冊:

  • true:開啟開關會為應用無侵入提供 55199 連接埠和/health 路徑的健全狀態檢查方式,當完成服務註冊後,該介面返回 200,否則返回 500。

說明

若同時配置LosslessRuleRelated為 true,則該介面檢查是否完成服務預熱。

  • false:不為應用提供檢查是否完成服務註冊的介面。

false

LosslessRuleRelated

boolean

是否啟用無損滾動發布模式配置通過就緒檢查前完成服務預熱:

  • true:開啟開關會為應用無侵入提供 55199 連接埠和/health 路徑的健全狀態檢查方式,當完成服務預熱後,該介面返回 200,否則返回 500。

  • false:不為應用提供檢查是否完成服務預熱的介面。

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 部署時有效,輸入範例:

  • 指定 x86 64 架構:linux/amd64

  • 指定 arm 64 架構:linux/arm64

  • 指定構建雙架構鏡像:linux/amd64,linux/arm64

  • 不輸入:預設架構

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*****"
}

錯誤碼

訪問錯誤中心查看更多錯誤碼。

變更歷史

更多資訊,參考變更詳情