更新时间:2024-11-06 GMT+08:00

CCE集群弹性引擎

插件介绍

CCE集群弹性引擎(autoscaler)提供节点池弹性伸缩能力。

字段说明

表1 参数描述

参数

是否必选

参数类型

描述

basic

object

插件基础配置参数,无需指定。

flavor

表2 object

插件规格参数。

custom

表3 object

插件自定义参数。

表2 flavor

参数

是否必选

参数类型

描述

replicas

String

实例数,默认为:2。

resources

Array of resources object

容器资源(CPU、内存)配额。

表3 custom

参数

是否必选

参数类型

描述

cluster_id

string

当前集群ID。

tenant_id

string

当前集群所在的项目ID。

scaleDownEnabled

bool

是否开启弹性缩容,默认值:false。

scaleDownDelayAfterAdd

int

集群触发弹性扩容后,再次启动缩容评估的冷却时间,单位分钟,默认值:10。

scaleDownDelayAfterDelete

int

集群触发弹性缩容后,再次启动缩容评估的冷却时间,单位分钟,默认值:10。

scaleDownDelayAfterFailure

int

集群触发弹性缩容失败后,再次启动缩容评估的冷却时间,单位分钟,默认值:10。

maxEmptyBulkDeleteFlag

int

空闲节点缩容并发数,默认值:10。

unremovableNodeRecheckTimeout

int

节点被判定不可缩容后能再次启动检查的时间间隔,单位分钟,默认值:5。

scaleDownUtilizationThreshold

double

判断节点可缩容的cpu和内存资源使用率门限,默认0.5。

maxNodesTotal

int

集群扩容的节点数量上限,默认1000。

coresTotal

int

集群扩容的CPU核数上限,默认32000。

memoryTotal

int

集群扩容的内存上限,单位Gi,默认128000。

scaleUpUtilizationEnabled

bool

是否开启自定义弹性,默认true。

scaleUpUnscheduledPodEnabled

bool

是否开启未调度pod触发自动扩容,默认true。

ignoreDaemonSetsUtilization

bool

缩容门限判断时是否忽略daemonset型应用资源占用,默认false。

skipNodesWithCustomControllerPods

bool

节点上存在第三方controller创建容器时不进行缩容,默认true。

logLevel

int

日志级别,默认4。

multiAZEnable

bool

插件中deployment组件多可用部署是否采用强制模式,默认:false。强制模式下插件Deployment实例强制调度到不同可用区的节点上,如集群下节点不满足多可用区,插件实例将无法全部运行。若multiAZEnable与multiAZBalance配置也同时为true,则以multiAZBalance为准使用多可用部署均分模式。

multiAZBalance

bool

插件中deployment组件多可用部署是否采用均分模式,默认:false。插件Deployment实例均匀调度到当前集群下各可用区,增加新的可用区后建议扩容插件实例以实现跨可用区高可用部署;均分模式限制不同可用区间插件实例数相差不超过1,单个可用区资源不足会导致后续其他实例无法调度。

tolerations

Array of 表5

污点容忍配置

node_match_expressions

Array of 表6

插件实例亲和性配置

表4 resources字段数据结构说明

参数

是否必选

参数类型

描述

limitsCpu

String

CPU大小限制,单位:m。

limitsMem

String

内存大小限制,单位:Mi。

name

String

插件名称,固定为:autoscaler。

requestsCpu

String

申请的CPU大小,单位:m。

requestsMem

String

申请的内存大小,单位:Mi。

表5 tolerations污点

参数

是否必选

参数类型

描述

key

String

污点键

effect

String

污点策略

operator

String

操作符

tolerationSeconds

Int

容忍时间窗

表6 nodeMatchExpresssion节点亲和配置

参数

是否必选

参数类型

描述

key

String

污点键

values

List<String>

节点亲和的名称

operator

String

操作符

请求示例

{
	"kind": "Addon",
	"apiVersion": "v3",
	"metadata": {
		"annotations": {
			"addon.install/type": "install"
		}
	},
	"spec": {
		"clusterID": "2292498e-*******-0255ac1001ba",
		"version": "1.23.116",
		"addonTemplateName": "autoscaler",
		"values": {
                        "basic": {
				"basickey":"val"
			},
			"flavor": {
				"replicas": 2,
				"resources": [{
					"limitsCpu": "1000m",
					"limitsMem": "1000Mi",
					"name": "autoscaler",
					"requestsCpu": "1000m",
					"requestsMem": "1000Mi"
				}]
			},
			"custom": {
				"cluster_id": "2292498e-*******-0255ac1001ba",
				"coresTotal": 32000,
				"ignoreDaemonSetsUtilization": false,
				"logLevel": 4,
				"maxEmptyBulkDeleteFlag": 10,
				"maxNodeProvisionTime": 15,
				"maxNodesTotal": 1000,
				"memoryTotal": 128000,
				"multiAZBalance": false,
				"multiAZEnabled": false,
				"node_match_expressions": [],
				"scaleDownDelayAfterAdd": 10,
				"scaleDownDelayAfterDelete": 10,
				"scaleDownDelayAfterFailure": 3,
				"scaleDownEnabled": false,
				"scaleDownUnneededTime": 10,
				"scaleDownUtilizationThreshold": 0.5,
				"scaleUpUnscheduledPodEnabled": true,
				"scaleUpUtilizationEnabled": true,
				"skipNodesWithCustomControllerPods": true,
				"tenant_id": "*****************",
				"tolerations": [{
					"key": "node.kubernetes.io/not-ready",
					"operator": "Exists",
					"effect": "NoExecute",
					"tolerationSeconds": 60
				},
				{
					"key": "node.kubernetes.io/unreachable",
					"operator": "Exists",
					"effect": "NoExecute",
					"tolerationSeconds": 60
				}],
				"unremovableNodeRecheckTimeout": 5
			}
		}
	}
}