AWS ECS为每个微服务运行实例

时间:2018-05-29 11:57:29

标签: docker docker-compose microservices amazon-ecs

我想,这是一个愚蠢的问题,但我不知道在哪里可以找到答案。我检查过这么多资源,但我还是没有得到它。

我有docker-compose.yml文件。是否可以使用AWS ECS集群为每个服务(eurekaserver,configserver,zuulserver,database)运行新实例(例如t2.micro)?我只看到一个大实例的例子。

version: '2'
services:

  eurekaserver:
   image: maxb/tracker-eurekasvr:tracker-eurekasvr
   ports:
       - "8761:8761"

  configserver:
    image: maxb/tracker-confsvr:tracker-confsvr
    ports:
       - "8888:8888"
    environment:
       EUREKASERVER_URI: "http://eurekaserver:8761/eureka/"
       EUREKASERVER_PORT: "8761"
       ENCRYPT_KEY:       "IMSYMMETRIC"

  zuulserver:
    image: maxb/tracker-zuulsvr:tracker-zuulsvr
    ports:
      - "5555:5555"
    environment:
      PROFILE: "default"
      SERVER_PORT: "5555"
      CONFIGSERVER_URI: "http://configserver:8888"
      EUREKASERVER_URI: "http://eurekaserver:8761/eureka/"
      DATABASESERVER_PORT: "27017"
      EUREKASERVER_PORT:   "8761"
      CONFIGSERVER_PORT:   "8888"

  database:
    image: mongo
    container_name: tracker-mongo
    volumes:
      - $HOME/tracker-data:/data/db
      - $HOME/tracker-datacd:/data/bkp
    restart: always

AWS ECS有任务定义,但我不确定它是否可以提供帮助

1 个答案:

答案 0 :(得分:0)

我假设您希望全天候运行这些服务,而不是按需运行。使用容器编排是可能的。使用Rancher的一种方法如下:

创建5个微实例。 4为服务,1为牧场,并将所有5合1放入VPC。现在在第5个实例中安装Rancher并在Rancher中添加其他4个主机,以便所有4个主机都显示在Rancher的基础架构中。

现在标记Rancher中的所有4个主机 - 例如:'zuulserver','database','configserver','eurekaserver'

现在编辑您的docker compose,将这些牧场主机标签添加到您的每个服务中。

io.rancher.scheduler.affinity:host_label: key1=value1

 wordpress:
  labels:
    # Make wordpress a global service
    io.rancher.scheduler.global: 'true'
    # Make wordpress only run containers on hosts with a key1=value1 label
    io.rancher.scheduler.affinity:host_label: key1=value1
    # Make wordpress only run on hosts that do not have a key2=value2 label
    io.rancher.scheduler.affinity:host_label_ne: key2=value2
  image: wordpress
  links:
    - db: mysql
  stdin_open: true

在Rancher中,使用docker compose创建一个堆栈并启动堆栈。

Rancher将根据主机关联标签将这些服务部署到相应的主机。

https://rancher.com/docs/rancher/v1.1/en/cattle/scheduling

https://rancher.com/docs/rancher/v1.2/en/hosts/