Cat*_*ish 2 amazon-web-services docker amazon-ecs
我正在尝试设置一个 AWS ECS 集群,该集群有一个任务,该任务有 3 个单独的容器用于 prometheus、promscale 和 prometheus-ecs-discovery。
我试图弄清楚如何动态地将PROMSCALE_HOSTNAMEprometheus 容器中的环境变量设置为 promscale 容器的主机名或 ip,因为我最终在配置文件中使用此值,以便 prometheus 容器可以与 promscale 通信容器。
有什么办法可以做到这一点,或者我是否必须在我的 VPC 中创建一个负载均衡器来处理这个问题?
PrometheusTask:
Type: AWS::ECS::TaskDefinition
Properties:
Family: !Sub "${Stage}-prometheus"
ContainerDefinitions:
- Name: !Sub "${Stage}-prometheus-container"
Image: myorg/prometheus:latest
Environment:
- Name: STAGE
Value: !Ref Stage
- Name: PROMSCALE_HOSTNAME # <-- I WANT THIS VALUE TO BE THE HOSTNAME OR IP OF THE PROMSCALE CONTAINER
Value: !Sub "${Stage}-promscale-container"
- Name: !Sub "${Stage}-prometheus-ecs-discovery-container"
Image: myorg/prometheus-ecs-discovery:latest
Environment:
- Name: AWS_REGION
Value: !Ref AWS::Region
- Name: !Sub "${Stage}-promscale-container"
Image: myorg/promscale:latest
PortMappings:
- ContainerPort: 9201
Run Code Online (Sandbox Code Playgroud)
小智 8
如果您正在awsvpc为您的任务使用网络模式(这将是一个好主意),您的任务基本上将具有单个网络名称空间。这意味着您可以使用 访问所有容器localhost。换句话说,如果您尝试localhost:9201从同一任务中的任何其他容器进行访问,您最终将与您的 promscale 容器进行通信。
| 归档时间: |
|
| 查看次数: |
4861 次 |
| 最近记录: |