gpt4 book ai didi

amazon-web-services - 限制服务/应用程序在特定 Amazon ECS 实例中运行

转载 作者:行者123 更新时间:2023-12-04 10:48:30 27 4
gpt4 key购买 nike

我正在将一些工作负载迁移到 Amazon ECS Container Service,我发现了一个阻止我前进的阻止程序。

理想情况下,在 ECS 上运行的容器化应用程序应该是无状态的,以便它们可以在任何集群实例中运行并横向扩展。但现实情况是,我有一些依赖于 EBS 数据量的应用程序。据我所知,这些卷必须手动附加到特定的集群实例,并且 ECS 应用程序应该放置在该实例中才能访问其数据,因此我需要有某种方法来控制这些最终运行的位置。

例如,假设我们有一个由 Amazon ECS 管理的 3 个 EC2 实例集群。

  • 实例 1
  • 实例 2
  • 实例3

  • 然后我们有 2 个容器化应用程序:
  • app1 ,这是无状态的
  • app2 ,这取决于 EBS 卷

  • app1 可以在集群的任何实例中运行,没问题。

    对于 app2,假设我们在 instance2 中附加并挂载了 EBS 卷。

    现在,问题是: 我可以在定义或启动 app2 时限制只放置在 instance2 中,以便它可以访问 EBS 卷吗?

    非常感谢!

    编辑:

    我进一步阅读了一些内容,并在亚马逊的文档中找到了一种方法。文档中有一个注释“ Using Data Volumes in Tasks “说的是:

    Important

    Amazon ECS does not sync your data volumes across container instances. Tasks that use persistent data volumes can be placed on any container instance in your cluster that has available capacity. If your tasks require persistent data volumes after stopping and restarting, you should always specify the same container instance at task launch time with the AWS CLI start-task command.



    所以,看着 start-task我发现 CLI 上的命令正是我要找的:

    start-task

    Starts a new task from the specified task definition on the specified container instance or instances. To use the default Amazon ECS scheduler to place your task, use run-task instead.



    它有两个必需的参数,分别是您要启动的任务定义和任务应在其上运行的容器实例 ID(最多 10 个)。

    所以调用命令看起来像这样:
    aws ecs start-task --task-definition “hello-world:1” --container-instances “1c66549d-b41c-4439-dd43-c2e1c9a2cc2a” 

    我试过了,效果很好。

    目前,这似乎是唯一的方法,因为 AWS Web UI 不提供在启动任务时指定容器实例的字段。

    我希望它可以对某人有用。

    最佳答案

    ECS 现在支持放置约束。

    http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement-constraints.html .

    所以步骤是:

  • 为每个实例定义一个自定义属性(例如,Name=App1)instructions here
  • 为每个任务定义定义约束(例如,MemberOf = attribute:Name =~ App1)

  • 它应该工作。

    关于amazon-web-services - 限制服务/应用程序在特定 Amazon ECS 实例中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722679/

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