[英]How long will it take for an instance to be removed when using capacity provider with ECS?
我為 ECS 集群啟用了容量提供程序,並將 EC2 自動縮放組的最小、最大和所需計數分別設置為 1,3 和 2。 我還為 ECS 任務啟用了自動縮放,最小值、最大值和所需計數分別為 2,6 和 2。
當我使用 terraform 部署整個設置時,這兩個任務中的每一個都在兩個單獨的實例上啟動,當運行負載測試時,ECS 任務和 EC2 實例成功擴展到 6 和 3。但是在負載測試完成后 ECS任務已縮小,但 EC2 實例仍未刪除。
managed_scaling 中的 target_capacity 是否指示用於為 EC2 集群創建自動縮放策略的閾值?
resource "aws_autoscaling_group" "asg" {
...
min_size = var.asg_min_size
max_size = var.asg_max_size
desired_capacity = var.asg_desired_capacity
protect_from_scale_in = true
tags = [
{
"key" = "Name"
"value" = local.name
"propagate_at_launch" = true
},
{
"key" = "AmazonECSManaged"
"value" = ""
"propagate_at_launch" = true
}
]
}
resource "aws_ecs_capacity_provider" "capacity_provider" {
name = local.name
auto_scaling_group_provider {
auto_scaling_group_arn = aws_autoscaling_group.asg.arn
managed_termination_protection = "ENABLED"
managed_scaling {
maximum_scaling_step_size = 4
minimum_scaling_step_size = 1
status = "ENABLED"
target_capacity = 70
}
}
provisioner "local-exec" {
when = destroy
command = "aws ecs put-cluster-capacity-providers --cluster ${self.name} --capacity-providers [] --default-capacity-provider-strategy []"
}
}
resource "aws_ecs_cluster" "cluster" {
name = local.name
capacity_providers = [
aws_ecs_capacity_provider.capacity_provider.name,
]
tags = merge(
{
"Name" = local.name,
"Environment" = var.environment,
"Description" = var.description,
"Service" = var.service,
},
var.tags
)
}
您已經為容量提供程序設置了 70 的目標容量,因此容量提供程序不希望 go 超過該利用率。
當您有 2 個任務在 2 個不同的實例上運行時,您將擁有 100% 的利用率,因為容量是根據運行非 daemonset 任務的實例數量來計算的。 因此,如果您的目標容量小於 100,它就不會想要擴展以僅留下非空實例可用。
如果您的目標容量為 60,並且您的 ASG 被允許擴展到最多 4 個實例,它仍會嘗試擴展到該數量並留下 2 個空實例,因為只有 1 個可用實例會使容量保持在 66.6,這是更高的比那個較低的目標容量。
如果您剛剛開始使用容量提供程序,那么這篇關於 ECS 容量提供程序的 AWS 深入研究博客文章是一本不錯的讀物。 我想當我開始使用它們時我一定已經讀了十幾遍了,但我仍然覺得縮放機制有點不尋常。 不過,它確實為我們解決了一些基於 ECS 內存/CPU 預留的簡單 ASG 縮放的關鍵問題。 如果您不想要任何備用容量(例如,將目標容量設置為 100)並且不介意等待實例橫向擴展,它還允許擴展為零。
注意:如果您的集群是通過模板創建的並分配了一些容量,您可能需要在耗盡的實例“重新出現”時跟蹤保留該容量的警報並將所有內容調整為您真正需要的數字
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.