StartK8sAppPrecheck - 开始K8s应用变更预检

调用StartK8sAppPrecheck接口开始K8s应用变更预检。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

当前API暂无授权信息透出。

请求语法

POST /pop/v5/k8s/app_precheck

请求参数

名称类型必填描述示例值
ClusterIdstring

集群 ID。

c37aec2a-bcca-4ec1-****-****
Namespacestring

K8s 集群的命名空间,它将决定您的应用部署在哪个 K8s 命名空间。默认为 default。

default
AppIdstring

应用 ID。

af58edcf-f7eb-****-****-db4e425f****
AppNamestring

应用名称。必须以字母开头,支持数字、字母和短划线(-),最多支持 36 个字符。

testapp
Replicasinteger

应用实例数。

2
LimitmCpuinteger

应用运行过程中,应用实例的 CPU 限额。 单位:毫核数,设置为 0 表示不限制。

1000
RequestsmCpuinteger

应用创建时,应用实例的 CPU 限额,单位:毫核数。

500
LimitMeminteger

应用运行过程中,应用实例的内存限额,单位:MB。LimitMem 取值要不小于 RequestsMem。

4096
RequestsMeminteger

应用创建时,应用实例的内存限额,单位:MB。设置为 0 时表示不限制。RequestsMem 的取值不能大于 LimitMem 的取值。

1024
LimitEphemeralStorageinteger

临时存储资源需求上限,单位:GB。设置 0 表示不限制。

4
RequestsEphemeralStorageinteger

临时存储最小资源需求,单位:GB。设置 0 表示不限制。

2
Envsstring

部署环境变量,格式需要符合 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"}}}]
EnvFromsstring

配置 K8s EnvFrom 类型的环境变量,将指定的 ConfigMap 或 Secret 挂载到指定目录,每个 key 对应目录下的一个文件,文件的内容为该 key 对应的 value。

EnvFroms 的配置参数说明如下:

  • configMapRef:ConfigMap 引用,该字段包括以下参数:

    name:ConfigMap 名称。

  • secretRef:Secret 引用,该字段包括以下参数:

    name:Secret 名称。

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

配置 K8s emptyDir 挂载,支持将 emptyDir 卷挂载到指定的容器目录。EmptyDirs 的配置参数说明如下:

  • mountPath:容器挂载路径,必填。
  • readOnly:是否只读,可选,true 为只读,false 为读写,默认为 false。
  • subPathExpr:子目录表达式,可选。
[{"mountPath":"/app-log","subPathExpr":"$(POD_IP)"},{"readOnly":true,"mountPath":"/etc/nginx"}]
JavaStartUpConfigstring

Java 启动参数用于在 Java 应用启动时配置启动参数。可配置:内存配置、应用、GC 策略、工具、服务注册和发现配置和自定义等配置,正确配置这些参数有助于降低垃圾回收(GC)开销,从而缩短服务器响应时间并提高吞吐量。参数格式为 JSON 字符串:original 为配置值,startup 为启动参数,系统将自动拼接所有的 startup 作为应用程序的 Java 启动参数。设置为"""{}"表示删除配置。JSON 中 key 取值如下:

  • InitialHeapSize:代表初始化堆大小。
  • MaxHeapSize:代表最大堆大小。
  • CustomParams:代表用户自定义内容,如 JVM -D 参数等。
  • 其它情况:可自行查看前端提交的 JSON 结构。
{"InitialHeapSize":{"original":512,"startup":"-Xms512m"},"MaxHeapSize":{"original":1024,"startup":"-Xmx1024m"}}
ConfigMountDescsstring

配置 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"}]
PvcMountDescsstring

配置 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}]}]
Annotationsstring

应用 Pod 注解。

{"annotation-name-1":"annotation-value-1","annotation-name-2":"annotation-value-2"}
Labelsstring

应用 Pod 标签。

{"label-name-1":"label-value-1","label-name-2":"label-value-2"}
ImageUrlstring

镜像 URL。

registry.cn-hangzhou.aliyuncs.com/mw/testapp:latest
PackageUrlstring

部署包地址。

https://e***.oss-cn-beijing.aliyuncs.com/s***-1.0-SNAPSHOT-spring-boot.jar
LocalVolumestring

宿主机文件挂载到容器内的配置。例如:\[{"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"}]
RegionIdstring

阿里云地域 ID。

cn-hangzhou
ComponentIdsstring

应用组件 ID。可通过查询组件列表接口 ListComponents 接口获取。当创建的应用运行环境使用 Apache Tomcat(适用于 WAR 包部署的 Dubbo 应用)或者标准 Java 应用运行环境(适用于 JAR 包部署的 Spring Boot 或 Spring Cloud 应用)时需要指定。

常用的应用组件 ID 及含义:

  • 4:Apache Tomcat 7.0.91。
  • 5:表示 OpenJDK 1.8.x。
  • 6:表示 OpenJDK 1.7.x。
  • 7:Apache Tomcat 8.5.42。

该参数需要更新 Java 或者 Python SDK 版本到 2.57.3 或以上版本才可以设置,未使用 EDAS 提供的 SDK 的(例如在使用 aliyun-python-sdk-core、aliyun-java-sdk-core、aliyun cli 等)用户可直接设置该参数。

7

返回参数

名称类型描述示例值
object

接口响应。

RequestIdstring

请求 ID。

7638276F-****-****-884F-54CC0BC84A8D
Codeinteger

接口状态或 POP 错误码。

200
Messagestring

附加信息 。

success
Dataobject

接口返回数据。

Jobsarray

任务列表及任务详情。

string

任务名称。

集群健康检查。

示例

正常返回示例

JSON格式

{
  "RequestId": "7638276F-****-****-884F-54CC0BC84A8D",
  "Code": 200,
  "Message": "success",
  "Data": {
    "Jobs": [
      "集群健康检查。"
    ]
  }
}

错误码

HTTP status code错误码错误信息描述
500Edas.errorcode.PermissionDenied.messageYou are not authorized to perform the operation.无权限操作

访问错误中心查看更多错误码。