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달 전30회 조회
1개 답변
0

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

profile picture
전문가
답변함 5달 전

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인