文章Github地址,歡迎
start
:https://github.com/li-keli/DevOps-WiKinode
Docker的集羣目前主流的方案:git
Swarmgithub
Kubernetesweb
是用Swarm集羣來部署一個無狀態的服務:docker
目前有三臺物理機node0一、node0二、node03,在node01上初始化Swarm:shell
docker swarm init --advertise-addr 192.168.0.10 # 你的IP地址
這個時候會建立一個swarm的manage節點,並輸出一段join的命令樣例。在其餘的docker機器上運行上面輸出的docker swarm join
命令就能夠加入集羣了。api
docker swarm join \ --token SWMTKN-1-2apg79ozshm0x9hgqgm7v3qo4ks6qcgqzqir5z03g6y90qolf8-***************** \ 192.168.0.10:2377
如果忘記了init輸出的密碼和令牌,能夠經過命令docker swarm join-token worker
查看。網絡
在manager node上執行命令:負載均衡
docker service create --name web_server --publish 8080:80 --replicas=2 192.168.0.10:60000/test/api:1.0
命令是在集羣中建立一個叫作web_server的服務,並暴露8080端口出來code
經過docker service ls
能夠查看目前集羣中全部的服務
經過ocker service ps [服務名]
能夠查看指定的服務的全部容器[副本] 運行狀況
默認狀況下,以下建立的服務:
docker service create --name web_server --replicas=2 192.168.0.10:60000/test/api:1.0
此種建立的服務,只能在容器內訪問,並不能在外部訪問
如果新建立服務,加上--publish 8080:80
則會映射並暴露8080到外部。
如果已經建立的服務,則執行:
docker service update --publish-add 8080:80 web_server
如果咱們要作負載均衡,就須要不少的節點,那麼在swarm-manager執行:
docker service scale web_server=5
這樣就能夠將service中的副本數量增長且恆定到5個的數量
默認配置下 manager node 也是 worker node,因此 swarm-manager 上也運行了副本。若是不但願在 manager 上運行 service,能夠執行以下命令:
docker node update --availability drain swarm-manager
默認配置下 manager node 也是 worker node,因此 swarm-manager 上也運行了副本。若是不但願在 manager 上運行 service,能夠執行以下命令:
docker node update --availability drain swarm-manager
另外因爲做者自己知識有限,都是摸索着來的,因此不必定全部的作法都對,或者某些實踐會有更好的方案,望各位讀者不吝指正,有任何疑問,請留 issues