05 Docker集羣/基礎設施 - DevOps之路

05 Docker集羣/基礎設施 - DevOps之路

文章Github地址,歡迎starthttps://github.com/li-keli/DevOps-WiKinode

Docker的集羣目前主流的方案:git

Docker Swarm 集羣

是用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

彈性伸縮service

如果咱們要作負載均衡,就須要不少的節點,那麼在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 上運行 service

默認配置下 manager node 也是 worker node,因此 swarm-manager 上也運行了副本。若是不但願在 manager 上運行 service,能夠執行以下命令:

docker node update --availability drain swarm-manager

另外因爲做者自己知識有限,都是摸索着來的,因此不必定全部的作法都對,或者某些實踐會有更好的方案,望各位讀者不吝指正,有任何疑問,請留 issues

相關文章
相關標籤/搜索