创建集群时指定要安装的插件
创建集群时,可在请求Body体中metadata字段的annotations中添加键值对,Key为cluster.install.addons/install,Value为AddonTemplate的json列表字符串。
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Value | 是 | Json Array of AddonTemplate String. | 集群待安装的插件。若不设置,kubernetes 1.13及以下版本的集群默认安装CoreDNS、storage-driver插件,kubernetes 1.15及以上版本的集群默认安装CoreDNS、everest、npd,详情请参见表2。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| addonTemplateName | 是 | String | 插件名。 取值为:coredns、autoscaler、gpu-beta、storage-driver |
| version | 否 | String | 插件版本。 可登录CCE控制台,在“插件管理”中单击插件名称,在插件详情页面的“版本记录”页签中查看。若不配置,默认使用最新版本。 |
| values | 否 | Json Map | 安装插件所需设置的参数。 说明: 安装storage-driver插件不需要设置此参数。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| flavor | 是 | flavor oject | 插件规格。 |
| custom | 是 | custom object | CoreDNS自定义参数。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| description | 是 | String | 规格的描述信息 |
| name | 是 | String | flavor名称 |
| replicas | 是 | Integer | 实例数 |
| resources | 是 | resource object | 插件资源 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| name | 是 | String | 资源名称 |
| limitsCpu | 是 | String | CPU配额限制 |
| limitsMem | 是 | String | 内存配额限制 |
| requestsCpu | 是 | String | CPU申请的配额 |
| requestsMem | 是 | String | 内存申请的配额 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| stub_domains | 否 | Json Map | 使用DNS后缀键(如acme.local)以及由DNS IP的JSON数组组成的值的JSON map |
| upstream_nameservers | 否 | Json Array | 设置后,该指将替换默认情况下从节点/etc/resolv.conf获取的名称服务器。限制:可以指定最多3个上行名称服务器。 |
| tenant_id | 是 | String | 项目ID |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| flavor | 是 | flavor Object | 插件规格 |
| custom | 是 | custom object | Autoscaler自定义参数 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| coresTotal | 是 | Integer | 集群最大和最小核数,格式为<min>:<max>。autoscaler进行集群扩缩容时不会超过这个范围 |
| maxEmptyBulkDeleteFlag | 是 | Integer | 可同时删除的最大空节点数 |
| maxNodesTotal | 是 | Integer | 所有节点组里的最大节点数。autoscaler进行集群扩缩容时不会超过这个范围 |
| memoryTotal | 是 | Integer | 集群内存的最大和最小数,格式为<min>:<max>。autoscaler进行集群扩缩容时不会超过这个范围 |
| scaleDownDelayAfterAdd | 是 | Integer | 扩容后再次进行缩容评估的时间间隔 |
| scaleDownDelayAfterDelete | 是 | Integer | 删除节点后再次进行缩容评估的时间间隔,默认值为scanInterval |
| scaleDownDelayAfterFailure | 是 | Integer | 缩容失败后再次进行缩容评估的时间间隔 |
| scaleDownEnabled | 是 | Boolean | 是否启用集群缩容 |
| scaleDownUnneededTime | 是 | Integer | 节点在达到缩容条件之后,需要等待多长时间才进行缩容 |
| scaleDownUtilizationThreshold | 是 | Float | 运行在该节点上的所有实例的CPU或内存总和占该节点可分配资源的比例。实际比例低于该阈值时,触发节点缩容 |
| scaleUpCpuUtilizationThreshold | 是 | Float | 触发扩容的CPU使用率阈值 |
| scaleUpMemUtilizationThreshold | 是 | Float | 触发扩容的内存使用率阈值 |
| scaleUpUnscheduledPodEnabled | 是 | Boolean | 存在未调度的实例时触发扩容 |
| scaleUpUtilizationEnabled | 是 | Boolean | 达到资源利用率阈值时触发扩容 |
| tenant_id | 是 | String | 项目ID |
| unremovableNodeRecheckTimeout | 是 | Integer | 两次确认某节点是否能被移除的时间间隔 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| is_driver_from_nvidia | 是 | Boolean | 是否使用英伟达驱动。 设置为true |
| nvidia_driver_download_url | 是 | String | 驱动下载URL |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| type | 是 | String | 集群类型: |
| flavor | 是 | String | 集群规格,集群创建完成后规格不可再变更,请按实际业务需求进行选择。
说明:
|
| version | 否 | String | 集群版本,与Kubernetes社区基线版本保持一致,建议选择最新版本。
说明: 若不配置,默认创建最新版本的集群。 |
| description | 否 | String | 集群描述,对于集群使用目的的描述,可根据实际情况自定义,默认为空。集群创建成功后可通过接口更新指定的集群来做出修改,也可在CCE控制台对应集群的“集群详情”下的“描述”处进行修改。 |
| ipv6enable | 否 | Boolean | 集群是否支持ipv6。1.15版本及以上支持。 |
| hostNetwok | 是 | HostNetwork object | 节点网络参数,包含了虚拟私有云VPC和子网的ID信息,而VPC是集群内节点之间的通信依赖,所以是必选的参数集。 |
| containerNetwork | 是 | ContainerNetwork object | 容器网络参数,包含了容器网络类型和容器网段的信息。 |
| authentication | 否 | Authentication object | 集群认证方式相关配置。 |
| kubernetesSvcIpRange | 否 | String | 服务网段参数,kubernetes clusterIp取值范围,1.11.7版本及以上支持。 |
| billingMode | 否 | Integer | 集群的计费方式,当前接口只支持创建“按需计费”的集群。 计费方式为“按需计费”时,取值为“0”。若不填,则默认为“0”。 |
| masters | 否 | MasterSpec object | 控制节点的高级配置 |
| extendParam | 否 | Map<String,String> | 扩展字段,key/value对格式。 可配置多可用区集群、专属混合集群。 |
请求示例
{
"kind" : "Cluster",
"apiVersion" : "v3",
"metadata" : {
"name" : "mycluster",
"labels" : {
"foo" : "bar"
},
"annotations" : {
"cluster.install.addons/install" : "[{\"addonTemplateName\":\"autoscaler\",\"version\":\"1.15.11\",\"values\":{\"flavor\":{\"description\":\"Has only one instance\",\"name\":\"Single\",\"replicas\":1,\"resources\":[{\"limitsCpu\":\"90m\",\"limitsMem\":\"200Mi\",\"name\":\"autoscaler\",\"requestsCpu\":\"50m\",\"requestsMem\":\"100Mi\"}]},\"custom\":{\"coresTotal\":32000,\"maxEmptyBulkDeleteFlag\":10,\"maxNodesTotal\":1000,\"memoryTotal\":128000,\"scaleDownDelayAfterAdd\":10,\"scaleDownDelayAfterDelete\":10,\"scaleDownDelayAfterFailure\":3,\"scaleDownEnabled\":false,\"scaleDownUnneededTime\":10,\"scaleDownUtilizationThreshold\":0.5,\"scaleUpCpuUtilizationThreshold\":1,\"scaleUpMemUtilizationThreshold\":1,\"scaleUpUnscheduledPodEnabled\":true,\"scaleUpUtilizationEnabled\":true,\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\",\"unremovableNodeRecheckTimeout\":5}}},{\"addonTemplateName\":\"coredns\",\"version\":\"1.15.3\",\"values\":{\"flavor\":{\"description\":\"Has two instances\",\"name\":2500,\"replicas\":2,\"resources\":[{\"limitsCpu\":\"500m\",\"limitsMem\":\"512Mi\",\"name\":\"coredns\",\"requestsCpu\":\"500m\",\"requestsMem\":\"512Mi\"}]},\"custom\":{\"stub_domains\":{},\"upstream_nameservers\":[],\"tenant_id\":\"22a8a02394794b908d256103a5b63c65\"}}},{\"addonTemplateName\":\"gpu-beta\",\"version\":\"1.1.7\",\"values\":{\"custom\":{\"is_driver_from_nvidia\":true,\"nvidia_driver_download_url\":\"https://us.download.nvidia.com/tesla/396.37/NVIDIA-Linux-x86_64-396.37.run\"}}},{\"addonTemplateName\":\"storage-driver\",\"version\":\"\"}]"
}
},
"spec" : {
"type" : "VirtualMachine",
"flavor" : "cce.s1.small",
"version" : "v1.15.11",
"description" : "this is a demo cluster",
"hostNetwork" : {
"vpc" : "1cb74d47-8e09-4d14-a065-75f4fc03e5eb",
"subnet" : "d44c089c-fbdc-49b3-ae8f-7b42c64219cf"
},
"containerNetwork" : {
"mode" : "overlay_l2",
"cidr" : "172.16.0.0/16"
},
"extendParam" : {
"foo" : "bar"
}
}
}