gpt4 book ai didi

amazon-web-services - 什么是 ECS 任务组,如何创建?

转载 作者:行者123 更新时间:2023-12-02 02:56:22 25 4
gpt4 key购买 nike

这是唯一的doc我找到了任务组,它没有解释如何或在哪里创建一个。

我找不到任何文档可以通过如何创建和使用任务组的示例来充分解释任务组的实际含义。这听起来像是服务运行多个不同任务定义的一种方式,这对我很有用。

例如,我在任务定义中添加了一个容器,并且该服务正在集群上平衡它的多个实例。但是我想与第一个容器一起部署另一个容器,但我只想运行它的单个实例。所以我不能将它添加到同一个任务定义中,因为我会创建它的多个实例并消耗不必要的资源。似乎这就是任务组的用途。

最佳答案

您确实是正确的,没有关于此的适当文档(我向我们的 AWS 团队打开了一个支持案例以进行验证!)。
然而,一切都没有丢失。确实存在解决您难题的解决方案,并且是我们每天使用的解决方案。您不必使用任务组,不管它是什么(因为我们实际上还不知道(AWS 工程师正在为我编写一些文档,当我得到它们时会将它们发布在这里))。
您所需要的只是放置约束(您的同一个文档),它们很容易设置。如果您有启动配置,您可以在 Advanced > User Data 部分添加类似的内容,以便它在启动期间运行(或者只是在手动启动实例时添加它(或者如果您感觉异常hacky,您可以登录到您的实例并手动运行命令..科学和东西)):echo ECS_INSTANCE_ATTRIBUTES={\"env\": \"prod\",\"primary\": \"app1\",\"secondary\": \"app2\"} >> /etc/ecs/ecs.config引号中的所有内容都是由您任意定义的,因此请使用对您的用例有意义的任何标签和值。如果你走这条路,请确保在 docker 启动命令中添加以下行:--env-file=/etc/ecs/ecs.config因此,既然您有一个正确标记的实例(并确保它只是您想要的单个实例(这意味着您可能需要针对这种特定类型的实例的专用启动配置)),您可以继续创建您的 ECS 服务,例如你想做的。但是,请确保正确设置任务放置,以匹配现在为您的实例配置的角色:
blah
因此,对于上面的示例,此服务配置为仅在为 env==prod 配置的实例上启动此任务。和 secondary==app2 -- 因为您的其他两个实例未配置为 secondary==app2 ,他们不能主持这个任务。
一开始可能会让人感到困惑,我们花了一段时间才弄好,但我希望这会有所帮助!

AWS Support 的回复
我研究了如何使用任务组的过程,以下是我的发现: - 如果您有从 启动的现有任务,假设您已经有一个名为“databases”的任务组运行任务/启动任务 API。
当您使用 启动任务时运行任务 启动任务 操作,您可以为任务指定任务组的名称。如果您没有为任务指定任务组,则默认名称是任务定义的系列名称(例如,family:my-task-definition) - 因此,要创建任务组,您可以定义一个 任务组 (例如 webserver )在任务控制台上创建任务或使用以下命令:$ aws ecs run-task --cluster <ecs-cluster> --task-definition taskGroup-td:1 --group webserver创建后,您会注意到一个与组一起运行的任务:webserver .
现在,您可以将以下放置约束与任务定义一起使用,将您的任务仅放置在使用此任务组运行任务的容器上。

"placementConstraints": 
[
{
"expression": "task:group == webserver", "type": "memberOf"
}
]
如果您尝试运行具有上述位置约束的任务,但您没有运行任何使用 taskGroup : webserver 的任务,您将收到以下错误: Run tasks failed Reasons : ["memberOf constraint unsatisfied"] .
引用文献: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html

关于amazon-web-services - 什么是 ECS 任务组,如何创建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49115412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com