簡體   English   中英

Docker Swarm集群設置的單個腳本

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM