You need to enable JavaScript to run this app.
导航
安装组件
最近更新时间:2023.10.11 17:27:08首次发布时间:2023.08.24 19:59:30

本接口用于为指定的集群安装组件。

使用说明

  • 调用该接口前,请先调用获取组件列表及详情接口,获取您待安装组件的安装模式(DeployMode),配置模板(Config),对应的版本(Version)等参数值,以减少不必要的安装失败。
  • 此接口为异步接口,当此接口返回成功时,组件将进入{Creating, [Progressing]}状态,直到安装成功,进入{Running, [Ok]}状态。有关状态说明,请参见资源状态说明

请求参数

下表列出了接口特定的请求参数以及公共请求参数 Action 和 Version。 其他公共参数,请参见公共参数

参数名称

类型

是否必选

示例值

描述

Action

String

CreateAddon

公共参数。该参数表示接口名称。 本接口取值为CreateAddon

Version

String

2022-05-12

公共参数。该参数表示接口版本。 本接口取值为2022-05-12

ClusterId

String

cc5silumrsf******

待安装组件的集群 ID。
可以调用获取集群列表及详情接口,获取集群 ID。

说明

待安装组件的集群必须处于{Running,[*]}状态。可调用获取集群列表及详情接口获取集群当前的状态。

Name

String

"nvidia-device-plugin"

待安装组件的名称。
容器服务当前支持的组件名称,请调用获取组件列表及详情获取。

Version

String

"v0.44.0"

待安装组件的版本。
可以调用获取组件列表及详情接口,获取待安装组件的版本。

DeployMode

String

"Unmanaged"

部署模式,取值:

  • Unmanaged:非托管模式部署。
  • Managed:托管模式部署。

可以调用获取组件列表及详情接口,获取待安装组件的托管模式。

说明

若不传入参数值,当组件支持托管时,此处系统默认为 Managed;当组件不支持托管时,此处系统默认为 Unmanaged

DeployNodeType

String

"VirtualNode"

部署节点类型。仅DeployModes=Unmanaged时,才需要指定该参数。取值:

  • Node:以节点(云服务器)方式部署。
  • VirtualNode:以虚拟节点(弹性容器实例)方式部署。

说明

若目标当前集群已安装了 vci-virtual-kubelet 组件,则此处默认值为 VirtualNode,否则默认值为 Node
请调用获取组件列表及详情接口,获取当前集群已安装的组件,

Config

String

{"xxx":"true"}

组件配置。详细配置说明,请参见下方组件配置信息

说明

组件配置信息中列出的组件需要配置该参数。其余组件无需配置。

ClientToken

String

BC028527-33B9-4990-A633-84E9F9******

用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。

组件配置信息

yurt-app-manager

组件配置信息为空。
Config示例:

{}

metrics-server

组件配置信息为空。
Config示例:

{}

metrics

组件配置信息为空。
Config示例:

{}

cr-credential-controller

配置内容:

配置名称

参数类型

是否必传

示例

描述

CrCmData

Object

镜像仓库免密组件配置信息。

CrCmData.Namespace

String

当前集群下可以免密拉取私有镜像的命名空间。默认值为*,表示所有命名空间都可以免密拉取私有镜像;您也可以输入具体的命名空间名称,指定多个命名空间,多个名称之间以英文逗号(,)分隔。

CrCmData.ServiceAccount

String

能够使用免密组件的 Kubernetes 中的服务账号。默认值为*,表示已配置命名空间下的所有 ServiceAccount,都可以免密拉取私有镜像;您也可以输入具体的 ServiceAccount,可以指定多个 ServiceAccount,多个名称之间以英文逗号(,)分隔。

CrCmData.Registry

Array

镜像仓库实例配置信息。

CrCmData.Registry.0.Instance

String

cr-basic

可以免密拉取私有镜像的目标镜像仓库实例名称。
可以调用 ListRegistries 接口,获取镜像仓库名称。

说明

  • 可选同一个地域中的一个或多个镜像仓库实例。
  • 该镜像仓库实例中,后续新推送的私有镜像也能被免密拉取。

CrCmData.Registry.0.Region

String

cn-beijing

目标镜像仓库实例所在的地域。

Config 示例:

{
  "CrCmData": {
    "Namespace": "*",
    "ServiceAccount": "*",
    "Registry": [
      {
        "Instance": "cr-basic",
        "Region": "cn-beijing"
      }
    ]
  }
}

cluster-autoscaler

配置内容:

配置名称

参数类型

是否必传

示例

描述

Expander

String

random

节点自动扩容时所采用的扩容策略类型。支持如下几种类型:

  • random(默认值):随机选择一个节点池进行扩容。
  • most-pods:选择能够调度最多 Pods 的节点池进行扩容。
  • least-waste:选择 CPU 资源最少的空闲节点池进行扩容。
  • priority:选择所设优先级最高的节点池进行扩容。

ScaleDownEnabled

Boolean

false

是否自动缩容,取值:

  • true,开启自动缩容。开启后,集群中有较多空闲节点资源时会触发缩容。仅对 按量计费 节点资源生效。
  • false:(默认值)不开启自动缩容。

ScaleDownUtilizationThreshold

Float

0.5

缩容阈值,取值范围:[0,1]。
ScaleDownEnabled=true时必须传入。

ScaleDownUnneededTime

Integer

1

缩容触发时延,取值范围:[1,60],单位:分钟。
ScaleDownEnabled=true时必须传入。

ScaleDownDelayAfterAdd

Integer

1

扩容后缩容冷却时间,取值范围:[1,60],单位:分钟。
ScaleDownEnabled=true时必须传入。

ScaleDownDelayAfterFailure

Integer

1

缩容失败冷却时间,取值范围:[1,60],单位:分钟。
ScaleDownEnabled=true时必须传入。

MaxEmptyBulkDelete

Integer

5

最大并发缩容数,取值范围:[1,15],单位:分钟。
ScaleDownEnabled=true时必须传入。

SkipNodesWithLocalStorage

Boolean

true

触发缩容时是否跳过包含本地存储 Pod 的节点。
取值:

  • true:(默认值)跳过。
  • false:不跳过。

ScaleDownEnabled=true时必须传入。

SkipNodesWithSystemPods

Boolean

true

触发缩容时是否跳过包含 kube-system 命名空间下非 DaemonSet 管理的 Pod 节点。取值:

  • true:(默认值)跳过。
  • false:不跳过。

ScaleDownEnabled=true时必须传入。

Config 示例:

{
  "Expander": "random",
  "ScaleDownEnabled": true,
  "ScaleDownUtilizationThreshold": 0.5,
  "ScaleDownUnneededTime": 1,
  "ScaleDownDelayAfterAdd": 1,
  "ScaleDownDelayAfterFailure": 1,
  "MaxEmptyBulkDelete": 5,
  "SkipNodesWithLocalStorage": true,
  "SkipNodesWithSystemPods": true
}

nvidia-device-plugin

配置内容:

配置名称

参数类型

是否必传

示例

描述

EnableExporter

Boolean

true

是否安装 Nvidia GPU 资源监控插件 dcgm-exporter:

  • true:(默认值)安装插件,使用 Prometheus 监控功能监控 Nvidia GPU 相关的指标。
  • false:不安装。您可以安装自己的监控 Exporter,监控 Nvidia GPU 相关的指标

Config 示例:

{
  "EnableExporter": true
}

请求示例

POST /?Action=CreateAddon&Version=2022-05-12 HTTP/1.1
Content-Type:application/json
 {
    "ClusterId": "cc5silumrsf******",
    "Name": "nvidia-device-plugin",
    "DeployMode": "Unmanaged",
    "DeployNodeType": ["VirtualNode"],
    "Config": "{\"Replica\":1,\"Resource\":{\"Request\":{\"Cpu\":\"0.25\",\"Memory\":\"512Mi\"},\"Limit\":{\"Cpu\":\"0.5\",\"Memory\":\"1024Mi\"}},\"PrivateNetwork\":{\"SubnetId\":\"subnet-2d61qn69iji****\",\"IpVersion\":\"IPV4\"}}",
    "ClientToken": "BC028527-33B9-4990-A633-84E9F9******"
} 

返回参数


返回示例

HTTP/1.1 200 OK
Content-Type:application/json
{
        "ResponseMetadata": {
                "RequestId": "021635330810134****",
                "Action": "CreateAddon",
                "Version": "2022-05-12",
                "Service": "veecp_openapi",
                "Region": "cn-beijing"
        },
        "Result": {}
}

错误码

本接口错误码如下表所示,其他错误码请参见错误码

HTTP 状态码

错误码

错误信息

描述

400

OperationDenied.NetworkMode

The specified addon is not compatible with the current network mode.

当前容器网络模式(PodNetworkModes)不支持安装组件。请确认目标集群的容器网络模型,并调用获取组件列表及详情接口,确认待安装组件支持的容器网络模型后重试。

400

OperationDenied.DeployMode

The specified deploy mode is not supported.

当前部署模式(DeployMode)不支持安装组件。请调用获取组件列表及详情接口,确认待安装组件的部署模式后重试。

400

OperationDenied.DeployNodeType

The specified deploy node type is not supported.

当前部署节点类型(DeployNodeType)不支持,请调用获取组件列表及详情接口,确认待安装组件的部署节点类型后重试。

400

OperationDenied.ClusterStatus

The action has been denied due to wrong cluster status {{statusPhase}} and {{statusConditions}}.

当前集群状态不支持安装组件。请确认该接口依赖的集群状态后重试。

400

NotSupported.{{parameter}}

The specified {{resourceType}} {{resourceContent}} is not supported.

指定的资源不支持安装。请调用获取组件列表及详情接口,确认可安装组件列表后重试。

409

AlreadyExists.{{parameter}}

The specified {{resourceType}} {{resourceId}} has already been included.

指定资源已存在,例如同名组件已安装。