ECS
: Docker容器管理。每个ECS实例运行以下Docker容器:linkerd
:代理请求到 hello-world
consul-agent
:本地服务发现代理consul-registrator
:Docker和Consul之间的桥梁,自动使用consul注册服务hello-world
: 示例ECS任务,在基础 ECS
+ linkerd
+ consul-agent
配置上单独部署,组成hello
,world
和 world-v2
服务linkerd-viz
:ECS任务, 在基础 ECS
+ linkerd
+ consul-agent
配置上单独部署, 为所有服务流量提供监控仪表板consul-server
:服务发现后端,在单个EC2实例上运行Linerd in ECS
linkerd
,consul-agent
和 consul-registrator
在每个ECS节点上运行。在本指南的撰写之前,ECS调度程序并没有明确支持这一点。相反,我们使用AWS启动配置来引导每个ECS节点和这三个基础服务。我们仍然通过 aws ecs start-task
命令启动这些基础服务,因此它们将可见,作为运行的ECS容器。linkerd
路由:4140linkerd
admin UI:9990linkerd-viz
:3000consul-agent
和 consul-serverUI
:8500l5d-demo-consul-server
标记这个实例。我们将在每个ECS节点上运行的 consul-agent
配置中引用此标签。这使得 consul-agent
能够找到 consul-server
。l5d-demo
的新ECS集群l5d-demo
,指示他们加入我们刚创建的ECS集群。ecs:StartTask
能力,因为我们的启动配置将启动我们在每个ECS节点上的三个基础任务。我们需要 ec2:DescribeInstances
能力,因为 consul-agent
需要通过 l5d-demo-consul-server
实例标签来查找 consul-server
。hello-world
描述三个独立的Docker容器,hello
, world
,和 world-v2
。linkerd
,consul-agent
以及 consul-registrator
动态生成的配置文件, 使用它运行在其上的ECS实例的具体数据。linkerd
,consul-agent
和 consul-registrator
。l5d-demo-ecs
以便我们以后可以通过编程方式找到它们。hello-world
任务由 hello
服务,world
服务和 world-v2
服务组成。为了演示业务间通信,我们配置 hello
服务通过服务linkerd来呼叫 world
。hello-world
,它们生成两个 hello
容器,两个 world
容器和两个 world-v2
容器。l5d-demo-ecs
名称, 我们选择任意ECS节点,然后用 curl 通过linkerd 访问 hello
服务:curl
-> linkerd
-> hello
-> linkerd
-> world
hello-world
任务还包括一项 world-v2
服务,我们来测试每请求路由:l5d-dtab
header,我们指示 linkerd 动态路由所有目的地为 world
的请求到 world-v2
。linkerd请求路由
linkerd
在群集中运行的指标。在部署之前,让我们给系统一点负载:linkerd-viz
实例:LINKERD-VIZ IN ECS