【以下的问题经过翻译处理】 大家好,
我正在运行一个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