ECS Fargate - 如何获取IP地址

0

【以下的问题经过翻译处理】 大家好,

我正在运行一个ECS集群来管理我们的Kafka Connect 镜像,并已部署了一个工作配置。要扩展Kafka Connect,你需要为每个容器做的其中一件事是确保Kafka Connect Rest主机名被设置,以防止添加任务时出现409冲突(如果你是作为集群的一部分运行)。对于单个节点来说,使用localhost是可以的,但对于多个节点来说就不行了。

由于我是在Fargate awsvpc模式下运行ECS的,我没有看到获取容器IP的方法(根据AWS文档,在awsvpc模式下不支持)。

为了解决这个问题,在容器启动时,我添加了一个自定义命令来调用容器元数据服务,并设置了它,例如:

JSON=$(curl ${ECS_CONTAINER_METADATA_URI}/task)
TASK=$(echo $JSON | jq -r '.Containers[0].Networks[0].IPv4Addresses[0]')
CONNECT_REST_ADVERTISED_HOST_NAME=$TASK

请问有其他更原生的方法来实现吗?

祝好, Wayne

profile picture
专家
已提问 5 个月前27 查看次数
1 回答
0

【以下的回答经过翻译处理】 容器元数据 URI 是 AWS 获取节点的 ENI IP 的原生方式。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则