2016-07-29 79 views
3

我在部署本地基於virtualbox的羣集時遇到問題 - 我按照官方docker文檔中有關使用docker-machine工具設置master/worker節點的說明。我在dockerhub上創建了令牌,並且使用--swarm(和--swarm-master)和--warm-discovery令牌:// XXXX ...迄今爲止非常好,兩臺機器運行,似乎已註冊爲Swarm master,工人:使用docker-machine進行安裝Swarm

[email protected]:~$ docker-machine ls 
NAME   ACTIVE  DRIVER  STATE  URL       SWARM     DOCKER ERRORS 
swarm-master * (swarm) virtualbox Running tcp://192.168.99.100:2376 swarm-master (master) v1.12.0 
swarm-node1 -   virtualbox Running tcp://192.168.99.101:2376 swarm-master   v1.12.0 
[email protected]:~$ docker run --rm swarm list token://[....] 
192.168.99.101:2376 
192.168.99.100:2376 

和設置使用「的eval $(泊塢窗機ENV --swarm羣主)」正確的環境價值觀後,我可以使用「泊塢窗信息」,說明我有兩個節點的狀態運行... 但任何嘗試運行任何其他碼頭羣swarm命令(碼頭節點...,碼頭服務...)我得到「錯誤響應守護進程:404頁未找到」。

我在做什麼錯?

回答

8

看起來您正在嘗試使用新的swarm mode功能與較舊的docker swarm相比較。

下面的腳本創建了3名管理者和工人2(使用泊塢窗1.12.0)一個HA集羣羣:

#========================= 
# Creating cluster members 
#========================= 
docker-machine create --driver virtualbox node1 
docker-machine create --driver virtualbox node2 
docker-machine create --driver virtualbox node3 
docker-machine create --driver virtualbox node4 
docker-machine create --driver virtualbox node5 

#=============== 
# Starting swarm 
#=============== 
MANAGER_IP=$(docker-machine ip node1) 

docker-machine ssh node1 docker swarm init --advertise-addr $MANAGER_IP 

#=============== 
# Adding members 
#=============== 
MANAGER_TOKEN=$(docker-machine ssh node1 docker swarm join-token --quiet manager) 
WORKER_TOKEN=$(docker-machine ssh node1 docker swarm join-token --quiet worker) 

docker-machine ssh node2 docker swarm join --token $MANAGER_TOKEN $MANAGER_IP:2377 
docker-machine ssh node3 docker swarm join --token $MANAGER_TOKEN $MANAGER_IP:2377 
docker-machine ssh node4 docker swarm join --token $WORKER_TOKEN $MANAGER_IP:2377 
docker-machine ssh node5 docker swarm join --token $WORKER_TOKEN $MANAGER_IP:2377 

列表中的羣組成員

$ docker-machine ssh node1 docker node ls 
ID       HOSTNAME STATUS AVAILABILITY MANAGER STATUS 
4s0mrh2u4sa2p260ung8ipb0m * node1  Ready Active  Leader 
5ra7b8cwarpcpa47p2gq2ecxs node2  Ready Active  Reachable 
66t3pq66ynlvyl3do6lpn9kzb node3  Ready Active   
7k5n1id2q6yncqjbv7l8ec0r5 node5  Ready Active   
833e4ya58hq62epplreyvwtnm node4  Ready Active 

創建服務

$ docker-machine ssh node1 docker service create --name web --replicas=10 -p 30000:80 nginx 

$ docker-machine ssh node1 docker service ps web 
ID       NAME IMAGE NODE DESIRED STATE CURRENT STATE   ERROR 
2fxy4n57p8ot3mn0kws96pnuk web.1 nginx node1 Running  Running 30 seconds ago 
cmm1s3h8ds7tmppf7pwvl5zxw web.2 nginx node5 Running  Running 6 seconds ago 
7ixgtqlz049ggi90363js088b web.3 nginx node1 Running  Running 30 seconds ago 
4o1e2wkh0x4rp8h9o73as8drf web.4 nginx node3 Running  Running 22 seconds ago 
6lufnzzddljlw0lnu0qyftzh6 web.5 nginx node3 Running  Running 22 seconds ago 
49g43g23t4r9lpmitfs4uu1j6 web.6 nginx node2 Running  Running 3 seconds ago 
43dopngi08licw4xttipnfdb6 web.7 nginx node2 Running  Running 3 seconds ago 
8d47dvmokf65xb271fyk3jlbu web.8 nginx node4 Running  Running 7 seconds ago 
2t56edm3k4x98yjkvgamyq6v4 web.9 nginx node5 Running  Running 6 seconds ago 
byij5j5pom1t3elu2ydteasg7 web.10 nginx node4 Running  Running 7 seconds ago 
+0

aha ...好吧,我可以這樣編寫腳本(或手動執行swarm init/join步驟),但我認爲docker-machine --swarm *組選項應該爲我自動設置swarm,至少docker-machine docs使它看起來如此...所以這些實際上無法與新的docker engine 1.12一起使用? –

+0

@JiříNovákDocker swarm已經集成到版本1.12的Docker引擎中。這是爲了取代舊的Swarm,它作爲容器運行。碼頭機器中的羣體選項旨在使舊羣體更易於使用。仍然可以使用它們,但是不能指望新的docker引擎命令(如「docker node」或「docker service」)正常工作。 –

+0

@ mark-oconnor對,我被羣體的兩個版本弄糊塗了,我發現它有更多的搜索和閱讀後,我有幾個小時的睡眠:)謝謝澄清... –

相關問題