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
EXPERTE
gefragt vor 5 Monaten30 Aufrufe
1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 5 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen