alicloud_cs_autoscaling_config
更新时间:
This resource will help you configure auto scaling for the kubernetes cluster, see What is autoscaling config.
-> NOTE: Available since v1.127.0.
-> NOTE: From version 1.164.0, support for specifying whether to allow the scale-in of nodes by parameter scale_down_enabled
.
-> NOTE: From version 1.164.0, support for selecting the policy for selecting which node pool to scale by parameter expander
.
Example Usage
If you do not have an existing cluster, you need to create an ACK cluster through alicloud_cs_managed_kubernetes first, and then configure automatic scaling.
Basic Usage
variable "name" {
default = "terraform-example"
}
data "alicloud_zones" "default" {
available_resource_creation = "VSwitch"
}
resource "alicloud_vpc" "default" {
vpc_name = var.name
cidr_block = "10.4.0.0/16"
}
resource "alicloud_vswitch" "default" {
vswitch_name = var.name
cidr_block = "10.4.0.0/24"
vpc_id = alicloud_vpc.default.id
zone_id = data.alicloud_zones.default.zones.0.id
}
resource "alicloud_cs_managed_kubernetes" "default" {
name_prefix = var.name
cluster_spec = "ack.pro.small"
worker_vswitch_ids = [alicloud_vswitch.default.id]
new_nat_gateway = true
pod_cidr = cidrsubnet("10.0.0.0/8", 8, 36)
service_cidr = cidrsubnet("172.16.0.0/16", 4, 7)
slb_internet_enabled = true
}
resource "alicloud_cs_autoscaling_config" "default" {
cluster_id = alicloud_cs_managed_kubernetes.default.id
// configure auto scaling
cool_down_duration = "10m"
unneeded_duration = "10m"
utilization_threshold = "0.5"
gpu_utilization_threshold = "0.5"
scan_interval = "30s"
scale_down_enabled = true
expander = "least-waste"
skip_nodes_with_system_pods = true
skip_nodes_with_local_storage = false
daemonset_eviction_for_nodes = false
max_graceful_termination_sec = 14400
min_replica_count = 0
recycle_node_deletion_enabled = false
scale_up_from_zero = true
}
Argument Reference
The following arguments are supported.
cluster_id
- (Optional, ForceNew) The id of kubernetes cluster.cool_down_duration
- (Optional) The cool down duration. Default is10m
. If the delay (cooldown) value is set too long, there could be complaints that the Horizontal Pod Autoscaler is not responsive to workload changes. However, if the delay value is set too short, the scale of the replicas set may keep thrashing as usual.unneeded_duration
- (Optional) The unneeded duration. Default is10m
.utilization_threshold
- (Optional) The scale-in threshold. Default is0.5
.gpu_utilization_threshold
- (Optional) The scale-in threshold for GPU instance. Default is0.5
.scan_interval
- (Optional) The interval at which the cluster is reevaluated for scaling. Default is30s
.scale_down_enabled
- (Optional) Specify whether to allow the scale-in of nodes. Default istrue
.expander
- (Optional) The policy for selecting which node pool to scale. Valid values:least-waste
,random
,priority
. For more information on these policies, see Configure auto scalingskip_nodes_with_system_pods
- (Optional, Available since v1.209.0) If true cluster autoscaler will never delete nodes with pods from kube-system (except for DaemonSet or mirror pods). Default istrue
.skip_nodes_with_local_storage
- (Optional, Available since v1.209.0) If true cluster autoscaler will never delete nodes with pods with local storage, e.g. EmptyDir or HostPath. Default isfalse
.daemonset_eviction_for_nodes
- (Optional, Available since v1.209.0) If true DaemonSet pods will be terminated from nodes. Default isfalse
.max_graceful_termination_sec
- (Optional, Available since v1.209.0) Maximum number of seconds CA waits for pod termination when trying to scale down a node. Default is14400
.min_replica_count
- (Optional, Available since v1.209.0) Minimum number of replicas that a replica set or replication controller should have to allow their pods deletion in scale down. Default is0
.recycle_node_deletion_enabled
- (Optional, Available since v1.209.0) Should CA delete the K8s node object when recycle node has scaled down successfully. Default isfalse
.scale_up_from_zero
- (Optional, Available since v1.209.0) Should CA scale up when there 0 ready nodes. Default istrue
.
Attributes Reference
The following attributes are exported:
id
- Resource id.
Timeouts
The timeouts
block allows you to specify timeouts for certain actions:
create
- (Defaults to 90 mins) Used when creating the kubernetes cluster (until it reaches the initialrunning
status).update
- (Defaults to 60 mins) Used when activating the kubernetes cluster when necessary during update.delete
- (Defaults to 60 mins) Used when terminating the kubernetes cluster.
文档内容是否对您有帮助?