繁体   English   中英

如何在扩展ECS实例时自动运行consul代理和registrator容器

[英]How to automatically run consul agent and registrator container on scaling ECS instance

我创建了一个由三个节点组成的consul集群。 现在我需要运行consul代理和registrator容器,并且每当我启动ECS实例或者扩展我正在运行我的微服务的ECS实例时,将consul代理加入consul服务器节点之一。

我通过滚动更新自动完成部署过程。 但每当我扩展ECS实例时,我必须手动启动consul代理和registrator。

任何人都知道如何自动化这个?

在您的领事服务器或弹性IP前面创建一个ELB,这样它就不会改变。

然后在userdata中:

#!/bin/bash
consul_host=consul.mydomain.local

#start the agent
docker run -it --restart=always -p 8301:8301 -p 8301:8301/udp -p 8400:8400 -p 8500:8500 -p 53:53/udp \
-v /opt/consul:/data -v /var/run/docker.sock:/var/run/docker.sock -v /etc/consul:/etc/consul -h \
$(curl -s http://169.254.169.254/latest/meta-data/instance-id) --name consul-agent progrium/consul \
-join $consul_host -advertise $(curl -s http://169.254.169.254/latest/meta-data/local-ipv4)`

#start the registrator
docker run -it --restart=always -v /var/run/docker.sock:/tmp/docker.sock \
-h $(curl -s http://169.254.169.254/latest/meta-data/instance-id) --name consul-registrator \
gliderlabs/registrator:latest -ip $(curl -s http://169.254.169.254/latest/meta-data/local-ipv4) \
consul://$(curl -s http://169.254.169.254/latest/meta-data/local-ipv4):8500

注意:此代码段假定您的设置都是本地可访问的等等。它来自此博客文章中的云信息此链接

  1. 使用两个容器(consul-client和registrator)创建任务定义。
  2. aws ecs start-task

此AWS帖子侧重于此。

编辑 :由于您提到了ECS实例,我假设您已经为该实例设置了必要的IAM角色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM