Score:0

ผู้ให้บริการความจุ ECS ของ Terraform ไม่สร้างอินสแตนซ์ ECS ใหม่ตามความต้องการ

ธง ss

จากที่อ่านมา ที่นี่ ผู้ให้บริการความจุ ECS ควร (โดยทั่วไป) ป้องกันไม่ให้งานล้มเหลวในทันทีเนื่องจากทรัพยากรจำกัดโดยกำหนดให้อยู่ในสถานะ "การจัดเตรียม" และหมุนอินสแตนซ์ EC2 ใหม่

ซึ่งหมายความว่า ตัวอย่างเช่น หากคุณเรียกใช้ RunTask API และงานไม่ถูกนำไปวางบนอินสแตนซ์เนื่องจากทรัพยากรไม่เพียงพอ (หมายความว่าไม่มีอินสแตนซ์ที่ใช้งานอยู่ที่มีหน่วยความจำ, vCPU, พอร์ต, ENI และ/หรือ GPU เพียงพอที่จะเรียกใช้ งาน) แทนที่จะล้มเหลวทันที งานจะเข้าสู่สถานะการเตรียมใช้งาน (อย่างไรก็ตาม โปรดทราบว่าการเปลี่ยนไปใช้การจัดสรรจะเกิดขึ้นก็ต่อเมื่อคุณเปิดใช้งานการปรับขนาดที่มีการจัดการสำหรับผู้ให้บริการความจุ มิฉะนั้น งานที่ไม่สามารถค้นหาความจุจะล้มเหลวทันทีเหมือนที่เคยทำมา)

ฉันได้ตั้งค่าคลัสเตอร์ ECS พร้อมกลุ่มการปรับขนาดอัตโนมัติและผู้ให้บริการความจุ ECS ในรูปแบบดินเผา มีการตั้งค่ากลุ่มการปรับขนาดอัตโนมัติด้วย min_size = 1 และมันก็หมุนอินสแตนซ์เดียวทันที... ดังนั้นฉันจึงมั่นใจว่าการกำหนดค่าการเปิดใช้งานของฉันนั้นใช้ได้

อย่างไรก็ตามเมื่อฉันเรียก "RunTask" ซ้ำๆ ผ่าน API (งานที่มี หน่วยความจำ=128) ฉันได้รับงานที่ไม่สามารถเริ่มได้ทันทีโดยมีเหตุผล ทรัพยากร: หน่วยความจำ. ยังไม่มีอินสแตนซ์ใหม่เริ่มต้นขึ้น

ฉันไม่สามารถทราบได้ว่าฉันกำหนดค่าอะไรผิด


นี่คือการตั้งค่าทั้งหมดใน Terraform:

ทรัพยากร "aws_ecs_cluster" "ecs_cluster" {
  ชื่อ = local.cluster_name


  การตั้งค่า {
    ชื่อ = "containerInsights"
    ค่า = "เปิดใช้งาน"
  }
  แท็ก = var.tags
  capacity_providers = [aws_ecs_capacity_provider.capacity_provider.name]

  # ฉันเพิ่มสิ่งนี้เพื่อพยายามทำให้มันหมุนอินสแตนซ์ใหม่ 
  default_capacity_provider_strategy {
    capacity_provider = aws_ecs_capacity_provider.capacity_provider.name
  }

}

ทรัพยากร "aws_ecs_capacity_provider" "capacity_provider" {
  name = "${var.tags.PlatformName}-stack-${var.tags.Environment}"

  auto_scaling_group_provider {
    auto_scaling_group_arn = aws_autoscaling_group.autoscaling_group.arn
    Managed_termination_protection = "ปิดใช้งาน"

    Manage_scaling {
      maximum_scaling_step_size = 4
      ขั้นต่ำ_scaling_step_size = 1
      สถานะ = "เปิดใช้งาน"
      target_capacity = 100
    }
  }

  แท็ก = var.tags
}

#คำนวณ
ทรัพยากร "aws_autoscaling_group" "autoscaling_group" {
  name = "${var.tags.PlatformName}-${var.tags.Environment}"
  #ใช้ไม่เป็นก็อย่าจ่าย
  min_size = "1"
  max_size = var.ecs_max_size
  launch_configuration = aws_launch_configuration.launch_config.name
  health_check_grace_period = 60
  default_cooldown = 30
  termination_policies = ["อินสแตนซ์ที่เก่าที่สุด"]
  vpc_zone_identifier = local.subnets
  protect_from_scale_in = เท็จ

  แท็ก {
    คีย์ = "ชื่อ"
    ค่า = "${var.tags.PlatformName}-${var.tags.Environment}"
    propagate_at_launch = จริง
  }

  แท็ก {
    คีย์ = "AmazonECSManaged"
    ค่า = ""
    propagate_at_launch = จริง
  }

  "แท็ก" แบบไดนามิก {
    for_each = var.แท็ก
    เนื้อหา {
      คีย์ = tag.key
      propagate_at_launch = จริง
      ค่า = tag.value
    }
  }

  enable_metrics = [
    "GroupDesiredCapacity",
    "GroupInServiceInstance",
    "กรุ๊ปแม็กซ์ไซส์",
    "กลุ่มขั้นต่ำขนาด",
    "อินสแตนซ์ GroupPending",
    "กลุ่มสแตนด์บายอินสแตนซ์",
    "อินสแตนซ์ GroupTerminating",
    "GroupTotalInstances",
  ]
}
Score:0
ธง ss

ดูเหมือนว่านี่เป็นข้อผิดพลาดที่ฉันทำขณะเรียกใช้งาน "RunTask" ใน API (เอกสารที่นี่). ฉันได้ระบุไว้ เปิดตัวประเภท และไม่ กลยุทธ์ความจุผู้ให้บริการ.

จากเอกสาร RunTask:

เมื่อคุณใช้การปรับขนาดอัตโนมัติของคลัสเตอร์ คุณต้องระบุ กลยุทธ์ความจุผู้ให้บริการ และไม่ เปิดตัวประเภท.

ดูเหมือนว่าผลลัพธ์ของสิ่งนี้คืองานจะเริ่มขึ้นหากมีความจุ แต่จะล้มเหลวทันทีหากมีความจุไม่เพียงพอ และไม่ให้โอกาสปรับขนาดอัตโนมัติในการตอบสนอง

ฉันสามารถทำให้มันใช้งานได้โดยการลบ เปิดตัวประเภท เพราะ default_capacity_provider_strategy ถูกตั้งค่าบนคลัสเตอร์

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา