在ECS上部署Cassandra?

问题描述 投票:6回答:2

我正在尝试在AWS ECS上部署Cassandra作为docker容器。单个节点很容易完成,但现在我正在尝试为它创建一个集群。

Cassandra需要固定的IP地址,至少对于种子节点来说,需要将其传递给集群中的所有节点。 Cassandra无法使用ELB地址,因为ELB名称解析为与docker主机本身不同的ip。

所以基本上我需要能够强制AWS将图像部署到特定的实例/ host / ip。这样我就可以在运行docker镜像时传递正确的配置。

我可以使用RunTask api并将其传递给PlacementConstraint,给出一个约束,将主机限制为一个基于IP的主机吗? PrivateIp是此接口中EC2实例的属性吗?

你有什么其他好的想法我能做到吗?

谢谢!

amazon-web-services docker cassandra amazon-ecs
2个回答
2
投票

您可以在种子列表中使用主机名。只需确保您的种子将使用这些名称。此外,如果种子停止并解析为另一个IP,您将需要替换它(但对于任何更改其IP的节点都是如此)


1
投票

如果使用awsvpc网络模式添加种子ecs容器,则每个任务都会获得自己的eni。启动种子节点后,您可以使用'aws describe-tasks'API获取其IP地址并相应地更新您的Cassandra.yml

© www.soinside.com 2019 - 2024. All rights reserved.