创建集群时指定要安装的插件
创建集群时,可在请求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" } } }