本接口用于为指定的集群安装组件。
{Creating, [Progressing]}
状态,直到安装成功,进入{Running, [Ok]}
状态。有关状态说明,请参见资源状态说明。下表列出了接口特定的请求参数以及公共请求参数 Action 和 Version。 其他公共参数,请参见公共参数。
参数名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateAddon | 公共参数。该参数表示接口名称。 本接口取值为 |
Version | String | 是 | 2021-03-03 | 公共参数。该参数表示接口版本。 本接口取值为 |
ClusterId | String | 是 | cc5silumrsf****** | 待安装组件的集群 ID。 说明 待安装组件的集群必须处于 |
Name | String | 是 | "nvidia-device-plugin" | 待安装组件的名称。 |
Version | String | 否 | "v0.44.0" | 待安装组件的版本。 |
DeployMode | String | 否 | "Unmanaged" | 部署模式,取值:
可以调用获取组件列表及详情接口,获取待安装组件的托管模式。 说明 若不传入参数值,当组件支持托管时,此处系统默认为 Managed;当组件不支持托管时,此处系统默认为 Unmanaged。 |
DeployNodeType | String | 否 | "VirtualNode" | 部署节点类型。仅
说明 若目标当前集群已安装了 vci-virtual-kubelet 组件,则此处默认值为 VirtualNode,否则默认值为 Node。 |
Config | String | 否 | {"xxx":"true"} | 组件配置。详细配置说明,请参见下方组件配置信息。 说明 仅组件配置信息中列出的组件需要配置该参数。其余组件无需配置。 |
ClientToken | String | 否 | BC028527-33B9-4990-A633-84E9F9****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
组件配置信息为空。
Config示例:
{}
组件配置信息为空。
Config示例:
{}
组件配置信息为空。
Config示例:
{}
配置内容:
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
CrCmData | Object | 是 | 镜像仓库免密组件配置信息。 | |
CrCmData.Namespace | String | 是 | 当前集群下可以免密拉取私有镜像的命名空间。默认值为 | |
CrCmData.ServiceAccount | String | 是 | 能够使用免密组件的 Kubernetes 中的服务账号。默认值为 | |
CrCmData.Registry | Array | 是 | 镜像仓库实例配置信息。 | |
CrCmData.Registry.0.Instance | String | 是 | cr-basic | 可以免密拉取私有镜像的目标镜像仓库实例名称。 说明
|
CrCmData.Registry.0.Region | String | 是 | cn-beijing | 目标镜像仓库实例所在的地域。 |
Config 示例:
{ "CrCmData": { "Namespace": "*", "ServiceAccount": "*", "Registry": [ { "Instance": "cr-basic", "Region": "cn-beijing" } ] } }
配置内容:
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
Expander | String | 是 | random | 节点自动扩容时所采用的扩容策略类型。支持如下几种类型:
|
ScaleDownEnabled | Boolean | 是 | false | 是否自动缩容,取值:
|
ScaleDownUtilizationThreshold | Float | 否 | 0.5 | 缩容阈值,取值范围:[0,1]。 |
ScaleDownUnneededTime | Integer | 否 | 1 | 缩容触发时延,取值范围:[1,60],单位:分钟。 |
ScaleDownDelayAfterAdd | Integer | 否 | 1 | 扩容后缩容冷却时间,取值范围:[1,60],单位:分钟。 |
ScaleDownDelayAfterFailure | Integer | 否 | 1 | 缩容失败冷却时间,取值范围:[1,60],单位:分钟。 |
MaxEmptyBulkDelete | Integer | 否 | 5 | 最大并发缩容数,取值范围:[1,15],单位:分钟。 |
SkipNodesWithLocalStorage | Boolean | 否 | true | 触发缩容时是否跳过包含本地存储 Pod 的节点。
当 |
SkipNodesWithSystemPods | Boolean | 否 | true | 触发缩容时是否跳过包含 kube-system 命名空间下非 DaemonSet 管理的 Pod 节点。取值:
当 |
Config 示例:
{ "Expander": "random", "ScaleDownEnabled": true, "ScaleDownUtilizationThreshold": 0.5, "ScaleDownUnneededTime": 1, "ScaleDownDelayAfterAdd": 1, "ScaleDownDelayAfterFailure": 1, "MaxEmptyBulkDelete": 5, "SkipNodesWithLocalStorage": true, "SkipNodesWithSystemPods": true }
配置内容:
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
EnableExporter | Boolean | 是 | true | 是否安装 Nvidia GPU 资源监控插件 dcgm-exporter:
|
Config 示例:
{ "EnableExporter": true }
POST /?Action=CreateAddon&Version=2021-03-03 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": "2021-03-03", "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. | 指定资源已存在,例如同名组件已安装。 |