簡體   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