繁体   English   中英

更改集群注册的 ec2 实例的实例类型

[英]Change Instance type of a cluster registered ec2 instance

我有一个注册到 Amazon ECS 集群的 Amazon EC2 实例。

我想将此实例的类型从c4.largec4.8xlarge

我可以在 AWS 控制台中将其类型从c4.large更改为c4.8xlarge 但是改完之后发现

[ERROR] Could not register module="api client" err="ClientException: Container instance type changes are not supported. Container instance XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX was previously registered as c4.large.

打印在/var/log/ecs/ecs-agent.log.20XX-XX-XX-XX文件中。

是否可以更改 ec2 实例类型并将其重新注册到集群?

我想也许先注销它,然后再注册它应该可以。 但我担心这可能会在我的 AWS 工作环境中造成不可逆转的后果。 所以我还没有尝试过这个方法。

解决这个agent和集群的连接问题,删除/var/lib/ecs/data/ecs_agent_data.json文件,重启docker和ECS即可。 之后,将在您的集群中创建一个具有新大小的新容器实例。

sudo rm /var/lib/ecs/data/ecs_agent_data.json
sudo service docker restart
sudo start ecs

然后你可以去ECS集群控制台注销旧的容器实例

更新:根据@florins 和@MBear 在下面评论,AWS 更新了 ECS 实例上的数据文件。

sudo rm /var/lib/ecs/data/agent.db
sudo service docker restart
sudo start ecs

截至 2021 年 3 月/AMI 映像 ami-0db98e57137013b2d,上一个有用答案中提到/var/lib/ecs/data/ecs_agent_data.json 不存在。 对我来说,在更改的实例上执行的命令是:

sudo rm /var/lib/ecs/data/agent.db
sudo service docker restart

之后,可以将容器部署到实例,而无需重新注册(AWS 自动注册了新类型的第二个 ECS 容器实例)。 我确实有一个剩余的容器实例,其中包含要删除的旧实例类型的资源。

你不能这样做。 根据他们的文档

The type of EC2 instance that you choose for your container instances determines the resources available in your cluster. Amazon EC2 provides different instance types, each with different CPU, memory, storage, and networking capacity that you can use to run your tasks. For more information, see Amazon EC2 Instances.

这意味着当你在一个实例上启动一个容器时,代理会收集一堆关于该实例的元数据来运行它。 如果你改变它,所有的元数据(或很多)都会以一种糟糕的方式改变。 CPU 单元、内存等。代理知道这一点,并将其报告为错误

您应该启动一个新类型的新实例并将其注册到集群并让任务在其上运行。 如果它是一项服务,只需终止旧实例并让它针对新实例运行它。

我想不出任何真正的原因为什么终止你的旧实例会导致一些不可逆转的事情,除非它通过用户特定的设置被错误配置或脆弱,默认情况下这不会导致任何破坏性。

作为替代方法,如果 EC2 实例不存储任何有价值的新实例,则可以使用旧实例作为模板启动。 这需要所有现有值,只需在几分钟内单击几下即可实现。

  1. Select EC2 实例,然后“操作 -> 图像和模板 -> 像这样开始”。 只需更改实例类型。
  2. 当实例运行时,将 ECS 集群获取到选项卡“ECS 实例”并激活新创建的实例。
  3. 关闭旧实例
  4. 更新您的任务可能需要更多的 CPU 和 memory 并更新服务以进行新的任务修订

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM