最近更新时间:2023.11.22 19:14:01
首次发布时间:2022.11.07 19:55:17
为指定的集群安装组件。
{Creating, [Progressing]}
状态,直到安装成功,进入{Running, [Ok]}
状态。请调用 ListAddons 接口获取该组件当前的状态,查看组件是否安装成功。调用该 API 时的请求参数如下,除此之外还需传入公共请求参数。公共请求参数说明,请参见 公共参数。
参数名称 | 类型 | 是否必选 | 示例值 | 描述 |
---|---|---|---|---|
Action | String | 是 | CreateAddon | 公共参数,本接口值:CreateAddon。 |
Version | String | 是 | 2022-05-12 | 公共参数,本接口值:2022-05-12。 |
ClusterId | String | 是 | cc5silumrsf****** | 待安装组件的集群 ID。 注意 待安装组件的集群必须处于 |
Name | String | 是 | ingress-nginx | 待安装组件的名称。 |
Version | String | 否 | v0.44.0 | 待安装组件的版本。 |
DeployMode | String | 否 | Unmanaged | 部署模式,取值:
说明 若不传入参数值,当组件支持托管时,此处系统默认为 Managed;当组件不支持托管时,此处系统默认为 Unmanaged。 |
DeployNodeType | String | 否 | VirtualNode | 部署节点类型。仅
说明 若目标当前集群已安装了 vci-virtual-kubelet 组件,则此处默认值为 VirtualNode,否则默认值为 Node。 |
Config | String | 否 | 组件配置。详细配置说明,请参见下方 组件配置信息。 注意 仅 组件配置信息 中列出的组件需要配置该参数。其余组件无需配置。 | |
ClientToken | String | 否 | BC028527-33B9-4990-A633-84E9F9****** | 用于保证请求幂等性的字符串。该字符串由调用方传入,需保证不同请求之间唯一。ClientToken 对大小写敏感,且最大值不超过 64 个 ASCII 字符。 |
说明
仅支持在安装该组件时配置组件信息,不支持通过 UpdateAddonConfig 接口修改组件配置。
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
AccessKeyId | String | 否 | AKLTMWZkZWM****** | 当 |
AccessKeySecret | String | 否 | Wm1Rd09U****** | 当 |
Config 示例
{ "AccessKeyId": "AKLTMWZkZWM******", "AccessKeySecret": "Wm1Rd09U******" }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
CrCmData | Object | 是 | 镜像仓库免密组件配置信息。 | |
CrCmData.Namespace | String | 是 | * | 当前集群下可以免密拉取私有镜像的命名空间。默认值为* ,表示所有命名空间都可以免密拉取私有镜像;您也可以输入具体的命名空间名称,指定多个命名空间,多个名称之间以英文逗号(, )分隔。 |
CrCmData.ServiceAccount | String | 是 | * | 能够使用免密组件的 Kubernetes 中的服务账号。默认值为* ,表示已配置命名空间下的所有 ServiceAccount,都可以免密拉取私有镜像;您也可以输入具体的 ServiceAccount,可以指定多个 ServiceAccount,多个名称之间以英文逗号(, )分隔。 |
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" } ] } }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
AuthType | String | 是 | BasicAuth | VMP 工作区的认证鉴权方式,取值: |
BasicAuthUsername | String | 否 | admin | 配置 Basic Auth 认证时使用的用户名。该用户名需要与 VMP 工作区的配置一致。 |
BasicAuthPassword | String | 否 | password**** | 配置 Basic Auth 认证时使用的密码。该密码需要与 VMP 工作区的配置一致。 |
EnableNodeExporter | String | 是 | true | 是否安装 node-exporter 插件。取值:
|
RemoteWriteURL | String | 是 | http://xxx:yyy/workspaces/zzzz/api/v1/write | VMP 工作区 Remote Write URL 内网地址。Agent 通过此 URL 将指标存储到 VMP。 |
Config 示例
{ "AuthType": "BasicAuth", "BasicAuthUsername": "admin", "BasicAuthPassword": "password****", "EnableNodeExporter": "true", "RemoteWriteURL": "http://xxx:yyy/workspaces/zzzz/api/v1/write" }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
promReplicas | Integer | 是 | 1 | PrometheusScraper 实例个数。单实例支持 10 万条数据/分钟,所需资源为 1 核 CPU 2GB 内存。一般情况下实例数为 1 可满足需求。如果集群每分钟产生 30 万条数据,请将实例数设置为 3。 说明 PrometheusScraper 默认以 Deployment 方式部署。 |
otelReplicas | Integer | 是 | 1 | OpenTelemetryCollector 实例个数。单实例支持 1 万条 trace/秒,所需资源为 1 核 CPU 2GB 内存。一般情况下实例数为 1 可满足需求。如果集群每秒产生 3 万条 trace,请将实例数设置为 3。 说明 OpenTelemetryCollector 默认以 Statefulset 方式部署。 |
Config 示例
{ "promReplicas": 1, "otelReplicas": 1 }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
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 }
说明
仅支持在安装该组件时配置组件信息,不支持通过 UpdateAddonConfig 接口修改组件配置。
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
AccessKeyId | String | 否 | AKLTMWZkZWM****** | 当 |
AccessKeySecret | String | 否 | Wm1Rd09U****** | 当 |
ProjectId | String | 是 | 4611ffdsa8-9716--** | 关联该用户账号在集群所处地域下,已存在的日志项目 ID。 |
TopicId | String | 是 | f8fsdb36-9fae-461e--** | 日志项目下,已存在的日志主题 ID。 |
Config 示例
{ "ProjectId": "4611ffdsa8-9716-****-******", "TopicId": "f8fsdb36-9fae-461e-****-******", "AccessKeyId": "AKLTMWZkZWM******", "AccessKeySecret": "Wm1Rd09U******" }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
NodePolicy | String | 是 | spread | 节点调度策略,取值:
|
ResourceWeights | Array of ResourceWeight | 否 | [] | binpack/spread 的资源权重。子参数说明,请参见下方表格 ResourceWeight。 |
GPUShareCardPolicy | String | 是 | binpack | GPU 显卡的调度策略:
若您的工作负载中存在 GPU 计算型节点和 GPU 显卡的情况下,NodePolicy 和 GPUShareCardPolicy 的组合方式说明,请参见 配置调度器自定义参数。 |
PodTopologySpreadWeight | Integer | 否 | 2 | 原生 PodTopologySpread 调度策略的打分权重,分值越高拓扑打散调度的优先级越高,Pod 越大几率被调度到分散的拓扑区域。
|
PluginsCapacityScheduling | Boolean | 否 | false | 【邀测·申请试用】是否开启 Capacity 调度。Capacity 调度通过弹性配额实现多租户间的资源共享,提升整体资源的利用率。
说明 Capacity 调度相关说明,请参见 Capacity 调度。 |
GangSchedulingEnabled | Boolean | 否 | false | 【邀测·申请试用】是否开启 Gang 调度。Gang 调度满足 All-or-Nothing 调度场景,即一组需要同时调度的 Pod 要么全部调度成功,要么一个都不成功。
说明 Gang 调度相关说明,请参见 Gang 调度。 |
ResourcePolicySchedulingEnabled | Boolean | 否 | false | 【邀测·申请试用】是否开启弹性资源优先级调度。弹性资源优先级调度通过自定义资源策略(ResourcePolicy),设置工作负载的 Pod 被弹性调度到不同类型节点(例如包年包月 ECS、按量付费 ECS、虚拟节点)的顺序。
注意
|
ResourcePolicyWeight | Integer | 否 | 100 | 仅 ResourcePolicyScheduling 开启时有效。设定弹性资源优先级调度的打分权重,权重越大得分越高。
|
LoadAwareSchedulingEnabled | Boolean | 否 | false | 【邀测·申请试用】是否开启负载感知调度。负载感知调度根据节点实际资源负载进行调度,避免出现因单个节点负载过高而导致的应用程序或节点故障。
说明 负载感知调度的使用方法,请参见 负载感知调度。 |
NumaAwareSchedulingEnabled | Boolean | 否 | false | 【邀测·申请试用】是否开启拓扑感知调度。拓扑感知调度提供中心调度器与单机协作的拓扑感知调度能力,为负载提供更好的性能。
说明 拓扑感知调度的使用方法,请参见 拓扑感知调度。 |
ResourceWeight
说明
Name 和 Weight 的更多配置说明,请参见 配置调度器自定义参数。
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
Name | String | 是 | CPU | 枚举值:
|
Weight | Integer | 是 | 100 | 取值范围为[1,10],默认值为:
|
Config 示例
{ "NodePolicy": "spread", "GPUShareCardPolicy": "binpack", "PluginsCapacityScheduling": false }
配置内容
负载均衡产品限制和相关参数的详细说明,请参见 负载均衡文档。
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
Replica | Integer | 是 | 1 | 负载均衡实例个数。 |
Resource | Object | 是 | Nginx 资源配置。 | |
Resource.Request | Object | 是 | 请求资源配置。 | |
Resource.Request.Cpu | String | 是 | 0.25 | CPU 资源请求,单位为 Core。 |
Resource.Request.Memory | String | 是 | 512Mi | 内存资源请求,单位为 MiB 或 GiB,格式为:内存请求+单位 ,例如512Mi 表示内存资源请求为 512 MiB;2Gi 表示内存资源请求为 2 GiB。 |
Resource.Limit | Object | 是 | 资源上限配置。 | |
Resource.Limit.Cpu | String | 是 | 0.5 | CPU 资源上限,单位为 Core。 |
Resource.Limit.Memory | String | 是 | 1024Mi | 内存资源上限,单位为 MiB 或 GiB,格式为:内存上限+单位 ,例如1024Mi 表示内存资源上限为 1024 MiB;2Gi 表示内存资源上限为 2 GiB。 |
PublicNetwork | Object | 否 | 负载均衡公网配置。 | |
PublicNetwork.LanType | String | 是 | BGP | 为负载均衡提供公网服务的线路类型,不同类型的线路在性能和计费标准上存在差异。当前仅支持 BGP(多线)。 |
PublicNetwork.BandWidthLimit | Integer | 是 | 10 | 公网类型负载均衡的带宽上限,单位为 Mbps,取值范围:
|
PublicNetwork.IpVersion | String | 是 | IPV4 | 公网类型负载均衡 IP 地址版本类型。当前仅支持 IPV4。 |
PublicNetwork.BillingType | Integer | 是 | 3 | 公网类型负载均衡的计费方式,取值:
|
PublicNetwork.SubnetId | String | 是 | subnet-3rei******* | 公网类型负载均衡的子网 ID。 |
PrivateNetwork | Object | 否 | 私网负载均衡配置。 | |
PrivateNetwork.IpVersion | String | 是 | IPV4 | 私网类型负载均衡 IP 地址版本类型。当前仅支持 IPV4。 |
PrivateNetwork.SubnetId | String | 是 | subnet-3rei******* | 私网类型负载均衡的子网 ID。 |
Config 示例
{ "Replica": 1, "Resource": { "Request": { "Cpu": "0.25", "Memory": "512Mi" }, "Limit": { "Cpu": "0.5", "Memory": "1024Mi" } }, "PublicNetwork": { "LanType": "BGP", "BandWidthLimit": 10, "IpVersion": "IPV4", "BillingType": 2, "SubnetId": "subnet-3rei*******" }, "PrivateNetwork": { "SubnetId": "", "IpVersion": "" } }
说明
P2P 加速功能,目前是处于 公测 阶段。
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
Region | String | 是 | cn-beijing | 已开启 P2P 加速的镜像仓库实例所在地域。 |
Registry | String | 是 | helm-cr | 已开启 P2P 加速的镜像仓库实例。 |
NydusEnabled | Boolean | 是 | true | 【邀测·申请试用】是否同步开启镜像懒加载功能。开启后,需要安装 image-accelerator 容器镜像加速组件一同使用。镜像懒加载功能相关信息,请参见 容器镜像懒加载方案。 |
AccessKeyId | String | 否 | AKLTMWZkZWM****** | 当 |
AccessKeySecret | String | 否 | Wm1Rd09U****** | 当 |
DaemonProxyReplicas | Integer | 否 | 3 | 自定义设置 Dfdaemon(P2P 网络传输节点)Proxy 容器数量,默认值:3。 |
Config 示例
{ "Region": "cn-beijing", "Registry": "helm-cr", "NydusEnabled": true }
说明
【邀测·申请试用】:该组件目前处于邀测阶段,如需使用,请提交申请。
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
ExporterDisabled | Boolean | 否 | true | 是否禁用容器共享 GPU 的资源监控插件 mgpu-exporter:
|
Config 示例
{ "ExporterDisabled": true }
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
EnableExporter | Boolean | 是 | true | 是否安装 Nvidia GPU 资源监控插件 dcgm-exporter:
|
Config 示例
{ "EnableExporter": true }
说明
配置内容
配置名称 | 参数类型 | 是否必传 | 示例 | 描述 |
---|---|---|---|---|
AuthType | String | 是 | EcsRole | VMP 工作区的认证鉴权方式,取值: |
Config 示例
{ "AuthType": "EcsRole" }
POST /?Action=CreateAddon&Version=2022-05-12 HTTP/1.1 Content-Type:application/json { "ClusterId": "cc5silumrsf******", "Name": "ingress-nginx", "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": "vke", "Region": "cn-beijing" }, "Result": {} }
本接口错误码如下表所示,公共错误码请参见 公共错误码。
HTTP 状态码 | 错误码 | 错误信息 | 描述 |
---|---|---|---|
400 | OperationDenied.NetworkMode | The specified addon is not compatible with the current network mode. | 当前容器网络模式(PodNetworkModes)不支持安装组件。请确认目标集群的容器网络模型,并调用 ListSupportedAddons 接口,确认待安装组件支持的容器网络模型后重试。 |
400 | OperationDenied.DeployMode | The specified deploy mode is not supported. | 当前部署模式(DeployMode)不支持安装组件。请调用 ListSupportedAddons 接口,确认待安装组件的部署模式后重试。 |
400 | OperationDenied.DeployNodeType | The specified deploy node type is not supported. | 当前部署节点类型(DeployNodeType)不支持,请调用 ListSupportedAddons 接口,确认待安装组件的部署节点类型后重试。 |
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. | 指定的资源不支持安装。请调用 ListSupportedAddons 接口,确认可安装组件列表后重试。 |
409 | AlreadyExists.{{parameter}} | The specified {{resourceType}} {{resourceId}} has already been included. | 指定资源已存在,例如同名组件已安装。 |