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

Bri*_*ian 3 amazon-ec2 amazon-ecs

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

我想将此实例的类型从更改c4.large为c4.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工作环境中导致某些不可逆转的事情。所以我还没有尝试过这种方法。

Ica*_*hir 10

要解决代理与群集之间的连接问题,只需删除文件/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
Run Code Online (Sandbox Code Playgroud)

然后,您可以转到ecs集群控制台并注销旧的容器实例

  • 在我的情况下,此方法可行,但我还必须“ aws ecs deregister-container-instance”传递容器实例ID和旧容器实例的集群ID,而该容器实例ID仍与新连接的容器实例一起附加到ECS。 (3认同)

Mar*_*ung 0

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

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 单元、内存等。代理知道这一点并将其报告为错误。

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

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