[英]Single script for Docker Swarm cluster setup
我的預生產服務器中有Docker Swarm集群設置(3個管理器節點和7個工作器節點); 但是我想在生產服務器中復制相同的內容,而不是使用我更喜歡使用腳本的命令。
目前,我正在使用“ docker swarm init”初始化群集,然后使用生成的密鑰添加工作人員和管理人員。
我將擁有30台服務器,並計划7個管理器節點和23個工作節點。 我搜索了網; 但在所有服務器中找不到任何可以使用腳本自動初始化docker swarm的腳本。
任何幫助將不勝感激。
沒有什么比內置實用程序更適合使用以下命令了:
您可以像這樣創建自定義腳本:
for i in `cat app_server.txt` ; do echo $i ; ssh -i /path/to/your_key.pem $i "sudo docker swarm join --token your-token-here ip-address-of-manager:port" ; done
這里app_server.txt
是要添加到群集中的工作程序節點的IP地址。
--token
:管理員在--token
docker swarm init
上生成的令牌
希望這會有所幫助。
您也可以使用ansible,但需要在所有工作節點上安裝ansible docker模塊。 謝謝!
我采用的方法是為所有節點使用通用的構建腳本,並使用Consul與集群的其余部分共享docker swarm manager令牌。
第一個節點(在10.0.0.51
)調用docker swarm init
並將令牌放置在鍵值存儲中,其余節點(從10.0.0.52
起)將令牌讀回並用於調用docker swarm join
。
重擊看起來像這樣-
# Get the node id of this machine from the local IP address
privateNetworkIP=`hostname -I | grep -o 10.0.0.5.`
nodeId=`(echo $privateNetworkIP | tail -c 2)`
if [ $nodeId -eq 1 ]; then
sudo docker swarm init
MANAGER_KEY_IN=`sudo docker swarm join-token manager -q`
curl --request PUT --data $MANAGER_KEY_IN http://10.0.0.51:8500/v1/kv/docker-manager-key
else
MANAGER_KEY_OUT=`curl -s http://10.0.0.51:8500/v1/kv/docker-manager-key?raw`
sudo docker swarm join --token $MANAGER_KEY_OUT 10.0.0.51:2377
fi
...並能正常工作,前提是首先要構建node 1
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.